Skip to main content
Beta: Front-End Checklist is currently in beta. Some issues are still being fixed. Thanks for your patience.
SEOMedium

Add Review schema markup

Validates Review and AggregateRating schema on product, service, and business pages to enable star-rating rich results.

Utilities
Quick take
Typical fix time 10 min
  • Use `Review` schema on individual review pages and `AggregateRating` on product/service pages to earn star-rating rich results
  • `AggregateRating` requires `ratingValue`, `ratingCount` or `reviewCount`, and valid `bestRating` / `worstRating` values
  • Ratings must reflect genuine user reviews — Google penalises self-serving or fabricated ratings
  • Validate markup with Google's Rich Results Test before deploying
Why it matters: Star ratings in search results increase click-through rates by up to 35%; incorrect or missing schema means competitors with valid markup capture that visibility advantage.

Rule Details

Review and AggregateRating schema markup allows Google to display star ratings directly in search results, creating a rich snippet that stands out from plain blue links.

Code Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Noise-Cancelling Headphones",
  "image": "https://example.com/headphones.jpg",
  "description": "Premium headphones with 30-hour battery life.",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "312",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

Why It Matters

Star ratings in search results increase click-through rates by up to 35%; incorrect or missing schema means competitors with valid markup capture that visibility advantage.

Individual Review Schema

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": {
    "@type": "Product",
    "name": "Wireless Headphones"
  },
  "author": {
    "@type": "Person",
    "name": "Jane Smith"
  },
  "datePublished": "2025-02-14",
  "reviewBody": "Excellent sound quality and very comfortable for long sessions.",
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "5",
    "bestRating": "5"
  }
}
</script>

Required Properties for Rich Results

AggregateRating (within a supported type)

PropertyRequiredNotes
ratingValueYesThe average rating (numeric string)
ratingCount or reviewCountYesTotal number of ratings
bestRatingRecommendedMaximum possible rating (default: 5)
worstRatingRecommendedMinimum possible rating (default: 1)

Review

PropertyRequiredNotes
authorYesPerson or Organization
reviewRatingYesA Rating with ratingValue
itemReviewedYesThe thing being reviewed

Supported Entity Types for Star Ratings

Google shows star ratings for reviews of: Product, Recipe, Movie, Book, Software, LocalBusiness, Course, Event.

❌ Policy Violations

  • Self-authored reviews ("Review your own business")
  • Reviews that don't reflect genuine user experiences
  • AggregateRating with reviewCount: 0
  • Markup on pages that don't display review content to users

Validation

Use Google's Rich Results Test (opens in new tab) to confirm:

  1. Schema is detected without errors
  2. The correct rich result type is eligible
  3. All required properties are present

Exceptions

  • Only add or enforce schema types that the page can truthfully support; irrelevant structured data is worse than no structured data.
  • A technically valid schema block can still be misleading if the page content does not visibly back it up; audit rendered content and schema together.
  • If indexability, canonical-url, or main content quality is wrong, fix that foundation before optimizing schema details.

Standards

  • Use these references as the standard for the final search-facing HTML, metadata, and crawl behavior.
  • Check the implementation against Google: Review snippet structured data before treating the rule as satisfied.
  • Check the implementation against Schema.org: AggregateRating before treating the rule as satisfied.

Verification

Automated Checks

  • Inspect rendered HTML and HTTP headers to confirm the expected metadata or crawlability signal is present.
  • Test the affected URL with Google Search Console or equivalent tooling where relevant.
  • Re-crawl a representative page set after deployment.

Manual Checks

  • Confirm the change does not create conflicting canonical-url, robots, or structured-data signals.

Use with AI

Copy these prompts to use with your AI assistant, or install the MCP server to use directly from Claude, Cursor, or Windsurf.

Check

Verify implementation

Inspect the page source or rendered DOM for JSON-LD blocks containing `"@type": "Review"` or `"@type": "AggregateRating"`. Verify required properties are present: `ratingValue`, `ratingCount`/`reviewCount`, `bestRating`. Run the URL through Google's Rich Results Test.

Fix

Auto-fix issues

Add a JSON-LD `<script>` block with `AggregateRating` nested inside the main entity (Product, LocalBusiness, etc.). Populate `ratingValue` and `ratingCount` from real review data. Remove any schema on pages with no genuine user reviews.

Explain

Learn more

Explain how Review and AggregateRating schema work, which page types are eligible for star-rating rich results in Google Search, and why fabricated ratings violate Google's structured data guidelines.

Review

Code review

Review metadata generation, rendered HTML, structured data, and response headers related to Add Review schema markup. Flag exact routes or templates where search-facing output violates the rule, and describe how to verify the final page output.

Sources

References used to support the guidance in this rule.

Further Reading

Tools and supplementary material for exploring the topic in more depth.

Google Search Console
search.google.comTool

Rules that often go hand-in-hand with this one.

Add Product schema markup

Validates Product schema for e-commerce

SEO
Use valid JSON-LD structured data

Validates JSON-LD structured data for syntax correctness, required properties, and schema.org compliance

SEO
Add structured data markup

Schema.org structured data (JSON-LD) is implemented for rich search results.

SEO
Schema + Noindex Conflict

Detects pages that carry rich result schema markup but are blocked from indexing via noindex or robots.txt.

SEO

Was this rule helpful?

Your feedback helps improve rule quality. This stays internal for now.

Loading feedback...
0 / 385