Reviews & Testimonials

Review Schema Markup: Eligibility, Examples, and Common Errors

A plain-English guide to Review and AggregateRating structured data, including supported types, self-serving review limits, visible-content rules, and testing.

Reviewed by Social Proofs Standards Editor on Aug 6, 2026

Published Jul 31, 2026 / Updated Aug 6, 2026

FormatsReview and AggregateRating
RequiredVisible, eligible review content
Not promisedA Google rich result

Review structured data describes review content that is already visible on a page. It does not make a testimonial true, turn an ineligible subject into an eligible one, or guarantee stars in search results. Google decides whether a rich result appears even when markup is valid.

Check the reviewed item and page

  • The page is primarily about one identifiable item or a legitimate list of reviewed items.
  • The reviewed item uses a type supported by Google's current review snippet documentation.
  • The review text or aggregate rating represented in JSON-LD is visible to visitors.
  • The rating scale, value, count, author, and reviewed item agree with the displayed content.
  • The page follows general structured-data policies and is indexable.
  • The markup does not present an organization's self-selected reviews about itself as an eligible self-serving organization rating.

Google currently documents eligible review snippet types such as Product, SoftwareApplication, Book, Course, Event, Movie, Recipe, and selected CreativeWork types. LocalBusiness and Organization have additional restrictions around self-serving reviews. Always check the current documentation before implementation because supported features and policies can change.

JSON-LD example for one visible software review

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": {
    "@type": "SoftwareApplication",
    "name": "Example Workspace",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web"
  },
  "author": {
    "@type": "Person",
    "name": "Avery Chen"
  },
  "datePublished": "2026-07-12",
  "reviewBody": "The visible review text shown on this page.",
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "4",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

This is a syntax pattern with fictional names, not a real review. A live implementation must use the actual item, author, date, text, and score shown to visitors.

JSON-LD example for an aggregate rating

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Example Desk Lamp",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "87",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

The visible page should show the 4.4 score, 87-review count, scale, reviewed product, and access to the underlying review information. Do not copy an aggregate from another platform unless the use, licensing, and structured-data policies permit it.

Common implementation errors

ErrorWhy it failsBetter action
Markup-only ratingVisitors cannot see the represented contentDisplay the rating and reviews or remove markup
Organization rates itselfSelf-serving review restrictions applyDo not expect organization review stars on its own site
Wrong item typeThe reviewed subject is not eligible for the featureUse accurate schema without forcing review markup
One rating across many itemsThe page does not identify a single matching subjectMark up each eligible item on its own relevant page
Stale countVisible and structured values disagreeGenerate both from the same current source
Valid syntax treated as a promiseEligibility and display remain Google's decisionValidate, monitor, and avoid guaranteed-result claims

Release checklist

  1. Validate vocabulary and syntax in Schema.org Validator.
  2. Test Google feature eligibility in Rich Results Test.
  3. Compare rendered text and JSON-LD values.
  4. Inspect a production URL after deployment.
  5. Monitor Search Console enhancement reports where available.
  6. Retest after template or data-source changes.
Structured data is a description

Build the visible review experience first. Add markup only after the page clearly identifies the item, source, score, author, and content a person can inspect.

Sources and tools

How this page was prepared

Technical requirements and examples were checked against current Google Search documentation. The page does not promise a rich result after valid markup is added.

AI-assisted tools supported research organization or drafting. A human editor checked the final page for accuracy, relevance, sourcing, and originality before publication.