Review schema explained: Review vs AggregateRating, which pages Google accepts, the self-serving review rule, JSON-LD examples, validation and common errors.

In short
review schema is structured data that describes a review (Review) or an average rating (AggregateRating) so Google can show stars, a score and a review count under a search result. Google displays these review snippets only for certain item types (products, recipes, books, courses, events, software, movies...), only when the reviews are visible on the page, and never for reviews a local business or organization publishes about itself. Valid markup makes a page eligible; it does not guarantee the stars.
Want to go further? Ask
Review schema is one of the most requested types of schema markup, because stars in a search result catch the eye. It is also the one with the most rules and the most disappointed site owners. Google's review snippet documentation sets those rules, and this guide turns them into decisions: which page can get stars, which markup to write, and why your stars may not show.
Review schema groups two schema.org types:
Review: one review by one author, with a rating (reviewRating), a text (reviewBody) and a date. An editorial test of a laptop or a customer review of a product are both Review items.AggregateRating: the average of many ratings, with the average score (ratingValue) and the number of ratings (ratingCount) or reviews (reviewCount).Both describe something else: the itemReviewed. In practice, you rarely write a standalone review block. You nest review and aggregateRating inside the item they evaluate, such as a Product, a Recipe or a Book. When Google accepts the markup, the result can show a rich snippet with stars, the score, the number of reviews or the reviewer's name. Do not confuse it with ClaimReview, the markup for fact-checks, which Google stopped displaying in Search after its June 2025 simplification of results.
Google limits review snippets to a defined list of types. Since a September 2019 update, markup on other types (a generic Thing, a WebPage, a Service on its own) does not produce stars.
| Item type | Eligible for review snippets | Condition |
|---|---|---|
Product | Yes | Reviews of a specific product, visible on the page |
Recipe | Yes | Ratings by users of the recipe |
Book, Movie, Course, Event, SoftwareApplication | Yes | One specific item, not a list or a category |
CreativeWorkSeason, CreativeWorkSeries, Episode, Game, MediaObject, MusicPlaylist, MusicRecording | Supported types | Same rules, less frequent display |
LocalBusiness, Organization | Only on third-party review sites | Never for reviews about yourself on your own site |
| Category page, list of products | No | Google asks for a single, specific item |
Two other Google rules complete the picture: the reviews and the rating must be visible to visitors on the marked-up page, and you must not aggregate reviews collected on other websites. A product page cannot display a "4.8 on Trustpilot" score in its markup.
Google calls reviews self-serving "when a review about entity A is placed on the website of entity A". Since September 2019, Google no longer shows review stars for LocalBusiness and Organization types (and their subtypes) when the business controls the reviews about itself, and the current documentation adds that embedding a third-party widget does not change the rule.
The consequences for a restaurant, a law firm, an agency or a SaaS company:
Review of your Organization, will not produce stars.What still works: reviews of your products on product pages, because the item reviewed is a Product, and reviews of other businesses if you run a review or comparison site. For a local business, the stars that matter appear in the local pack, and they come from the Google Business Profile, not from your markup. Our guide to local business schema explains what to mark up instead, and our article on responding to Google reviews covers the profile side.
| Type | Required properties | Recommended properties |
|---|---|---|
Review | author (Person or Organization, name under 100 characters), itemReviewed with its name (or the parent's name when nested), reviewRating.ratingValue | datePublished, reviewRating.bestRating, reviewRating.worstRating |
AggregateRating | itemReviewed with its name (or the parent's name when nested), ratingValue, and ratingCount or reviewCount | bestRating, worstRating |
Three details cause most validation errors. The scale defaults to 1 to 5: if you rate out of 10 or 100, declare bestRating. Decimals use a dot (4.4, not 4,4), which trips up sites in French, German or Spanish. And the author must be a real name: Google gives "50% off until Saturday" as an example of an invalid author.
The most common case: a product page that shows customer reviews. If you mark up individual reviews, Google asks you to include the aggregate rating as well.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trail Running Shoe X2",
"image": "https://www.example-shop.com/images/x2.jpg",
"brand": { "@type": "Brand", "name": "Example" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.6,
"reviewCount": 128,
"bestRating": 5,
"worstRating": 1
},
"review": [
{
"@type": "Review",
"author": { "@type": "Person", "name": "Claire M." },
"datePublished": "2026-09-14",
"reviewBody": "Light, stable on wet rock, sizes run small.",
"reviewRating": {
"@type": "Rating",
"ratingValue": 4,
"bestRating": 5
}
}
]
}
</script>A blog or a media outlet that tests a product, a book or a piece of software marks up its own review. For editorial product reviews, Google also supports pros and cons through positiveNotes and negativeNotes, with at least two statements, as described in its product snippet documentation.
{
"@context": "https://schema.org",
"@type": "Review",
"itemReviewed": { "@type": "Book", "name": "The Example Handbook" },
"author": { "@type": "Person", "name": "Jordan Lee" },
"datePublished": "2026-08-02",
"reviewRating": { "@type": "Rating", "ratingValue": 8, "bestRating": 10 },
"publisher": { "@type": "Organization", "name": "Example Reviews" }
}Our free schema generator produces both blocks from a form, and the SERP preview tool shows how the title and description will look next to the stars.
Run each template through Google's Rich Results Test (eligibility for the review snippet) and the Schema Markup Validator (schema.org syntax), or use our structured data validator. After deployment, the Review snippets report in Search Console lists valid items and errors across the site.
| Symptom | Likely cause | Fix |
|---|---|---|
| Valid markup, no stars, local business site | Self-serving reviews on LocalBusiness or Organization | Move the effort to the Business Profile; keep product reviews on product pages |
| "Missing field itemReviewed" or missing name | Standalone review without the reviewed item | Nest the review in the item or add itemReviewed.name |
| Rating looks wrong (2.3 instead of 4.6) | Scale out of 10 without bestRating | Declare bestRating and worstRating |
| Invalid value for ratingValue | Comma as decimal separator | Use a dot |
| Stars on a category page never show | The page lists several items | Mark up reviews on each product page |
| Structured data manual action | Reviews not visible, imported from other sites or invented | Show the reviews on the page, remove aggregated third-party scores, then request a review |
| Valid, eligible, still no stars | Google chooses whether to display rich results | Improve the page and the reviews' quality; display is never guaranteed |
Google's general structured data policies apply on top of these rules: they explicitly name "fake reviews" among misleading content not to mark up. Review snippets are one of several SERP features competing for space on the results page, and that list keeps shrinking: Google stopped showing FAQ rich results in May 2026 (our FAQ schema guide covers that markup).
When someone asks an assistant for "the best trail running shoe under $150", the answer often mentions ratings and the number of reviews. Those facts come from pages the assistant can read and from the platforms it trusts. Our study of Trustpilot citations in AI answers shows how often review platforms are used as sources.
Review schema helps in a narrower way than for Google stars. A JSON-LD block gives crawlers an unambiguous score, count and date, and it confirms that the reviews on the page concern a named product. The visible text matters at least as much: a page that states the rating, summarizes what reviewers praise and criticize, and dates its reviews gives a language model citable sentences. Our guide to structured data for AI search develops this, and our checklist for an e-commerce product page shows where reviews fit in the template.
To check whether your products and brand come up when buyers ask AI assistants, Sorank's AI mention tracking follows those questions on ChatGPT, Claude and Gemini, and GEO optimization helps you publish the comparison and buying-guide content they cite.
The rule to keep: mark up real, visible reviews of one specific item, on that item's page. Product pages, recipes, books and software can earn stars; a business reviewing itself cannot, whatever the markup says.
You can, but Google will not show stars for them. Testimonials about your own company are self-serving reviews of an Organization or LocalBusiness, which Google excludes from review snippets since 2019, including when they come from an embedded widget. Keep the testimonials for visitors and focus review markup on product pages.
Review snippets are a display feature, and Google does not present them as a ranking factor. Stars can increase the click-through rate of a result because they make it more visible. The main benefit is more clicks at the same position, not a higher position.
Google needs to recrawl and reprocess the page, which can take from a few days to several weeks depending on how often the site is crawled. You can request indexing of key pages with the URL Inspection tool in Search Console. Even with valid markup, Google decides whether to show the stars for each query.
THEY TRIED SORANK BEFORE YOU
