Review and rating markup, done right
The JSON-LD Review Schema Builder produces either a single Review or an AggregateRating block, correctly nested inside the item being reviewed. Review snippets add eye-catching stars to your search listing, which lifts click-through on commercial and local pages.
Review versus AggregateRating — when to use each
Use Review when you are marking up a single, specific review from one person. This requires an author name, a review body (the actual text), and optionally a publication date. It is appropriate for a testimonial on a product page, a guest review on an accommodation listing, or a critic’s review of a book.
Use AggregateRating when the page displays an aggregated score from multiple reviews — the “4.7 out of 5 based on 312 reviews” summary you see on product and business pages. This requires a ratingValue, a reviewCount (or ratingCount), and the scale bounds. It does not need an individual author because it represents a collective score.
A page can carry both at the same time: an AggregateRating in the product header and individual Review blocks below, all nested under the same Product parent.
How it works
When you choose Review, the tool builds a Review object with an author of type Person, a reviewBody, an optional datePublished, and a reviewRating Rating carrying ratingValue, bestRating and worstRating. When you choose AggregateRating, it builds an AggregateRating with ratingValue, reviewCount, bestRating and worstRating. In both cases the rating is wrapped inside an itemReviewed object whose @type and name you set, so the output is a complete, standalone block. The rating value is clamped to the scale you define.
Choosing the right itemReviewed type
The @type of the reviewed item governs whether Google will show rich results. Common eligible types include:
| What you are reviewing | Schema type |
|---|---|
| A physical or digital product | Product |
| A local shop, restaurant, or service | LocalBusiness |
| A recipe | Recipe |
| A book | Book |
| A film | Movie |
| A software application | SoftwareApplication |
| A course | Course |
Google does not show review stars for all types — Person, Organization, and Event are generally ineligible for review-snippet display, though the markup is still valid structured data.
Complete example: product AggregateRating
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Wireless Headphones",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "847",
"bestRating": "5",
"worstRating": "1"
}
}
Common reasons review stars do not appear
- The reviewed item type is not eligible for review snippets.
- The
ratingValuefalls outside the declaredworstRating–bestRatingrange. - The rating is not visibly displayed on the page — Google requires the markup to match visible content.
- The review was written by the site owner about their own business or product — Google’s guidelines explicitly prohibit self-serving review markup.
- The markup is valid but the page lacks enough authority for rich results to trigger.
After pasting the output into your page, validate with Google’s Rich Results Test to confirm the block is parsed correctly and eligible.