What is review schema?
Review schema is the common name for two schema.org types used together:
- Review is one person's review: who wrote it, when, and the rating they gave.
- AggregateRating is the summary: the average rating and how many ratings or reviews it is based on.
You attach both to the thing being reviewed, such as a Product, through its review and aggregateRating properties. Google calls the search feature that uses them a review snippet: "A review snippet is a short excerpt of a review or a rating... When Google finds valid reviews or ratings markup, we may show a rich snippet" (Google).
Google accepts JSON-LD, Microdata and RDFa, and marks JSON-LD as "recommended" (Google). Every example below is JSON-LD.
What review schema can and cannot do
None of the Google pages we read says that review markup changes where a page ranks. Treat it as a way to describe your reviews accurately to Google, not as a ranking tool.
Which types are eligible for review stars
Google limits review snippets to certain schema.org types. It narrowed the list in 2019, saying "we're limiting the pool of schema types that can potentially trigger review rich results in search" (Google Search Central blog). The current list, from Google's review snippet page:
| Type | Eligible for review snippets? | Condition |
|---|---|---|
| Product | Yes | None beyond the general guidelines |
| SoftwareApplication | Yes | None beyond the general guidelines |
| Course | Yes (Google lists "Course list") | None beyond the general guidelines |
| Book, Movie, Recipe, Event | Yes | None beyond the general guidelines |
| CreativeWorkSeason, CreativeWorkSeries, Episode, Game, MediaObject, MusicPlaylist, MusicRecording | Yes, with their subtypes | None beyond the general guidelines |
| LocalBusiness | Only in one case | "only for sites that capture reviews about other local businesses" |
| Organization | Only in one case | "only for sites that capture reviews about other organizations" |
| Employers | Separate feature | Google points to EmployerAggregateRating instead |
Source: Google: review snippet, checked 25 October 2026. Service does not appear on either of Google's lists.
In practice:
- A shop's goods:
Product. - A SaaS product or app:
SoftwareApplication. - An online course:
Course. - Your business as a whole, on your own site: no eligible type (the self-serving case below).
The self-serving reviews rule
This rule decides whether reviews of your own business can be eligible for stars on your own site. Google's guidelines say:
"If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature. For example, a review about entity A is placed on the website of entity A, either directly in their structured data or through an embedded third-party widget (for example, Google Business reviews or Facebook reviews widget)."
Source: Google: review snippet guidelines.
What that means:
- Reviews of your company, marked up as
OrganizationorLocalBusinesson your own site, are not eligible for stars. - Using a third-party widget does not change that. Google names widgets in the rule.
- The rule names
LocalBusinessandOrganization. It does not nameProduct,SoftwareApplicationorCourse, so reviews of the things you sell are judged under the general guidelines instead. - A review site that publishes reviews about other businesses is the case Google's wording allows.
Required and recommended properties
From Google's type definitions for review snippets, product snippets and software apps:
| Property | On | Status | Note |
|---|---|---|---|
author |
Review | Required | Must be a valid name, shorter than 100 characters |
reviewRating. |
Review | Required | Use a dot for decimals: 4.4, not 4,4 |
itemReviewed |
Review, AggregateRating | Required unless nested | Omit it when the review sits inside the item's review property |
datePublished |
Review | Recommended | ISO 8601, for example 2026-10-25 |
bestRating, worstRating |
Rating, AggregateRating | Recommended | The default scale is 1 to 5; set these if yours differs |
ratingValue |
AggregateRating | Required | The average rating |
ratingCount or reviewCount |
AggregateRating | One is required | Ratings on your site, or people who left a review |
name |
Product | Required | Plus one of review, aggregateRating or offers |
image, offers |
Product (merchant listing) | Required | For pages where people can buy the product |
offers. |
SoftwareApplication | Required | Set it to 0 for a free app |
Sources: review snippet, product snippet, merchant listing and software app.
Review schema example in JSON-LD: a product with its reviews
This is a product page where a shopper can buy the item, showing two customer reviews and their average. Put the script in the page's HTML, and show the same reviews and the same average on the page itself.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Oak chopping board, large",
"image": "https://www.example.com/images/oak-board-large.jpg",
"description": "A 45 cm end-grain oak chopping board, oiled by hand.",
"sku": "OAK-L-01",
"brand": {
"@type": "Brand",
"name": "Example Woodworks"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/products/oak-board-large",
"price": "45.00",
"priceCurrency": "GBP"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "2",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Priya S."
},
"datePublished": "2026-09-14",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5",
"worstRating": "1"
},
"reviewBody": "Heavy, flat and still looks new after a month of daily use."
},
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Tom R."
},
"datePublished": "2026-10-02",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5",
"worstRating": "1"
},
"reviewBody": "Lovely board. It arrived a day later than the estimate."
}
]
}
</script>
What each part does:
- The reviews are nested inside the product's
reviewproperty, so neither has anitemReviewed. Google says it assumes "the parent item is the reviewed item". - There is an aggregate because there are several reviews. Google says: "If you include multiple individual reviews, also include an aggregate rating of the individual reviews."
- The average matches the reviews: (5 + 4) / 2 = 4.5, with a
reviewCountof 2. If you remove a review, update both. imageandoffersare there because a shopper can buy on this page, which is what Google's merchant listings cover. Google says the merchant listing properties also make a page eligible for product snippets (Google: product structured data).
If people cannot buy on the page, for example a review or comparison article, Google says to use product snippets, which need only name plus one of review, aggregateRating or offers. Only "pages where a shopper can purchase a product are eligible for merchant listing experiences" (Google).
A second example: a software app
For a SaaS product or app, Google's software app markup needs a name, an offers. and either aggregateRating or review (Google). A free app sets the price to 0.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Example Invoicer",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "GBP"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"ratingCount": "38",
"bestRating": "5",
"worstRating": "1"
}
}
</script>
The same rules apply: the 38 ratings and the 4.6 average must be visible on the page, and they must come from your own users. Google says: "Don't aggregate reviews or ratings from other websites."
How to add review schema to your site
- Pick the type for the thing being reviewed, from the table above. If the only thing reviewed is your company, stop here: on your own site it is not eligible for stars.
- Show the reviews on the page. Google says "It must be immediately obvious to users that the page has review content", and "If you use AggregateRating, users should be able to see that aggregate rating on the page."
- Write the JSON-LD for that one item, with its reviews nested inside it, using the example above as a starting point.
- Keep it in step with the page. When a review is added or removed, the count and the average in the markup should change too. In the UK, the Competition and Markets Authority's guidance gives, as an example of publishing reviews in a misleading way, "failing promptly to update a product's star rating and review count where reviews have been identified and removed as fake" (CMA208, paragraph 5.111).
- Test the live page, as below.
How to test review schema with the Rich Results Test
- Open Google's Rich Results Test.
- Enter the URL of the live page. Paste code while you are drafting, but test the published URL, because that is what Google crawls.
- Check that the test finds your item and its reviews, and fix any errors it reports before warnings.
If your reviews load by script, note that Google "won't render JavaScript from blocked files or on blocked pages" (Google).
Google's other review rules
From Google's review snippet guidelines, unless a different link is given:
- Mark up only what readers can see: "Don't mark up content that is not visible to readers of the page" (Google).
- Review one specific item, "not about a category or a list of" items.
- "Don't aggregate reviews or ratings from other websites."
- "Don't include fake or undisclosed incentivized reviews on your page or in your structured data markup."
- "We recommend only accepting ratings that are accompanied by a review comment and author's name."
- Breaking these rules can cost you: "Google may take manual action against it."
Common review schema errors and how to fix them
| Problem | Why it happens | Fix |
|---|---|---|
| No stars for reviews of your company | Self-serving reviews on Organization or LocalBusiness |
Mark up reviews of your products, apps or courses instead; you can still show company reviews on the page, without star markup |
| No review snippet for a service | Service is not an eligible type |
If what you offer genuinely is a course or an app, use Course or SoftwareApplication; do not relabel a service to fit, because Google bars misleading markup |
| Reviews in the markup but not on the page | Markup added without the visible reviews | Show the same reviews and average on the page |
| Rating read wrongly | Comma decimals, or a 10-point scale without bestRating |
Use a dot (4.4) and set bestRating and worstRating |
| Reviewer name not valid | A promotion in the author field, like Google's example "50% off on Black Friday" |
Use the reviewer's own name |
| Markup missing in the test | Script blocked, or content not in the rendered HTML | Check the rendered HTML; for Product, put the JSON-LD in the initial HTML |
Review schema and third-party review platforms
If you collect reviews on a review platform and show them on your site with a widget, Google's rules apply to what ends up on your page, whoever wrote the code. The reviews must be visible on that page and describe its item. Reviews of your company shown this way are still self-serving. Google also says not to aggregate reviews or ratings from other websites, so ask any provider how its markup fits that guideline, and whether the markup arrives in the initial HTML or by script. Then check the rendered HTML in the Rich Results Test.
Our review widget guide covers choosing and installing a widget, and verified reviews explains how reviews are checked. Star ratings in Google Shopping and ads come from a different system, covered in Google seller ratings.
Where GoldStarred fits
GoldStarred puts reviews of what you sell on the pages where you sell it. On Growth, at $17 a month (before VAT or sales tax), each of up to 25 products, apps or courses gets its own reviews, its own widget and the Google markup that makes that page eligible for star ratings. You paste one snippet, and each product is added the first time its widget loads on your verified site. Pro, at $37 a month, covers unlimited products. Both are monthly, with no annual contract.
Reviews of your business itself have a home of their own: your public GoldStarred profile, which Google can list once it holds 3 published reviews, and the badge that shows your rating on your site. The profile, the badge and 75 review invites a month are free.
We make GoldStarred, so weigh this section with that in mind. See GoldStarred plans, or for how other review platforms compare, Trustpilot vs Google reviews and Yotpo alternatives.
FAQ
What is review schema?
Review schema is structured data, usually JSON-LD, that describes the reviews and ratings on a page with the schema.org Review and AggregateRating types. Google may use it to show star ratings for eligible types such as Product, SoftwareApplication and Course.
What is the difference between Review and AggregateRating schema?
Review describes one person's review: who wrote it, when, and the rating they gave. AggregateRating describes the average across many reviews, with a count. Google says that if you mark up several individual reviews, you should also include an aggregate rating of them.
How do I add review schema to my website?
Choose an eligible type for the thing being reviewed, show the reviews on the page, add a JSON-LD script describing the item with its review and aggregateRating properties, then test the live URL with Google's Rich Results Test.
Can a local business use review schema on its own site?
Not for star ratings about itself. Google says pages that use LocalBusiness or Organization markup for reviews the business controls about itself are ineligible for the star review feature, even through an embedded third-party widget. Reviews of the products it sells are a different case.
Does review schema improve rankings?
The Google pages we read describe review markup as making a page eligible for review snippets in search results. They do not say it changes where a page ranks, and Google does not guarantee that the snippet will show even when the markup is correct.
How do I test my review schema?
Paste the live URL or the code into Google's Rich Results Test, fix any errors it reports, and check the rendered HTML to confirm the reviews and markup are there. Google says the URL Inspection Tool can also show the rendered HTML.
Why are my review stars not showing in Google?
Common reasons are an ineligible type, self-serving reviews on a LocalBusiness or Organization page, reviews that are not visible on the page, or markup Google could not render. Even correct markup only makes stars possible; Google decides whether to show them.
Sources and check dates
All checked 25 October 2026. Google updates these pages, so confirm on the linked page before you rely on a detail.
- Google Search Central: 1review snippet (last updated 8 September 2026) and the 22019 announcement of the self-serving rule
- Google Search Central: 3structured data policies and 4introduction to structured data
- Google Search Central: 5product structured data, 6product snippet, 7merchant listing and 8software app
- Google Search Central: 9JavaScript SEO basics and 10generating structured data with JavaScript
- Competition and Markets Authority: 11fake reviews guidance, CMA208 (published 4 April 2025)