Skip to content

Review schema: JSON-LD examples and Google's rules (2026)

Review schema is structured data that describes the reviews and ratings on a page, using the schema.org Review and AggregateRating types, so Google can read them and may show star ratings for that page in its results. It works for a set list of things, such as products, software apps, courses, books and recipes; a business marking up reviews of itself on its own website, as an Organization or LocalBusiness, is not eligible for stars.

Last checked: 25 October 2026. Every Google rule on this page links to Google's own documentation, read on that date. The examples are ours and use made-up products.

What you need

  • An eligible type

    Such as Product, SoftwareApplication or Course. Reviews of your own business, on your own site, are not eligible for stars (Google1).

  • Reviews readers can see

    "Don't mark up content that is not visible to readers of the page" (Google3).

  • JSON-LD in the HTML

    Google accepts JSON-LD, Microdata and RDFa, and marks JSON-LD as "recommended" (Google3).

  • A test of the live page

    Google's Rich Results Test, run on the published URL, because that is what Google crawls.

  • Google's decision

    Markup makes a page eligible; it does not make review snippets appear (Google3).

What is review schema?

Review schema is the common name for two schema.org types used together:

  • Review is one person's review: who wrote it, when, and the rating they gave.
  • AggregateRating is the summary: the average rating and how many ratings or reviews it is based on.

You attach both to the thing being reviewed, such as a Product, through its review and aggregateRating properties. Google calls the search feature that uses them a review snippet: "A review snippet is a short excerpt of a review or a rating... When Google finds valid reviews or ratings markup, we may show a rich snippet" (Google).

Google accepts JSON-LD, Microdata and RDFa, and marks JSON-LD as "recommended" (Google). Every example below is JSON-LD.

What review schema can and cannot do

None of the Google pages we read says that review markup changes where a page ranks. Treat it as a way to describe your reviews accurately to Google, not as a ranking tool.

Which types are eligible for review stars

Google limits review snippets to certain schema.org types. It narrowed the list in 2019, saying "we're limiting the pool of schema types that can potentially trigger review rich results in search" (Google Search Central blog). The current list, from Google's review snippet page:

Type Eligible for review snippets? Condition
Product Yes None beyond the general guidelines
SoftwareApplication Yes None beyond the general guidelines
Course Yes (Google lists "Course list") None beyond the general guidelines
Book, Movie, Recipe, Event Yes None beyond the general guidelines
CreativeWorkSeason, CreativeWorkSeries, Episode, Game, MediaObject, MusicPlaylist, MusicRecording Yes, with their subtypes None beyond the general guidelines
LocalBusiness Only in one case "only for sites that capture reviews about other local businesses"
Organization Only in one case "only for sites that capture reviews about other organizations"
Employers Separate feature Google points to EmployerAggregateRating instead

Source: Google: review snippet, checked 25 October 2026. Service does not appear on either of Google's lists.

In practice:

  • A shop's goods: Product.
  • A SaaS product or app: SoftwareApplication.
  • An online course: Course.
  • Your business as a whole, on your own site: no eligible type (the self-serving case below).

The self-serving reviews rule

This rule decides whether reviews of your own business can be eligible for stars on your own site. Google's guidelines say:

"If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature. For example, a review about entity A is placed on the website of entity A, either directly in their structured data or through an embedded third-party widget (for example, Google Business reviews or Facebook reviews widget)."

Source: Google: review snippet guidelines.

What that means:

  • Reviews of your company, marked up as Organization or LocalBusiness on your own site, are not eligible for stars.
  • Using a third-party widget does not change that. Google names widgets in the rule.
  • The rule names LocalBusiness and Organization. It does not name Product, SoftwareApplication or Course, so reviews of the things you sell are judged under the general guidelines instead.
  • A review site that publishes reviews about other businesses is the case Google's wording allows.

From Google's type definitions for review snippets, product snippets and software apps:

Property On Status Note
author Review Required Must be a valid name, shorter than 100 characters
reviewRating.ratingValue Review Required Use a dot for decimals: 4.4, not 4,4
itemReviewed Review, AggregateRating Required unless nested Omit it when the review sits inside the item's review property
datePublished Review Recommended ISO 8601, for example 2026-10-25
bestRating, worstRating Rating, AggregateRating Recommended The default scale is 1 to 5; set these if yours differs
ratingValue AggregateRating Required The average rating
ratingCount or reviewCount AggregateRating One is required Ratings on your site, or people who left a review
name Product Required Plus one of review, aggregateRating or offers
image, offers Product (merchant listing) Required For pages where people can buy the product
offers.price SoftwareApplication Required Set it to 0 for a free app

