Schema.org · Review · AggregateRating
Review schema markup — star ratings in search results
Review schema markup is structured data that tells a search engine which part of a page is a review, who wrote it and what rating it carries. Stars next to a site in search do not appear on their own: the engine has to find both the reviews and the markup in the page source. Here is what to mark up, why stars often fail to show, and how to get a block that ships the markup for you.
What has to be in the code
Review markup is three nested items. Miss any one of them and no rating will be shown.
1. The thing being reviewed
Organization, LocalBusiness or Product
with a name. The reviews hang off it — on their own they mean nothing to a
search engine.
2. The aggregate rating
AggregateRating: ratingValue is the average,
reviewCount is how many reviews, bestRating is the top
of the scale.
3. The reviews themselves
Each one a Review: author, reviewBody,
reviewRating with the score, and datePublished.
Why the stars do not show up
- The reviews are drawn by a script. The most common reason by far. The page source contains an empty container and the markup only exists in the browser. The crawler sees nothing.
- The markup is incomplete. A rating with no reviews under it, or a review with no author or no score. Search engines ignore partial markup entirely.
- The markup is not attached to anything. Reviews marked up on their own, without the organisation or product they describe.
- The page has not been recrawled. After a change you have to request recrawling and wait — markup is not applied retroactively.
- Search engine policy. Google does not show ratings a business publishes about itself (self-serving reviews) for LocalBusiness and Organization types. This is a rule, not a bug, and no plugin gets around it.
A ready block instead of hand-written markup
Marking reviews up by hand means editing your site template and then keeping it in
step with every new review. Our block is rendered by the server: the reviews arrive
as ready HTML with the markup already in it — Organization,
AggregateRating and a Review for every review. You embed
it once.
It is free: instead of payment there is a link, “Reviews powered by SmittMediaGroup”, inside the block.
How to check your markup
- Google Rich Results Test. Shows whether Google sees the markup and which fields it considers a problem.
- Schema.org validator. Catches structural mistakes — a rating outside the item it belongs to, a missing required property.
- Just look at the page source. Ctrl+U on your own page: if the reviews are not in there, no markup will help — a script is drawing them.
Questions
Microdata or JSON-LD — which is better?
Search engines understand both. Our block uses microdata
(itemprop) on purpose: a customer’s page usually already carries its
own JSON-LD about the organisation, and a second block would conflict with it.
Can I mark up reviews taken from Google?
Copying reviews from a platform to your own site is against platform terms, and search engines treat them as duplicates. Only your own first-party reviews are worth marking up.
How many reviews do I need?
Formally one is enough, but “5.0 out of a single review” convinces nobody — neither a person nor a search engine. Five to ten genuine reviews is a sensible start.
Does markup guarantee stars?
No. Markup is a necessary condition, not a sufficient one: the search engine decides what to display, and its policy can change. Anyone promising guaranteed stars is selling you something they do not control.