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 schema.org 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 Schema.org “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 Schema.org JSON product structured data should look here.

When Does This Occur: WooCommerce Product Archives

This error happened in WooCommerce product archive pages (Product Category and Product Tag archive pages) before the update to WooCommerce 3.5.6, which contained a structured data update taking the Product schema data out of those archives.

There’s a little statement in Google’s advice about structured data which is a little ambiguous and suggests that Schema.org products data maybe should not be in category pages:

A category page listing several different products (or recipes, videos, or any other type). Each entity should be marked up using the relevant schema.org type, such as schema.org/Product for product category pages. However, if one item is marked, all items should be marked. Also, unless this is a carousel page, the marked items should not link out to separate details pages.

Google Structured Data Quality Guidelines – specifically, here.

I said this is “ambiguous” above, because I’m being kind to the developers who removed it from WooCommerce. It’s actually fairly clear-cut. If your archive contains “buy now” buttons (rather than more info buttons) then you should include your product schema data here.

It depends, though, on your products (and product categories) if this suits your use case

The reason for this is simple: structured data helps Google to know “what’s in here?” and therefore, can help your product category pages to rank better without much content.

Further, from an SEO perspective, this does mean product category pages which contain complete structured data will rank better. BUT this is because, if you comply with the other guidelines, this also means you will “feature” this information “in the page” and therefore, your product categories will be, by nature, richer (they will include review ratings stars, brief intro text, correct product names and prices and etc, maybe some “brand” information).

After the WooCommerce update, it’s very likely you’ll want to customize your product archive page schema structured data, if you’re trying to rank your product category pages (and also improve the ranking and quality of your product pages too).

The WooCommerce Update Made a lot of Sense

Be kind to those who make your Open Source software. They are thinking about you when they push their updates.

Remember, the WooCommerce developers build software for all. They changed one thing: defaults to on (for structured data in product categories) to defaults to off. This was a core change which will have removed errors for most WooCommerce clients.

If you want the structured data back, without the errors, it’s time to talk to an expert WooCommerce developer about making a minor customization to your site to do this, and stay ahead of your competition.

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 schema.org data at your peril! Having valid Schema.org 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

6 Comments

    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 email address will not be published. Required fields are marked *

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