Sources: review snippet, product snippet, merchant listing and software app.

Review schema example in JSON-LD: a product with its reviews

This is a product page where a shopper can buy the item, showing two customer reviews and their average. Put the script in the page's HTML, and show the same reviews and the same average on the page itself.

HTML
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Oak chopping board, large",
  "image": "https://www.example.com/images/oak-board-large.jpg",
  "description": "A 45 cm end-grain oak chopping board, oiled by hand.",
  "sku": "OAK-L-01",
  "brand": {
    "@type": "Brand",
    "name": "Example Woodworks"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/products/oak-board-large",
    "price": "45.00",
    "priceCurrency": "GBP"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "2",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Priya S."
      },
      "datePublished": "2026-09-14",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5",
        "worstRating": "1"
      },
      "reviewBody": "Heavy, flat and still looks new after a month of daily use."
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Tom R."
      },
      "datePublished": "2026-10-02",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5",
        "worstRating": "1"
      },
      "reviewBody": "Lovely board. It arrived a day later than the estimate."
    }
  ]
}
</script>

What each part does:

  • The reviews are nested inside the product's review property, so neither has an itemReviewed. Google says it assumes "the parent item is the reviewed item".
  • There is an aggregate because there are several reviews. Google says: "If you include multiple individual reviews, also include an aggregate rating of the individual reviews."
  • The average matches the reviews: (5 + 4) / 2 = 4.5, with a reviewCount of 2. If you remove a review, update both.
  • image and offers are there because a shopper can buy on this page, which is what Google's merchant listings cover. Google says the merchant listing properties also make a page eligible for product snippets (Google: product structured data).

If people cannot buy on the page, for example a review or comparison article, Google says to use product snippets, which need only name plus one of review, aggregateRating or offers. Only "pages where a shopper can purchase a product are eligible for merchant listing experiences" (Google).

A second example: a software app

For a SaaS product or app, Google's software app markup needs a name, an offers.price and either aggregateRating or review (Google). A free app sets the price to 0.

HTML
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Example Invoicer",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "GBP"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "ratingCount": "38",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

The same rules apply: the 38 ratings and the 4.6 average must be visible on the page, and they must come from your own users. Google says: "Don't aggregate reviews or ratings from other websites."

How to add review schema to your site

  1. Pick the type for the thing being reviewed, from the table above. If the only thing reviewed is your company, stop here: on your own site it is not eligible for stars.
  2. Show the reviews on the page. Google says "It must be immediately obvious to users that the page has review content", and "If you use AggregateRating, users should be able to see that aggregate rating on the page."
  3. Write the JSON-LD for that one item, with its reviews nested inside it, using the example above as a starting point.
  4. Put it in the page's HTML. Google allows JSON-LD generated by JavaScript, but warns that for Product such markup "can make Shopping crawls less frequent and less reliable" (Google10), and, for merchants, recommends "putting Product structured data in the initial HTML for best results" (Google6).
  5. Keep it in step with the page. When a review is added or removed, the count and the average in the markup should change too. In the UK, the Competition and Markets Authority's guidance gives, as an example of publishing reviews in a misleading way, "failing promptly to update a product's star rating and review count where reviews have been identified and removed as fake" (CMA208, paragraph 5.111).
  6. Test the live page, as below.

How to test review schema with the Rich Results Test

  1. Open Google's Rich Results Test.
  2. Enter the URL of the live page. Paste code while you are drafting, but test the published URL, because that is what Google crawls.
  3. Check that the test finds your item and its reviews, and fix any errors it reports before warnings.
  4. Look at the rendered HTML. Google suggests using "the Rich Results Test or the URL Inspection Tool and look at the rendered HTML" (Google9). If your reviews are drawn in by a script, this is where you see whether Google can read them.
  5. Allow time. Google says "it may take several days after publishing a page for Google to find and crawl it" (Google1). Passing the test still does not guarantee a snippet.

If your reviews load by script, note that Google "won't render JavaScript from blocked files or on blocked pages" (Google).

Google's other review rules

