Review · JSON-LD
Review Schema Generator
Review schema marks up an evaluation of something: a rating, who gave it, and what it was about. It can still earn star ratings in search, but only under rules that catch a lot of sites out — those rules are the important part of this page.
Open the schema generatorEligible, with restrictions
Supported, with a significant restriction. Google does not show review snippets for self-serving reviews, meaning reviews of your own business or organisation placed on your own site. Reviews of other things you write about, such as a product you sell or a book you reviewed, remain eligible. Review markup must also be attached to a specific supported item type, not to a page in general.
Why it is still worth adding
Where it is eligible, a star rating is one of the few remaining visible differentiators in a results page. And even where snippets are not shown, structured ratings give AI systems a machine-readable signal of reception rather than an adjective buried in prose.
A valid Review example
Drop this in a <script type="application/ld+json"> tag in the page head or body, with your own values.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Ceramic Pour-Over Dripper",
"review": [
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Marta Ruiz"
},
"datePublished": "2026-06-14",
"reviewBody": "Even extraction and it does not drip after the pour. The ceramic holds heat far better than the plastic cone it replaced."
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "87",
"bestRating": "5"
}
}Required and recommended properties
| Property | Required | Notes |
|---|---|---|
reviewRating | Required | A Rating with ratingValue. Include bestRating unless your scale is out of 5. |
author | Required | A Person or Organization. Never the reviewed business itself. |
itemReviewed | Required | What is being reviewed. Usually supplied by nesting the review inside the item, as above. |
reviewBody | Optional | The review text. Should match what visitors can read. |
datePublished | Optional | When the review was written. Recommended. |
aggregateRating | Optional | Summary of many reviews. reviewCount must match the reviews actually on the page. |
Common Review schema mistakes
Reviewing your own business on your own site
This is the self-serving review rule and it is the single most common reason review stars never appear. Testimonials about your company, placed on your company website, are not eligible for review snippets no matter how valid the markup is.
Ratings with no visible reviews
The rating must correspond to reviews a visitor can see on that page. An aggregateRating of 4.9 with nothing to read is unverifiable and is treated as spam.
reviewCount that does not match reality
Claiming 500 reviews while showing three is a mismatch machines can check. Generate the count from the same data that renders the reviews.
Generating it is the easy half
The harder part is keeping markup correct across a site as pages change. Rankealo's SEO agent audits structured data across your pages and ships the JSON-LD fixes as pull requests you review and merge, rather than handing you a list of errors to implement yourself.
See how the SEO agent ships fixesReview schema questions
Why are my review stars not showing in Google?
The most likely reason is the self-serving review rule: Google does not display review snippets for reviews of your own business or organisation hosted on your own site. Other common causes are ratings that are not visible on the page, review markup attached to an unsupported item type, or a reviewCount that does not match the reviews actually shown.
Can I mark up testimonials on my homepage?
You can add valid markup, but it will not earn star ratings, because testimonials about your own company on your own site are self-serving. If you want visible ratings, collect them on a third-party review platform. Keeping the testimonials as ordinary visible content is still worthwhile for humans and for AI systems reading the page.
What is the difference between Review and AggregateRating?
Review is one evaluation by one author, with its own rating and text. AggregateRating summarises many reviews into an average and a count. They are commonly used together on a product page: several individual reviews plus one aggregate summarising them. Both must reflect content visible on the page.
Other schema types
FAQPage
FAQ schema generator and reference.
LocalBusiness
LocalBusiness schema generator and reference.
Product
Product schema generator and reference.
Service
Service schema generator and reference.
Or go back to the schema markup generator to build markup interactively.
