Star Ratings & Rich Snippets on Your Site
How to implement review schema and aggregate rating schema on your Indian business website. What qualifies, what Google requires, and how to avoid common mistakes.
·
Review Schema and Rich Snippets: Getting Star Ratings in Your Organic Search Results
Star ratings in Google's organic results — the small row of stars under a page title — come from review schema markup on that page, not from Google independently deciding to display them. For local businesses, these rich snippets lift click-through rate and build trust before the visitor even reaches the site.
This is a narrower, more technical piece of the review system than review generation or response management — it's about correctly presenting reviews you already have, not about getting more of them.
What review schema actually is
Review schema uses schema.org vocabulary to describe review data in a machine-readable format search engines can parse. Two types matter for local businesses.
AggregateRating covers the overall rating based on multiple reviews and is what produces the familiar "4.7 stars from 285 reviews" line:
{
"@type": "AggregateRating",
"ratingValue": "4.7",
"bestRating": "5",
"worstRating": "1",
"reviewCount": "285"
}
Review covers an individual review from a specific customer:
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"author": {"@type": "Person", "name": "Priya M."},
"reviewBody": "Excellent experience at the clinic..."
}
Both use JSON-LD as the encoding format, embedded in the page's HTML rather than shown to the visitor directly.
What Google's policy actually requires
Google enforces its review markup policy strictly, and violations don't just fail to show rich results — they can trigger a manual action against the whole site. The core requirement is that the reviews being marked up must actually be visible on the page. Schema can't describe 300 reviews sitting in a database somewhere while the page itself only shows a static "testimonials" block with none of that content rendered.
The reviews also have to come from a genuine, verifiable third party. Testimonials the business wrote itself, reviews solicited but hosted without a traceable original source, or paraphrased versions of reviews that actually live on a third-party platform don't qualify — even if they're accurate representations of what a customer said.
And AggregateRating shouldn't sit on every page of a site as a blanket trust signal. It belongs on the specific page it describes — a location page for that location's rating, a product page for that product's rating, not stamped identically across an entire domain.
Which review sources are actually eligible
High-eligibility sources include Google Reviews embedded through a verified third-party widget — tools like EmbedSocial, Elfsight, or a direct Google Places API integration — because these pull live, source-verified review data straight from Google. Practo review widgets work similarly for healthcare providers, and Zomato's official embed does the same for restaurants. A dedicated review collection form on the business's own website can also qualify, provided the reviews are attributed, dateable, and not filtered to remove negative ones before display.
What doesn't qualify: curated testimonials placed on a site without a verifiable third-party source behind them, and reviews that went through an approval filter before publication. If negative reviews were quietly removed before the aggregate rating was calculated, that rating is misleading by definition, and marking it up as schema compounds the problem rather than just describing it.
Implementing schema for one location vs. many
A single-location business adds AggregateRating inside its LocalBusiness schema on the homepage or main location page:
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"name": "Sharma Skin Clinic",
"address": {...},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "312"
}
}
A multi-location business needs a separate AggregateRating on each individual location page, carrying that location's own rating and review count — not a network-wide average applied uniformly across every location's page. A flagship branch's strong rating shouldn't be borrowed to dress up a page for a branch with a weaker one; besides being against policy, it misleads the exact customer trying to decide whether to visit that specific branch.
Validating before and after publishing
Three checks are worth running every time schema changes: Google's Rich Results Test (search.google.com/test/rich-results) checks whether a specific URL is eligible for rich results as marked up; the Schema.org Validator (validator.schema.org) catches syntax errors in the JSON-LD itself before Google ever crawls it; and Google Search Console's Enhancements report shows any errors Google's own crawler found after indexing the page. Rich snippets don't appear instantly even with clean schema — allow a few weeks after implementation before concluding something's wrong.
Where schema fits with the rest of the site's structured data
Review schema rarely sits alone. It's usually layered inside a broader structured data strategy that includes LocalBusiness details, FAQ markup for common questions, and — for multi-location sites — a schema block per location page. Angryturtle's guide to local business schema covers how these pieces fit together, and the reviews themselves are only worth marking up once the underlying review generation and response systems (see review generation strategy and review sentiment analysis) are actually producing something real to describe.
Common mistakes
Marking up reviews that aren't rendered anywhere on the visible page is the most common policy violation, and it's an easy one to make accidentally when a developer implements schema from a data feed without checking what the page itself actually displays. Applying the same AggregateRating site-wide, rather than per relevant page, is the second most common. And forgetting to update the reviewCount and ratingValue as new reviews come in leaves stale numbers live in search results — a business showing "4.6 stars from 90 reviews" in a snippet when the GBP itself already shows 200 reviews looks inconsistent to anyone who checks both.
FAQ
Will adding review schema guarantee star ratings appear in Google search results? No. Schema makes a page eligible for rich results; Google still decides case by case whether to display them, and eligibility doesn't guarantee display every time.
Can I mark up testimonials I've written based on verbal customer feedback? No, not with Review or AggregateRating schema. Those types require reviews from a genuine, verifiable third-party source — a testimonial you wrote yourself, even if accurate, doesn't meet that bar.
Does every page on a multi-location website need its own AggregateRating? Only pages that genuinely relate to a specific rated entity — a location page, a product page. A generic "about us" page or a blog post shouldn't carry AggregateRating schema at all.
Angryturtle advises on review schema implementation for managed clients →
Stop guessing where you rank locally.
Rank OS scores your Google Business Profile the way Google's local algorithm does — relevance, review health, freshness, entity authority and AIO readiness — and shows you exactly what to fix.
Book a live demo →
Related reading
Ready to have this run for you?
Book a free audit — we'll show you where you stand in 48 hours.