Here’s an error which has started showing up for a lot of stores’ product category pages – WooCommerce stores in particular – in Google Search Console:

Either “offers”, “review”, or “aggregateRating” should be specified

Google Search Console warning
Google Search Console Schema Error: "Either "offers", "review", or "aggregateRating" should be specified"
Google Search Console Schema Error: “Either “offers”, “review”, or “aggregateRating” should be specified”

Where Does This Error Come From?

This error (not a warning, it is an actual error) comes from the fact that the markup in the product listing page in question is lacking a required field.

As errors go, it is quite verbose. You need to specify one of either “offers” “review” or “aggregateRating” for each of the products listed where “product” is the “thing” in question.

A lot of WooCommerce based displays do not include any of this data, and therefore, such pages are lacking a required field.

More specifically, the JSON encoded data is lacking a required element, which only has been flagging as an error since around February 14 2019. Interestingly, as can often be the case, affected sites don’t see the error when they input the affected URL into the Google Structured Data Testing Tool. This isn’t so helpful, but probably indicates that the testing tool is a little behind.

You’ll see examples of how your JSON product structured data should look here.

When Does This Occur? Items Without Prices

I’m seeing this issue raise most often on sites where – for whatever reason – there is no price set for products, because WooCommerce uses “has price” as the basis for inserting a lot of the JSON code.

If you do not have a price against your products in Woo, this is often because you offer a service or some other “not priced individually” non-custom eCommerce offer, or other, in which case, you’ll want to customize the schema output for your store specifically. Helpfully, WooCommerce offers filters “woocommerce_structured_data_product” which allow you to do just this – or at least, allow your developer to do it!

When Does This Occur? Items Without Ratings

If your items don’t have ratings, then there won’t be an “aggregateRating” set for them (correctly) but, as you can see from the error, this should be set if the item is a product.

Firstly, try to make sure all your products have at least 1 rating (get your customers to rate them!).

Secondly, make sure that “aggregateRating” is correctly set in all places the product is referenced – including in category and other archive pages.

Again, this is a task for an eCommerce developer.

Schema is Important!

Ignore data at your peril! Having valid markup (AKA structured data) is very very important for your SEO performance, particularly if you are running an eCommerce store. If you’re not sure about your structured data, talk to a technical eCommerce agency about this.

What to do about it?

Fix your product archive templates so that they do reference these required fields!

Easier said than done? Hire me for a WooCommerce Consultation, and I can guide you through this process. If you know you just want to get this done, contact my business Silicon Dales who are accredited WooCommerce developers <- visit that link.

Published by Robin Scott

I'm Robin Scott, a WordPress and WooCommerce expert who, along with three other people, runs a business called Silicon Dales Ltd remotely, from a base in the North West of the UK (kind of near Manchester!).

Join the conversation


    1. Hi Elisabetta,

      I haven’t worked with Prestashop for some time, but likely this will come from the same root cause. Google has changed their “required” fields, and this was notified in Search Console before it made it’s way over to the structured data testing tool. It’s nobody’s fault this is not in the eCommerce software, therefore!

      If you can change the JSON (or whatever format is in use) structured data to include, for example, “offers” for everywhere you have “product” listed, you should be A-OK. I’ve done this on a large number of sites now, and can confirm that this works.

      Good luck!

Leave a comment

Your e-mail address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.