/ โ† Ecommerce Audit Fixes / Review Schema
In this guide
  1. Review and AggregateRating are different things
  2. What a single Review needs
  3. Reviews that only exist inside a widget
  4. Store reviews, product reviews and whose opinion it is
  5. Diagnosing why stars are missing
  6. Where review markup comes from on each platform
  7. The fix, step by step
  8. Keeping review markup healthy
  9. Questions and answers

Review and AggregateRating are different things

Two schema.org types describe reviews, and product pages usually need both. Mixing them up is behind a large share of the review problems the Ecommerce Audit reports.

ReviewAggregateRating
What it describesOne person's opinion: their score, their words, their name and the date.A summary: the average score and how many ratings it comes from.
Where it goesIn the review property of the Product, one object per review shown.In the aggregateRating property of the Product, once.
What it must matchA review a shopper can actually read on that page.The average and count displayed near the product name.
Typical faultWritten for reviews that are only on page 4 of a widget, or with "Verified Buyer" as the author.Score or count out of step with the visible figures (covered in the aggregateRating guide).

A shop with 300 reviews of a kettle should not put 300 Review objects in its markup. Mark up the reviews that are visible when the page first loads, usually the first five to ten, and let the AggregateRating carry the total. That keeps the markup honest about what is on the page and keeps the block a sensible size.

Technical errors inside the summary rating, such as a missing count, a score outside the scale or a decimal comma, are covered in Fixing aggregateRating errors. The price, offer and identifier side of the same Product block is in Fixing Product schema errors. This guide deals with the reviews themselves: where they come from, whether they may be marked up, and how they reach the page.

What a single Review needs

Google's review snippet documentation asks for a small set of fields on each Review. Most failures are not missing fields but fields filled with the wrong thing.

A product with its first reviews marked up

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://example.co.uk/products/enamel-camping-kettle#product",
  "name": "Enamel camping kettle, 1.2 litre",
  "image": "https://example.co.uk/images/enamel-kettle.jpg",
  "sku": "FFK-12",
  "brand": { "@type": "Brand", "name": "Fernfold" },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "58"
  },
  "review": [
    {
      "@type": "Review",
      "author": { "@type": "Person", "name": "Priya S." },
      "datePublished": "2026-08-14",
      "reviewRating": { "@type": "Rating", "ratingValue": "5" },
      "reviewBody": "Boils quickly on a small gas stove and the handle stays cool enough to hold."
    },
    {
      "@type": "Review",
      "author": { "@type": "Person", "name": "Tom W." },
      "datePublished": "2026-07-30",
      "reviewRating": { "@type": "Rating", "ratingValue": "4" },
      "reviewBody": "Solid kettle. The enamel chipped slightly on the base after a month of use."
    }
  ]
}
</script>

The offer is left out of this example to keep the review part readable; on a live shop page the same block carries the offer as well.

Pros and cons are not for shop pages

Schema.org has positiveNotes and negativeNotes for listing pros and cons, and Google can show them in results. Google's documentation limits that appearance to editorial product review pages, such as a magazine testing kettles, and says merchant product pages and customer reviews are not eligible. Adding pros and cons markup to your own product pages will not produce the feature, so it is not worth the effort.

Reviews that only exist inside a widget

Most shops collect reviews through an app: Judge.me, Yotpo, Reviews.io, Trustpilot product reviews, Okendo, Stamped or a platform's own reviews. How that app puts reviews on the page decides whether search engines see them at all.

How the app loads reviewsWhat a crawler getsWhat to do
Written into the page HTML on the server (theme block, app embed that renders server-side, or a platform metafield)Reviews and markup in the first responseNothing, beyond checking the markup is correct.
Injected by JavaScript after loadPossibly seen after rendering, possibly not; slower to be picked upLook for a server-side or SEO option in the app, or render a snapshot of recent reviews in the template.
Inside an iframe from the app's domainContent belongs to the other domain, not your pageSwitch to an embed that writes into your page, or show a server-rendered summary alongside it.
Loaded only when the shopper clicks a "Reviews" tab or scrolls far downOften nothing, because crawlers do not click or scrollLoad the first set with the page and keep the tab purely visual, hidden with CSS rather than fetched on demand.

To see which case you have, open the product page, press Ctrl+U (Cmd+Option+U on a Mac) and search the raw source for a phrase from one of the visible reviews. If it is missing, the reviews arrive later by script. Then run the URL through the Rich Results Test and open the rendered HTML: if the phrase appears there but not in the source, Google can probably read it after rendering, but other crawlers, including many AI assistants that fetch pages without running scripts, will not.

๐Ÿ’ก Many review apps store a rating summary in platform fields, such as Shopify metafields, so the theme can print the average and count on the server. Even when the full review list stays in a widget, printing the summary and a few recent reviews in the template makes both the page and the markup far sturdier.

