Review Schema Generator — Clear, Policy‑Aligned Reviews
Generate valid Review JSON‑LD for supported item types. Clarify author, rating, body, and date while respecting review snippet policies.
Try the Review GeneratorWhy many review pages underperform
- Ineligible item types or self‑serving reviews prevent snippets from appearing.
- Missing author/date or unclear itemReviewed leads to validator warnings.
- Mixing single reviews and AggregateRating causes schema confusion.
- Hand‑written JSON‑LD is inconsistent across SKUs or apps.
How SwiftSchema helps
The Review generator focuses on essentials that matter for snippets: a clear itemReviewed (with a specific @type), reviewRating.ratingValue, author, reviewBody, and datePublished.
It produces copy‑ready JSON‑LD for single reviews and guides you to use AggregateRating on the item itself when summarizing many reviews.
We keep language and structure aligned with review policies to reduce issues.
How it works
- 01
Choose Review in the generator below.
- 02
Select or specify the itemReviewed type (e.g., Product, SoftwareApplication, Book) and name.
- 03
Enter author, review body, rating value (and bestRating if needed), and datePublished.
- 04
Copy JSON or Script, paste into the review page, and validate in the Rich Results Test.
- 05
Use AggregateRating on the item page if summarizing multiple reviews.
Ready to build the markup?
One review per page. Validate. Ship.
What is Review structured data?
Review structured data describes an individual review (author, rating, body, date) for a specific item. It can support review snippets on eligible item types when policies are followed.
Use Review when:
- You are marking up a single, genuine review about one item (e.g., a product detail page highlighting a customer or editorial review).
- The review is visible on the page to both users and crawlers.
- The item type is supported for review snippets (Product, Book, SoftwareApplication, Movie, Recipe, CreativeWork variants).
Avoid Review when:
- You are summarizing multiple reviews (use AggregateRating on the item instead or in addition).
- You’re marking up self‑serving reviews on restricted types (e.g., LocalBusiness/Organization testimonials). Google often ignores these for snippets.
- The content is hidden behind paywalls, gated tabs, or heavily obfuscated to crawlers.
- The page is not the canonical place for the review (duplicate URLs with the same content).
Eligibility and policy notes
- Mark up only reviews you can legally publish and that users see on the page.
- Do not mark up third‑party syndicated reviews without permission.
- For YMYL topics (health, finance, safety), ensure human editorial oversight; avoid AI‑generated filler.
- Keep one primary review per Review block; use AggregateRating on the item for overall averages.
- Use supported item types; Review on generic WebPage is unlikely to help.
Item types and when to use them
- Product: Default for ecommerce; include SKU/brand if available. Pair with AggregateRating on the Product entity.
- SoftwareApplication / SoftwareApp: Add
softwareVersion,operatingSystem,applicationCategory. - Book: Include
isbnand author; ideal for book reviews and publisher sites. - Recipe: Use when the page is a recipe and you show a user or editorial review.
- Movie / CreativeWork: Use for editorial reviews with publisher context.
- LocalBusiness/Organization: Allowed in schema, but Google may treat self‑serving reviews as ineligible for snippets. Use sparingly and transparently.
Property guidance
- reviewRating.ratingValue (required): Numeric value. Add
bestRating/worstRatingif scale ≠ 1–5. - itemReviewed.name (required): Exact item name as shown on-page.
- itemReviewed.@type (recommended): Concrete type (Product, SoftwareApplication, Book, Recipe, etc.).
- author.name (recommended): Person or Organization. For labs/editorials, set publisher too.
- datePublished (recommended): ISO date the review was published on this page.
- reviewBody/headline (recommended): Keep concise and match visible text.
headlineis great for editorial reviews. - inLanguage (optional): Add when localized.
- publisher (optional): Use for editorial reviews to show source.
On-page parity checklist
- The same rating number and scale shown to users appears in
ratingValue/bestRating/worstRating. - The reviewed item on the page matches
itemReviewed(name, type, identifiers). - The review text and author match exactly; no rewritten or AI-swapped text in JSON-LD.
- Page is indexable (no
noindex, no robots.txt block) and uses a self-referential canonical. - If multiple reviews are shown, choose one to mark as Review and use AggregateRating on the item for the aggregate score.
Implementation steps (detailed)
- Confirm eligibility: Item type supports snippets; review is visible; page is canonical and indexable.
- Gather fields: Author, rating value/scale, datePublished, reviewBody/headline, item type, item name, and identifiers (SKU/ISBN/version).
- Generate JSON-LD: Use this guide’s generator with the correct item type and rating scale.
- Add AggregateRating (if applicable): On the item entity, include
ratingValue,ratingCount,bestRating,worstRatingfor overall averages. - Place schema: One Review script per page; put it in
<head>or before</body>. - Validate: Run Rich Results Test; check Search Console for Review snippet issues.
- Publish and monitor: Track warnings about unsupported types or self-serving content; keep data fresh.
JSON-LD examples
Single highlighted review on a product page
{
"@context": "https://schema.org",
"@type": "Review",
"author": { "@type": "Person", "name": "Taylor" },
"datePublished": "2025-07-10",
"reviewBody": "Solid value and easy setup.",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5",
"worstRating": "1"
},
"itemReviewed": {
"@type": "Product",
"name": "ACME Anvil",
"sku": "ANV-1000"
}
}
Editorial review of a SoftwareApplication
{
"@context": "https://schema.org",
"@type": "Review",
"author": { "@type": "Organization", "name": "AppLab Reviews" },
"publisher": { "@type": "Organization", "name": "AppLab Reviews" },
"datePublished": "2025-02-10",
"headline": "Stable sync at last",
"reviewBody": "Version 5.2 finally fixed sync conflicts and improved offline mode.",
"reviewRating": { "@type": "Rating", "ratingValue": "4.5", "bestRating": "5", "worstRating": "1" },
"itemReviewed": {
"@type": "SoftwareApplication",
"name": "Syncly Pro",
"softwareVersion": "5.2",
"operatingSystem": "iOS, Android, macOS, Windows",
"applicationCategory": "Productivity"
}
}
Book review with ISBN
{
"@context": "https://schema.org",
"@type": "Review",
"author": { "@type": "Person", "name": "Priya" },
"datePublished": "2025-01-15",
"name": "Clear, practical playbook",
"reviewBody": "Great breakdown of building market narratives without fluff.",
"reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
"itemReviewed": {
"@type": "Book",
"name": "Stories that Convert",
"author": { "@type": "Person", "name": "M. Leung" },
"isbn": "978-1-23456-789-7"
}
}
User review on a recipe (UGC)
{
"@context": "https://schema.org",
"@type": "Review",
"author": { "@type": "Person", "name": "Alex" },
"datePublished": "2025-01-08",
"reviewBody": "Needed 5 more minutes of baking, but flavor is great.",
"reviewRating": { "@type": "Rating", "ratingValue": "4", "bestRating": "5" },
"itemReviewed": {
"@type": "Recipe",
"name": "Small-Batch Sourdough Rolls"
}
}
Policy and quality reminders
- Mark up only reviews that are visible and representative. Avoid cherry-picking only 5-star reviews if mixed sentiment is present.
- Disclose when a review is sponsored or incentivized; keep wording truthful to what users see.
- Self-serving reviews for your own business are unlikely to yield snippets; use them mainly for user clarity.
- Do not fabricate authors; use real display names/organizations.
- Keep
datePublishedaccurate; do not backdate to appear fresher.
Common mistakes to avoid
- Unsupported item types: Using Review on WebPage or generic CreativeWork without a supported subtype.
- Mismatched rating scales: UI shows 1–10 but JSON-LD uses 1–5; align using
bestRating/worstRating. - Hidden content: Reviews behind scripts/tabs not rendered to crawlers; ensure server-rendered or hydration-friendly content.
- Duplicate review blocks: Multiple identical Review scripts on many pages; keep one per page or per highlighted review.
- Confusing Review vs AggregateRating: Use Review for one review; use AggregateRating on the item for averages.
Troubleshooting and validation
- Rich Results Test warnings: Ensure
reviewRating.ratingValueanditemReviewed.nameexist; add@typefor the item. - Search Console issues: Check if the page is indexable and the item type is supported for snippets. Remove self-serving reviews on restricted types.
- No snippets showing: Improve on-page quality, clarity of itemReviewed, and confirm eligibility; snippets are not guaranteed.
- Language mismatches: Add
inLanguagewhen localized; keep content and schema in the same language.
Maintenance routine
- Revalidate when you change rating UI, scales, or review layout.
- Update or remove reviews if they are taken down; adjust AggregateRating counts if you use them.
- Refresh
lastReviewedafter substantive content/schema edits. - Periodically spot-check top review pages for parity between UI and JSON-LD and for policy compliance.
Required properties
reviewRating.ratingValueitemReviewed.name
Recommended properties
author.namereviewBodydatePublisheditemReviewed.@typereviewRating.bestRatingreviewRating.worstRatingpublisher.nameinLanguage
{
"@context": "https://schema.org",
"@type": "Review",
"author": {
"@type": "Person",
"name": "Taylor"
},
"datePublished": "2025-07-10",
"reviewBody": "Solid value and easy setup.",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"itemReviewed": {
"@type": "Product",
"name": "ACME Anvil"
}
}FAQs
Which types support review snippets?ShowHide
Review snippets are supported for select types like Product, Book, and SoftwareApp. Some self‑serving reviews (e.g., LocalBusiness/Organization) are restricted.
What’s the difference between Review and AggregateRating?ShowHide
A Review is a single evaluation. AggregateRating summarizes multiple reviews (ratingValue, ratingCount).
Can I mark up my own testimonials?ShowHide
Follow Google’s review policies. Avoid misrepresenting self‑serving reviews on restricted types.