Review Schema Markup: How to Get Star Ratings in Google Results

Those orange stars under a search result aren't paid placement and aren't Google magic. They're review snippets, a rich result Google renders when a page carries valid review structured data and passes its credibility rules. Sites with stars routinely see meaningful click-through lift, which is why everyone wants them and why Google keeps tightening who qualifies.
Here's how the system actually works, including the rule that disqualifies most DIY attempts.

What Google needs to show stars
Three ingredients:
1. Structured data on the page. Machine-readable markup (Google recommends JSON-LD) describing the thing being reviewed and its ratings. The two key types:
Review: a single review, with author, rating, body, and date.AggregateRating: the summary, an average rating value plus the count of ratings or reviews.
Both must be nested inside the item they describe (a SoftwareApplication, Product, etc.). Orphaned rating markup with no parent item is invalid for rich results.
2. A supported parent type. Review snippets only render for certain types: Product, SoftwareApplication, Book, Course, Movie, Recipe, LocalBusiness (with caveats), and a handful more. For a SaaS or web app, SoftwareApplication is the natural fit.
3. Eligibility. Valid markup is necessary, not sufficient. Google's quality guidelines decide whether stars actually render, and the big one is next.
The self-serving rule
Since 2019, Google ignores review markup it considers self-serving: LocalBusiness or Organization reviews marked up by the entity being reviewed, on its own site. In practice, Google is skeptical of any arrangement where the reviewed party controls the review data. Writing your own aggregate rating into your homepage is exactly the manipulation the rule targets.
This is why the common pattern of piping your testimonials into AggregateRating markup on your own domain quietly earns nothing. The markup validates; the stars never come.
What works instead: reviews published on an independent platform, with schema on that page. When someone searches your product name, the independent trust page ranks with stars attached, and those are stars a competitor can't accuse you of writing yourself. This is precisely what TheWebRatings' public app pages do: your verified reviews are published at an independent URL with SoftwareApplication + AggregateRating + Review markup maintained for you. You can see live examples on the apps directory.

A minimal valid example
For a software product page, the JSON-LD looks like this:
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "ExampleApp",
"applicationCategory": "WebApplication",
"operatingSystem": "Any",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "89",
"bestRating": "5",
"worstRating": "1"
}
}Common validity mistakes: ratingValue outside the declared best/worst range, reviewCount of zero, ratings markup without the parent item, and marking up reviews that don't visibly appear on the page (Google requires the structured data to reflect visible content). A step-by-step walkthrough is in how to add AggregateRating schema.
Testing and monitoring
- Rich Results Test (search.google.com/test/rich-results): paste the URL and confirm "Review snippets" is detected with no errors.
- Search Console → Enhancements → Review snippets: tracks valid/invalid items across your site over time.
- Patience. After markup ships, stars can take days to weeks to appear, and Google renders them at its discretion even when everything validates. Eligibility is a lottery ticket; valid markup just buys entry.

Which parent types are worth targeting
Not all supported types are equally useful, so aim your effort where it pays. For a SaaS or web app, SoftwareApplication is the workhorse: it supports review snippets, pairs naturally with an offers block, and matches how Google classifies your product's queries. Product is the right choice for anything sold as a unit (including digital products with a one-time price), and it qualifies for additional shopping surfaces beyond review snippets. Organization is largely a dead end for stars because of the self-serving rule. Mark up your organization for knowledge-panel purposes, but don't attach ratings to it and expect rich results.

Two types trip people up. LocalBusiness still renders stars in some contexts, but only from independent sources; the era of marking up your own storefront with your own ratings is over. And WebSite/WebPage don't support review snippets at all; rating markup attached to them validates in generic checkers and then does nothing, which makes it a popular way to waste a sprint.
The general principle: pick the most specific type that honestly describes the thing being reviewed, and confirm it's on Google's supported list for review snippets before writing a line of markup.
Beyond Google: AI assistants read schema too
Structured data was designed for machine consumption, and LLM-based assistants are the newest machines consuming it. When ChatGPT, Claude, or Perplexity evaluate "best X tools," structured rating data on crawlable, independent pages is among the cleanest signals available. The same markup that earns Google stars makes your ratings citable by AI, a channel that's growing while classic search CTR shrinks.
The short version
- Reviews must live on a page with valid
Review/AggregateRatingJSON-LD nested in a supported type. - That page can't be your own site reviewing itself; the self-serving rule kills it.
- Independent platform + verified reviews + maintained schema = eligible stars for your product's searches.
For format-level detail (why JSON-LD beat microdata), read JSON-LD vs Microdata vs RDFa, and for the full topic, the pillar guide: review schema and structured data. If you'd rather not maintain any of this by hand, that's what TheWebRatings does: verified collection in-app, independent publication, schema included.
Frequently asked questions
Valid markup buys eligibility, not a guarantee. The usual culprits, in order: the markup is self-serving (your site rating itself), the parent type doesn't support review snippets, the rated content isn't visible on the page, or Google simply hasn't chosen to render stars yet, since it renders rich results at its discretion.
Since 2019, Google ignores review markup published by the entity being reviewed on its own site. Marking up your own testimonials with AggregateRating is the canonical example. Stars come from independent pages: review platforms, marketplaces, and editorial sites publishing ratings about you.
Google supports review snippets for a specific list including Product, SoftwareApplication, Book, Course, Movie, Recipe, and LocalBusiness (with caveats). For a SaaS or web app, SoftwareApplication is the right choice; WebSite and WebPage don't support review snippets at all.
Days to weeks after Google re-crawls the page, assuming the markup is valid and eligible. Track progress in Search Console's review snippets report, and remember that even fully valid items render at Google's discretion.
You can, but it earns nothing. That's precisely the self-serving pattern the rule targets, and the markup will be silently ignored. The working alternative is an independent platform page about your product; TheWebRatings maintains that page and its schema from your verified reviews automatically.