How to Use Review and AggregateRating Structured Data for Rich Snippets

What Is a Review Snippet?
A review snippet is a short preview of a review or rating that appears in Google Search results. These snippets often include star ratings, review count, and average score based on multiple user reviews. When implemented correctly, your review-rich results can appear in:
- Google’s search listings
- Knowledge Panels
- Product carousels
- And other enhanced results
The rating refers to a value on a numerical scale (e.g., 1 to 5) and can be associated with various content types.
Where Review Snippets Can Appear
Google may display review snippets for these types of content:
- Books
- Courses
- Events
- Local businesses
- Products
- Recipes
- Software apps
- Creative works (e.g., games, movies, TV episodes)
- Organizations (when reviewed by third parties, not self-reviews)
⚠️ Note: Sites reviewing themselves (e.g., a business showing its own reviews) are not eligible for star-rich snippets.
Benefits of Using Review Structured Data
- Boost CTR: Eye-catching star ratings attract more clicks.
- Increased visibility: Stand out with visual enhancements.
- Trust building: Show transparent feedback from users.
- Broader eligibility: Enable appearance in rich results and Google Knowledge Panels.
How to Add Review Structured Data
To implement review structured data:
- Choose a Format
Use JSON-LD (recommended), RDFa, or Microdata to add structured data to your HTML. - Include Required Properties
Ensure you use all required schema.org fields likeauthor
,reviewRating
, anditemReviewed
. - Validate Your Code
Use Google’s Rich Results Test to check your markup and fix any issues. - Deploy and Request Indexing
Test a few pages, ensure they are accessible to Google, and then use Search Console to request reindexing. - Submit Updated Sitemap
Automate sitemap updates with the Search Console Sitemap API.
Example: Simple Review (JSON-LD)
htmlCopyEdit<html>
<head>
<title>Legal Seafood</title>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "Restaurant",
"image": "https://www.example.com/seafood-restaurant.jpg",
"name": "Legal Seafood",
"servesCuisine": "Seafood",
"priceRange": "$$$",
"telephone": "1234567",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 William St",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10038",
"addressCountry": "US"
}
},
"reviewRating": {
"@type": "Rating",
"ratingValue": 4
},
"author": {
"@type": "Person",
"name": "Bob Smith"
},
"publisher": {
"@type": "Organization",
"name": "Washington Times"
}
}
</script>
</head>
<body>
</body>
</html>
Using Nested Review Markup with AggregateRating
You can also provide reviews as nested structured data inside a parent item like Product
, Course
, or Recipe
. This approach is often used to associate multiple reviews with a single item and enables the display of aggregate rating in search results.
Example: Nested Review Inside Product (JSON-LD)
htmlCopyEdit<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Executive Anvil",
"image": "https://kumarharshit.in/photos/1x1/anvil.jpg",
"description": "Sleeker than ACME's classic anvil, this one is perfect for the business traveler.",
"sku": "0446310786",
"mpn": "925872",
"brand": {
"@type": "Brand",
"name": "ACME"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Fred Benson"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "89"
}
}
</script>
Key Properties for AggregateRating
Property | Description | Required |
---|---|---|
@type | Must be AggregateRating | ✅ |
ratingValue | The average rating (e.g., 4.5) | ✅ |
reviewCount | Total number of individual ratings or reviews | ✅ |
bestRating | Highest possible rating (optional, defaults to 5) | ❌ |
worstRating | Lowest possible rating (optional, defaults to 1) | ❌ |
Notes on Structured Data Eligibility
- Google uses machine learning and quality signals to determine whether to show review snippets.
- Structured data must match the visible content on the page.
- Don’t mark up irrelevant or fake reviews—this violates Google’s guidelines and can lead to penalties.
Content Guidelines for Review Snippets
To ensure your reviews are eligible for snippets:
- The review content must be accessible on the page.
- Avoid self-serving reviews — a business can’t review itself.
- Each review must be unique and not scraped or copied.
- Star ratings must accurately reflect the actual average.
Example: Aggregate Rating Only (No Individual Review)
If you don’t have individual reviews, but only an average score, you can still use AggregateRating
.
jsonCopyEdit{
"@context": "https://schema.org",
"@type": "Product",
"name": "Digital Camera Pro",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "250"
}
}
This approach is common for eCommerce and software websites where rating totals are shown but individual reviews are not exposed in detail.
Eligible Content Types for Review Snippets
Google allows review or aggregateRating structured data for a specific list of item types. These are the only content types currently eligible for review snippets in Google Search.
✅ Allowed Types
Schema.org Type | Description |
---|---|
Book | Reviews for published books |
Course | Educational course reviews |
Event | Ratings and reviews of events |
HowTo | Reviews on instructional guides |
LocalBusiness | Ratings on businesses (3rd party) |
Movie | Movie reviews |
Product | Physical or digital product reviews |
Recipe | Reviews of food recipes |
SoftwareApplication | Reviews for mobile or web apps |
⚠️ Reviews for Organization, Place, or Person are not eligible for display as rich results.
❌ Not Allowed
Do not use review structured data for the following content:
- Self-reviews (a business reviewing itself)
- Fake, duplicate, or irrelevant reviews
- Reviews not visible on the page
- Using incorrect schema types (e.g.,
WebPage
orArticle
withReview
)
Guidelines for Multi-Type Pages
If your page contains multiple eligible item types, Google recommends marking up only the most relevant one for review purposes. Don’t overload the page with multiple types unless they each represent actual, structured content.
Example of a Violation
If your site lists a local service and you embed customer reviews with markup like this:
jsonCopyEdit{
"@context": "https://schema.org",
"@type": "WebPage",
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"author": {
"@type": "Person",
"name": "Fake User"
}
}
}
This will likely be ignored by Google because WebPage
is not an allowed review-rich result type, and the review is potentially not credible.
Placement and Consistency
For the best results:
- Place your structured data on the same page as the reviewed content.
- Ensure the text of the review or rating appears visibly on the page.
- Keep your structured data updated to reflect recent changes.
Failure to meet these guidelines may result in Google:
- Ignoring the markup entirely
- Issuing a manual action for spammy or misleading structured data
Monitoring and Testing Review Snippets
After implementing review structured data, it’s important to monitor its performance and ensure your markup is valid and working properly.
Tools to Help You Validate and Test
✅ Rich Results Test
- URL: https://search.google.com/test/rich-results
- Use this to check if your page is eligible for review-rich results.
- It highlights errors and warnings for structured data on your page.
✅ Search Console Enhancements Report
If Google detects review structured data on your site, a Review Snippets enhancement section will appear in Search Console.
You can:
- See valid, warning, and error pages
- Monitor the number of impressions for review snippets
- Click into individual issues to fix markup errors
Common Issues and How to Fix Them
Issue | What It Means | Fix Suggestion |
---|---|---|
Missing ratingValue or author | Required fields are not present in markup | Add all required schema fields |
Invalid item type | Markup used on a non-supported schema type | Use only allowed types like Product , Course , etc. |
Mismatched content | Structured data doesn’t match visible page text | Ensure reviews/rating are actually displayed on page |
Spammy or self-serving reviews | You marked up your own business’s reviews | Remove or switch to 3rd-party reviews only |
When Will Review Snippets Appear?
Adding valid structured data does not guarantee that Google will show review snippets in search results. Appearance depends on:
- Searcher’s intent
- Content quality and page authority
- Structured data accuracy
- Google’s discretion and algorithms
Stay patient—if your implementation is valid and your content is high quality, rich results may show up over time.
Summary
By using structured data like Review
and AggregateRating
, you can unlock rich snippets in Google Search that make your listings more attractive and trustworthy. These enhancements can lead to:
- Higher CTR
- Improved user confidence
- Stronger brand visibility
Just make sure your markup:
- Follows Google’s guidelines
- Matches the content users can see
- Is tested and validated regularly
Leave a Reply