Review and AggregateRating Schema

Star ratings beneath search listings catch attention. Those golden stars come from Review and AggregateRating schema, signaling quality and building trust before users even click. But Google’s policies on review…

Star ratings beneath search listings catch attention. Those golden stars come from Review and AggregateRating schema, signaling quality and building trust before users even click. But Google’s policies on review markup have tightened significantly, and many implementations that worked before now violate guidelines. Understanding what’s allowed, what isn’t, and how to implement correctly determines whether your star ratings appear or disappear.

How Review Schema Creates SERP Stars

Review schema tells search engines about evaluations of products, services, or other items. When Google displays this data, star ratings appear directly in search results, often with review counts.

The visual impact is meaningful. Listings with stars stand out against competitors without them. Studies consistently show higher click-through rates for star-rated listings, particularly in competitive commercial queries.

Two schema types power this functionality:

Review represents a single evaluation from a specific reviewer. Use this when displaying individual named reviews.

AggregateRating represents combined scores from multiple reviews. Use this to show overall ratings with review counts.

Most implementations for rich results use AggregateRating because it represents cumulative assessment rather than single opinions.

Schema Type Use Case SERP Display
Review Individual named review Single reviewer's rating
AggregateRating Combined rating from multiple reviews Star rating + review count
Review + AggregateRating Both individual reviews and summary Full review information

Eligibility Rules: What Can Have Review Markup

Google restricts which content types can display review rich results. These restrictions exist to prevent self-promotional abuse.

Eligible content types:

  • Products (physical goods, software, apps)
  • Local businesses (through LocalBusiness schema)
  • Recipes
  • Books
  • Courses
  • Creative works (movies, music albums)
  • Events
  • Services (when attached to LocalBusiness)

Self-serving review restrictions:

You cannot add review markup for your own organization or products on pages controlled by your organization. This is the rule that trips up most businesses.

A Nashville restaurant’s website cannot use Review schema to display ratings for itself on its own pages. That’s self-serving. The restaurant can use LocalBusiness schema, but star ratings in search require third-party review platforms.

However, the same restaurant could legitimately use Review schema to rate cookware products it recommends (not sells). That’s reviewing external items, not self-rating.

E-commerce product pages:

Online stores can use Product schema with AggregateRating for products they sell, but only when the ratings come from actual customer reviews, not editorial opinions. The reviews must be genuine customer feedback about that specific product.

Review Schema Structure

Individual Review schema captures one person’s evaluation:

{
  "@type": "Review",
  "author": {
    "@type": "Person",
    "name": "Jennifer Martinez"
  },
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "4",
    "bestRating": "5"
  },
  "reviewBody": "Excellent service and quick turnaround. The team was professional and kept me informed throughout the process.",
  "datePublished": "2025-01-10"
}

Required properties for Review:

author identifies who wrote the review. Person type is most common, though Organization works for institutional reviews.

reviewRating contains the Rating object with the actual score.

ratingValue specifies the score given (e.g., “4” on a 5-point scale).

Recommended properties:

bestRating indicates the maximum possible score (defaults to 5 if omitted).

worstRating indicates the minimum possible score (defaults to 1 if omitted).

reviewBody provides the review text.

datePublished shows when the review was written.

AggregateRating Structure

AggregateRating summarizes multiple reviews into a single rating:

{
  "@type": "AggregateRating",
  "ratingValue": "4.6",
  "reviewCount": "127",
  "bestRating": "5",
  "worstRating": "1"
}

Required properties:

ratingValue gives the aggregate score.

reviewCount or ratingCount specifies how many reviews or ratings contribute to the score. Use reviewCount when you have actual reviews; use ratingCount when you have ratings without accompanying review text.

The difference between reviewCount and ratingCount matters for accuracy. If users can rate without writing reviews, some ratings won’t have reviews attached. In that case, reviewCount might be 50 while ratingCount is 100.

Product Page Implementation

E-commerce product pages commonly combine Product schema with AggregateRating:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Premium Wireless Headphones",
  "image": "https://example.com/images/headphones.jpg",
  "description": "High-fidelity wireless headphones with active noise cancellation.",
  "brand": {
    "@type": "Brand",
    "name": "AudioTech"
  },
  "offers": {
    "@type": "Offer",
    "price": "249.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.3",
    "reviewCount": "89"
  }
}

This implementation allows star ratings in product rich results because:

  • The reviews are for a product (eligible content type)
  • The ratings come from customers (not self-promotional)
  • The schema reflects actual review data displayed on the page

Local Business Review Context

LocalBusiness schema can include AggregateRating, but with important caveats about where those ratings originate.