Store reviews, product reviews and whose opinion it is

Review platforms usually collect two kinds of feedback. Product reviews are about the item: fit, quality, how it performs. Store or service reviews are about the shop: delivery speed, packaging, customer service. Many shops show a store badge, such as "4.8 from 2,000 reviews", near the basket button on every product page.

That store score must not be marked up as the product's rating. It does not describe the kettle, the same number appears on every product, and the reviews behind it are about your business rather than about the item. Google does not show review stars where a business marks up reviews about itself on its own site, and a shop rating copied onto every Product is exactly that situation dressed up as product data. The aggregateRating guide sets out that policy in full; the practical point for a shop is to keep the store badge as a visual element only.

Reviews gathered by a review platform

Collecting product reviews through a third-party platform is normal. What matters is that the reviews are genuine customer opinions of that specific product, that they are shown on the product page, and that the markup describes those displayed reviews. What goes wrong is copying in figures that belong elsewhere: an average from a marketplace listing, a rating from a comparison site, or a manufacturer's global score that includes reviews from other retailers you do not display.

Reviews shared across variants and bundles

If a jumper in six colours has one page, pooling reviews across the colours is reasonable, because the page is about the jumper. If each colour has its own indexable page, showing the same pooled reviews on all six is common and acceptable when the page says so, but be consistent: the markup on each page should describe the reviews that page shows. For a bundle, do not borrow the ratings of the individual items unless the page makes clear which product each review is about.

โš ๏ธ In the UK, the Digital Markets, Competition and Consumers Act 2024 treats submitting or commissioning fake reviews, and presenting reviews in a misleading way, as banned practices, with the rules in force from April 2025 and enforced by the CMA. Selectively hiding negative reviews or publishing incentivised ones without saying so can fall within that. This is general information, not legal advice; check the CMA's guidance for your situation.

Diagnosing why stars are missing

Work through these in order. Each rules out a cause before you spend time on the next.

  1. Are the reviews in the page? Search the raw source and the rendered HTML for a phrase from a visible review. If they are in neither, no markup fix will help until the widget problem is solved.
  2. Is there review markup at all? In the source, search for "Review" and aggregateRating. Some apps output review text visibly but no structured data unless an SEO or "rich snippets" option is switched on in their settings.
  3. How many blocks describe the product? Count the "@type": "Product" matches. Two or three Products, each with a different rating, is a common result of a theme, an SEO plugin and a review app all adding markup.
  4. Is the rating attached to the product? A rating on the Organization, the WebPage or a free-floating Review with no itemReviewed will not produce product stars.
  5. Do the numbers match the page? Compare the average and count in the markup with the figures near the product name, and each marked-up review with what a shopper can read.
  6. Does the Rich Results Test show a Review snippet or Product snippet? Valid items with no errors mean the page is eligible. If stars still do not appear after a recrawl, Google has chosen not to show them for that query, which it does for many eligible pages.

Where review markup comes from on each platform

Shopify

Themes often output a Product block with an aggregateRating read from the review app's metafields, and many review apps add their own block too. Decide which one owns the review markup: usually the app, since it has the individual reviews. Then remove the rating lines from the theme's block, or turn off the app's markup and let the theme print both summary and reviews from the metafields. Do not leave both on.

WooCommerce

WooCommerce stores product reviews as WordPress comments and its built-in structured data includes the rating and recent reviews when reviews are enabled. SEO plugins such as Yoast (with its WooCommerce add-on) or Rank Math can take over the Product markup, and external review plugins may add another layer. Check which plugin outputs each Review and keep one source. The setting that limits reviews to verified owners, under WooCommerce, Settings, Products, helps show reviews come from real buyers.

Headless and custom builds

Nothing is automatic. Fetch reviews from the review provider's API on the server, render the first set into the HTML, and build the Review objects from the same data. Cache sensibly, but refresh often enough that a new review does not leave the markup and the page disagreeing for days.

The fix, step by step

Step 1

Map where your reviews come from

List every source of review content and review markup on one best-selling product page: the review app, the theme, any SEO plugin, a store rating badge and any manufacturer or marketplace feed. For each, note whether it shows reviews, outputs structured data, or both. Search the page source for aggregateRating and "Review" to find markup you did not know was there. This map decides which source keeps its markup and which ones you switch off later.

Step 2

Get the reviews into the page HTML

Check whether a phrase from a visible review appears in the raw page source. If it only appears after scripts run, or only after clicking a reviews tab, look in the review app for a server-side, SEO or theme block option, or change the template to print the rating summary and the first few reviews on the server. Shoppers see no difference, but crawlers and AI assistants that do not run JavaScript can now read the reviews.

Step 3

Separate product reviews from store reviews

