Winning Star Ratings in Google: The Review Schema & Rich Results Handbook
Stars on a SERP listing are free CTR, and most brands lose them to a markup mistake they never see. This handbook is the working reference for Review, AggregateRating and Product JSON-LD: the fields that matter, the eligibility rules Google actually enforces, and the common errors that quietly strip the stars off your listings.
- 18 pages
- 14 min read
- For: seo lead, ecommerce leader, cmo
- Consent logged
- In-date rights
- GDPR + CCPA
- Audit trail
Winning Star Ratings in Google: The Review Schema & Rich Results Handbook
What you’ll learn
- Star ratings in search are earned with valid Product, Review and AggregateRating JSON-LD, not bought
- Know the eligibility rules Google enforces: self-serving reviews, missing required fields and mismatched on-page content all disqualify you
- Every embedded review must be a real, attributable quote with a real date: never synthesise reviews to inflate a count
- The markup must match what a shopper can see on the page, or Google treats it as spam and drops the stars
- Validate before you ship and monitor after, because stars disappear silently when something downstream changes
Chapter previews
- Chapter 01
Why stars are worth the work
A star rating on an organic or shopping listing lifts click-through at no media cost. The markup that earns it is cheap, but the rules are strict and the failure mode is silent.
- Chapter 02
The three schema types
Product holds the item, Review holds a single attributed opinion, AggregateRating holds the rolled-up score and count. Stars come from the combination, shaped correctly.
- Chapter 03
The fields that matter
Required and recommended properties for each type, and the ones whose absence quietly disqualifies the whole block.
- Chapter 04
Eligibility rules Google enforces
No self-serving reviews on your own products, markup must match visible content, and certain content types are excluded outright. Break a rule and the stars vanish.
- Chapter 05
The mistakes that lose the stars
Faked aggregates, hidden markup, mismatched content, the wrong entity. The common ways a technically present block still fails.
- Chapter 06
Validate, ship, monitor
Test before launch, watch the rich-results report after, and treat silent star loss as an incident with a known set of causes.
Inside the playbook
A star rating next to your listing is one of the few CTR levers that costs nothing in media. It does the same job a review does on the page: it tells the shopper other people bought this and rated it, before they have even clicked. The markup that earns it is not complicated, but the rules around it are strict, and the failure mode is quiet. You do not get an error when the stars disappear. They are simply not there one morning, and the click-through quietly drops with them. This handbook is the working reference for getting them and keeping them.
Three things have to be true at once. The structured data has to be valid and complete, the reviews behind it have to be real and attributable, and the markup has to match what a shopper can actually see on the page. Miss any one and the block is either ignored or treated as an attempt to game the result. The good news is that all three are knowable and checkable, which is what makes star loss an incident with a cause rather than a mystery.
~88%
of shoppers consult reviews before buying, the trust signal stars preview
Representative range, Bazaarvoice / Bizrate Insights shopper surveys
higher CTR
commonly reported when a listing carries a star rating versus a plain result
Representative, flagged directional: varies by query and SERP position
silent
failure: stars vanish without an error when markup or eligibility breaks
Per Google rich-results and review-snippet guidance
must match
markup has to reflect content visible to the shopper, or it is disqualified
Per Google structured-data policy
Where each schema move sits on star impact and effort
The schema fields that matter
Three types do the work together. Product identifies the item, Review carries a single attributed opinion, and AggregateRating carries the rolled-up score and count. Stars come from the combination, shaped correctly and matched to the page. The table is the working field reference: get the required properties right first, because their absence disqualifies the whole block, then add the recommended ones to strengthen eligibility.
| Type | Key fields | Why it matters |
|---|---|---|
| Product | name, image, description, sku / gtin, offers, brand | Identifies the item the rating belongs to: a rating with no clear product entity will not show |
| AggregateRating | ratingValue, reviewCount (or ratingCount), bestRating, worstRating | The rolled-up score and count: ratingValue and a count are required, and the count must reflect real reviews |
| Review | author, datePublished, reviewRating, reviewBody | A single attributed opinion: author and datePublished must be real, reviewRating must sit within the stated scale |
| reviewRating | ratingValue, bestRating, worstRating | Defines the scale so a 4 is read as 4 out of 5, not 4 out of 100 |
| author | name (Person or Organization) | A real, attributable author: an empty or generic author weakens or breaks eligibility |
Eligible versus ineligible markup
The same fields can be present and the block can still be disqualified, because eligibility is about more than completeness. The clearest line is the self-serving rule: a review you wrote about your own product, on your own page, does not qualify for star treatment. Mismatched content is the other big one: if the markup claims a rating the shopper cannot see anywhere on the page, Google reads it as manipulation. The compare panel lays out the two states side by side so you can audit a page against them.
Ineligible markup
Technically present, but disqualified on provenance, completeness or page-match.
Wins at
- Often passes a naive eye: the JSON is there
Struggles with
- Self-serving reviews about your own product or organisation
- AggregateRating count not backed by real reviews
- Markup rating not visible anywhere on the page
- Missing required fields (author, datePublished, ratingValue)
- Review markup on an unsupported content type
Eligible markup
Valid, complete, attributable and matched to content the shopper can see.
Wins at
- Real customer reviews with named authors and real dates
- AggregateRating count that matches the reviews shown
- Rating visible on the page, mirrored in the markup
- All required fields present and within scale
- Applied to a supported entity (Product)
Struggles with
- Requires a genuine review collection programme
- Needs validation before every release
The same three types can pass or fail. Eligibility is about provenance and page-match, not just completeness.
The mistakes that lose the stars
Most star loss traces back to a short list of repeat offenders. Knowing them turns a silent failure into a quick diagnosis.
- The faked or hollow aggregate. A reviewCount with no real reviews behind it, or self-written reviews. Disqualifying and a trust risk.
- Hidden markup. A rating in the JSON-LD that appears nowhere on the visible page. Google requires the markup to reflect what the shopper can see.
- Content mismatch. The markup describes a different product, or a different rating, than the page actually shows. Read as manipulation.
- Missing required fields. No author, no datePublished, no ratingValue, or a reviewRating with no scale. The block is ignored rather than flagged.
- Wrong entity. Review markup attached to an organisation or a content type that does not support review snippets. Present but never eligible.
Review-schema maturity: are your stars earned and held
- 1
No markup
You’re here ifNo Product, Review or AggregateRating JSON-LD, or markup that fails validation. The listing carries no stars.
Next moveEmit valid Product + Review + AggregateRating markup backed by real reviews and validate it.
- 2
Markup present
You’re here ifStars sometimes show, but the markup is not consistently visible-matched, validated before release or monitored after.
Next moveMirror every rating in visible page content and validate the markup before every ship.
- 3
Eligible and clean
You’re here ifValid, real, page-matched markup earns stars across the catalogue, with no self-serving or hollow aggregates.
Next moveWire monitoring on rich-results status and star-bearing impressions so a drop is caught fast.
- 4
Held under monitoring
You’re here ifStars are stable, a drop triggers an incident with a known cause list, and the same review substrate feeds AI-search citations.
Next moveFold schema validation into the release pipeline so broken markup never reaches production.
“Nobody emails you when the stars disappear. The listing just gets quieter, and the click-through goes with it.”
The 30-60-90 day plan
Earning stars and keeping them is a sequence: get eligible, get matched, then get monitored. This is the cadence that takes a listing from no markup to stars held under incident-grade watch.
From no markup to held stars in 90 days
- 01
Days 1-30
Emit valid Product + Review + AggregateRating markup on the priority PDPs, backed by real, attributable reviews, and validate every block against the rich-results test before it ships. Never fake the aggregate count.
Get eligible
- 02
Days 31-60
Audit each page for the visible-match and self-serving rules, fix the common disqualifiers, and extend the validated markup across the catalogue by priority.
Get matched + scale
- 03
Days 61-90
Wire monitoring on the rich-results status report and star-bearing impressions, alert on a sudden drop, and fold schema validation into the release pipeline so a template change cannot break it silently.
Get monitored
Validate, ship, monitor
Treat the markup like code, because it is. Validate every change against Google's rich-results test before it ships, so an invalid block never reaches production. After launch, watch the rich-results report and the share of listings carrying stars, and wire an alert to a sudden drop. The teams that hold their stars are not the ones with the cleverest markup: they are the ones who check it before every release and notice the morning it breaks.
Sources and further reading
Free PDF, straight to your inbox.
Drop your email and we’ll send the full 18-page playbook now. We never sell your address. Unsubscribe in one click.
- Star ratings in search are earned with valid Product, Review and AggregateRating JSON-LD, not bought
- Know the eligibility rules Google enforces: self-serving reviews, missing required fields and mismatched on-page content all disqualify you
- Every embedded review must be a real, attributable quote with a real date: never synthesise reviews to inflate a count