For a Nashville service company, ratings displayed in local pack features typically come from Google Business Profile, not website schema. However, third-party review aggregation services can provide legitimate AggregateRating data.

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Nashville Climate Control",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "789 Service Road",
    "addressLocality": "Nashville",
    "addressRegion": "TN",
    "postalCode": "37203"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "234",
    "url": "https://www.guildquality.com/nashvilleclimatecontrol"
  }
}

The critical element is that ratings must come from genuine customer reviews, ideally from recognized third-party platforms. Self-collected testimonials displayed as star ratings often violate guidelines.

Review Snippet Requirements

For reviews to generate rich results, Google requires corresponding visible content:

Reviews must appear on the page. Your schema aggregateRating claiming 4.5 stars from 100 reviews must have those reviews actually visible on the page, or link to where users can see them.

Ratings must be accurate. If your page shows 4.2 stars from 50 reviews, your schema must match. Mismatches trigger manual actions.

Source transparency. Users should understand where ratings come from. First-party reviews, third-party platforms, and aggregated sources should be distinguishable.

No fake or incentivized reviews. Reviews must reflect genuine customer experience. Manufactured reviews violate both Google’s structured data policies and FTC guidelines.

Common Implementation Mistakes

Self-rating violations. A business adding 5-star rating schema for itself on its own website. This is explicitly prohibited.

Missing visible reviews. Schema claims 200 reviews but the page shows no reviews or only a handful. Google cross-validates schema against page content.

Rating manipulation. Rounding 3.7 up to 4.0 in schema while the page shows 3.7. Even small discrepancies risk penalties.

Review count inflation. Including ratings from other sources or platforms not actually aggregated on your page.

Author attribution issues. Review schema without proper author attribution, making reviews appear anonymous when they shouldn’t be.

Wrong rating scale. Schema uses bestRating of 5 but actual reviews use a 10-point scale. The schema rating must be calculated for the specified scale.

Mistake Example Consequence
Self-rating Business rates itself 5 stars Manual action, removal
Mismatch Schema: 4.8, Page shows: 4.5 Rich result loss
Missing reviews Schema claims 100 reviews, shows 0 Validation failure
Wrong content type Blog post self-review Policy violation
Scale error 9/10 entered as 9/5 scale Incorrect display

Combining Review and AggregateRating

Pages displaying both individual reviews and summary ratings can include both schema types:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Professional Kitchen Knife Set",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "156"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Michael Chen"
      },
      "datePublished": "2025-01-05",
      "reviewBody": "Best knife set I've owned. The chef's knife holds its edge remarkably well.",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      }
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Sarah Thompson"
      },
      "datePublished": "2025-01-08",
      "reviewBody": "Good quality knives but the storage block is smaller than expected.",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      }
    }
  ]
}

The review array shows individual reviews while aggregateRating summarizes all reviews.

Testing and Validation

Before deploying review schema:

Rich Results Test. Verify Google can parse your markup and you’re eligible for review rich results.

Visible content check. Confirm all schema ratings match what users see on the page.

Policy compliance review. Ensure you’re not violating self-serving restrictions for your content type.

After deployment:

Search Console monitoring. Track the Review snippets enhancement report for valid items, warnings, and errors.

Spot check searches. Search for your pages and verify star ratings display correctly.

Regular audits. Review counts and ratings change over time. Ensure schema updates alongside visible review data.

When Review Schema Isn’t Worth It

Not every business benefits from pursuing review schema implementation.

Service businesses on their own websites. Self-serving restrictions often prevent star rating display. Focus on Google Business Profile reviews instead.

Low review volumes. A product with 3 reviews doesn’t benefit from AggregateRating the way one with 300 reviews does. Build review volume before optimizing schema.

Review sources that don’t qualify. Internal testimonials, employee reviews, and non-customer feedback don’t qualify as legitimate review sources.

Content types without rich result support. Not all schema-valid review implementations generate rich results. Google only displays review snippets for specific content categories.

The effort of implementing review schema only pays off when you have legitimate, policy-compliant review data for eligible content types where Google actually displays review rich results.


Sources

  • Google Search Central: Review Snippet Structured Data

https://developers.google.com/search/docs/appearance/structured-data/review-snippet

  • Schema.org: Review Type Definition

https://schema.org/Review

  • Schema.org: AggregateRating Type Definition

https://schema.org/AggregateRating

  • Google Search Central: Product Structured Data

https://developers.google.com/search/docs/appearance/structured-data/product

Google’s review schema policies have become stricter over time. Verify current documentation before implementation, particularly regarding self-serving restrictions and eligible content types.

Leave a Reply

Your email address will not be published. Required fields are marked *