From Google's review snippet guidelines, unless a different link is given:

  • Mark up only what readers can see: "Don't mark up content that is not visible to readers of the page" (Google).
  • Review one specific item, "not about a category or a list of" items.
  • "Don't aggregate reviews or ratings from other websites."
  • "Don't include fake or undisclosed incentivized reviews on your page or in your structured data markup."
  • "We recommend only accepting ratings that are accompanied by a review comment and author's name."
  • Breaking these rules can cost you: "Google may take manual action against it."

Common review schema errors and how to fix them

Problem Why it happens Fix
No stars for reviews of your company Self-serving reviews on Organization or LocalBusiness Mark up reviews of your products, apps or courses instead; you can still show company reviews on the page, without star markup
No review snippet for a service Service is not an eligible type If what you offer genuinely is a course or an app, use Course or SoftwareApplication; do not relabel a service to fit, because Google bars misleading markup
Reviews in the markup but not on the page Markup added without the visible reviews Show the same reviews and average on the page
Rating read wrongly Comma decimals, or a 10-point scale without bestRating Use a dot (4.4) and set bestRating and worstRating
Reviewer name not valid A promotion in the author field, like Google's example "50% off on Black Friday" Use the reviewer's own name
Markup missing in the test Script blocked, or content not in the rendered HTML Check the rendered HTML; for Product, put the JSON-LD in the initial HTML

Review schema and third-party review platforms

If you collect reviews on a review platform and show them on your site with a widget, Google's rules apply to what ends up on your page, whoever wrote the code. The reviews must be visible on that page and describe its item. Reviews of your company shown this way are still self-serving. Google also says not to aggregate reviews or ratings from other websites, so ask any provider how its markup fits that guideline, and whether the markup arrives in the initial HTML or by script. Then check the rendered HTML in the Rich Results Test.

Our review widget guide covers choosing and installing a widget, and verified reviews explains how reviews are checked. Star ratings in Google Shopping and ads come from a different system, covered in Google seller ratings.

Where GoldStarred fits

GoldStarred puts reviews of what you sell on the pages where you sell it. On Growth, at $17 a month (before VAT or sales tax), each of up to 25 products, apps or courses gets its own reviews, its own widget and the Google markup that makes that page eligible for star ratings. You paste one snippet, and each product is added the first time its widget loads on your verified site. Pro, at $37 a month, covers unlimited products. Both are monthly, with no annual contract.

Reviews of your business itself have a home of their own: your public GoldStarred profile, which Google can list once it holds 3 published reviews, and the badge that shows your rating on your site. The profile, the badge and 75 review invites a month are free.

We make GoldStarred, so weigh this section with that in mind. See GoldStarred plans, or for how other review platforms compare, Trustpilot vs Google reviews and Yotpo alternatives.

FAQ

What is review schema?

Review schema is structured data, usually JSON-LD, that describes the reviews and ratings on a page with the schema.org Review and AggregateRating types. Google may use it to show star ratings for eligible types such as Product, SoftwareApplication and Course.

What is the difference between Review and AggregateRating schema?

Review describes one person's review: who wrote it, when, and the rating they gave. AggregateRating describes the average across many reviews, with a count. Google says that if you mark up several individual reviews, you should also include an aggregate rating of them.

How do I add review schema to my website?

Choose an eligible type for the thing being reviewed, show the reviews on the page, add a JSON-LD script describing the item with its review and aggregateRating properties, then test the live URL with Google's Rich Results Test.

Can a local business use review schema on its own site?

Not for star ratings about itself. Google says pages that use LocalBusiness or Organization markup for reviews the business controls about itself are ineligible for the star review feature, even through an embedded third-party widget. Reviews of the products it sells are a different case.

Does review schema improve rankings?

The Google pages we read describe review markup as making a page eligible for review snippets in search results. They do not say it changes where a page ranks, and Google does not guarantee that the snippet will show even when the markup is correct.

How do I test my review schema?

Paste the live URL or the code into Google's Rich Results Test, fix any errors it reports, and check the rendered HTML to confirm the reviews and markup are there. Google says the URL Inspection Tool can also show the rendered HTML.

Why are my review stars not showing in Google?

Common reasons are an ineligible type, self-serving reviews on a LocalBusiness or Organization page, reviews that are not visible on the page, or markup Google could not render. Even correct markup only makes stars possible; Google decides whether to show them.

Sources and check dates

All checked 25 October 2026. Google updates these pages, so confirm on the linked page before you rely on a detail.

Honest, labelled reviews on your own site.Monthly, with no annual contract.

Create your free profile

Free to start. No card needed.