Make sure only reviews of this specific product feed the product's markup. Remove any store or service rating that has been placed in aggregateRating, any figure copied from a marketplace, comparison site or manufacturer, and any fixed rating typed into the theme. Keep the store badge on the page if it helps conversion, but as a visual element only, with no structured data describing it as a rating of the product.

Step 4

Mark up the individual reviews shown

Add a review array to the Product with one Review for each review visible when the page loads, usually five to ten. Give each an author with the display name shown on the page, a reviewRating with its score, a datePublished and the reviewBody text. Never use a badge such as "Verified Buyer" as the author name, and do not mark up reviews that only appear on later widget pages.

Step 5

Connect reviews to the right Product

Nest the reviews and the summary rating inside the Product they describe, or, if your setup outputs them as separate nodes, give the Product an @id and point each Review's itemReviewed at it. Check that nothing attaches ratings to the Organization, the WebPage or a LocalBusiness node. On variant pages, make sure the reviews and rating describe the product the page is actually selling.

Step 6

Switch off duplicate review markup

Choose one owner for the review markup, usually the review app because it holds the individual reviews, and turn off rating and review output everywhere else: remove the rating lines from the theme's Product block, disable the SEO plugin's review option or the app's snippet option. The goal is one Product per page carrying one rating and one set of reviews, all agreeing with what the shopper sees on screen.

Step 7

Test the page and watch the report

Run the live URL through the Rich Results Test and confirm the Product or Review snippet item is valid, then open the rendered HTML to confirm the reviews are present. Request indexing for a handful of key products with URL Inspection in Search Console. Over the following weeks, watch the Review snippets and Product snippets reports, and rerun the Ecommerce Audit after any review app or theme update.

Keeping review markup healthy

For the wider picture of product page quality, see product review trust signals, and the Ecommerce SEO Guide for how reviews fit alongside the rest of the audit.

Questions and answers

1. Do I need both Review and AggregateRating markup on a product page?

Either one on its own can make a product page eligible for review stars, but together they describe the page best. The AggregateRating gives the average and the total number of ratings, while the individual Reviews show the actual opinions a shopper can read. Mark up the reviews visible when the page loads rather than every review you hold, and let the summary rating carry the full count. Both must match what is displayed on the page.

2. Can I mark up my Trustpilot or Google store rating on product pages?

No. A store rating describes your business, its delivery and its service, not the product on the page, so using it as the product rating misrepresents the product. Google also does not show stars for businesses marking up reviews about themselves on their own site. Keep the badge visible if shoppers find it reassuring, but leave it out of the structured data. Only genuine reviews of the specific product, shown on that page, belong in the Product markup.

3. My review app shows reviews but Google sees none. Why?

The app is probably loading reviews with JavaScript after the page, inside an iframe, or only when a shopper opens a reviews tab. Google may render some of this, but slowly and not reliably, and many other crawlers never run scripts at all. Check the raw page source for a phrase from a visible review. If it is missing, look for a server-side or theme block option in the app, or print the first reviews in your template.

4. Who should be named as the author of a review?

Use the name the reviewer chose to display beside their review on the page, such as a first name and initial. The author must be a person or organisation, so labels like Verified Buyer, Customer or Anonymous Shopper do not belong in the name field. If your review app shows only a badge and no name for some reviews, consider asking reviewers for a display name when they submit, so the page and the markup both show who wrote each review.

5. Should I add pros and cons markup to my product pages?

It will not help on a shop page. Google supports pros and cons, marked up with positiveNotes and negativeNotes, only on editorial product review pages, such as a publication that tests and compares products it does not sell. Its documentation says merchant product pages and customer reviews are not eligible for that appearance. If you write your own buying guides that review products, the markup can apply there, but not on the product pages themselves.

6. Is it acceptable to hide negative reviews?

Removing genuinely abusive, irrelevant or fraudulent reviews is reasonable, and most review platforms have moderation rules for that. Hiding honest negative reviews to push up your average is a different matter. It misleads shoppers, makes your rating markup a misleading description of customer opinion, and in the UK can fall within the rules on misleading reviews in consumer protection law. This is not legal advice, but publishing honest criticism and replying to it helpfully is the safer and more credible approach.

7. How long after fixing will review stars appear?

There is no fixed time and no guarantee. Once the Rich Results Test shows a valid item, request indexing for your most important products in Search Console, and Google will usually recrawl them within days, with the rest of the catalogue following as it is recrawled. Even then, Google decides query by query whether to show stars, so some eligible pages will not get them. Track the Review snippets and Product snippets reports rather than individual searches.

Check your product reviews and review markup

The Ecommerce Audit checks your most important store pages for valid Product and review schema, alongside product page completeness, category depth, faceted navigation, images, internal links and product page speed.

Open Ecommerce Audit Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Ecommerce Audit Fixes  ·  aggregateRating Errors  ·  Product Schema Errors  ·  Ecommerce SEO Guide  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.