Skip to content
SEO Madmanby Adam Hafez
Free tool

AggregateRating schema checker for review snippets

AggregateRating schema checker: test JSON-LD against Google review snippet rules for ratingValue, counts, scale and item type. Free, runs in your browser.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

Parsed with the browser's own JSON.parse against Google's review snippet property table for AggregateRating. Nothing you type is sent anywhere.

Key takeaways

  • Google requires ratingValue and at least one of ratingCount or reviewCount on an AggregateRating.
  • If bestRating and worstRating are omitted, Google assumes a scale of 1 to 5.
  • Google asks for a dot as the decimal mark, so 4.4 is valid and 4,4 is not.
  • A standalone AggregateRating needs itemReviewed, while a nested one takes its parent as the rated item.
  • Pages of a business that controls reviews about itself are ineligible for stars on LocalBusiness or Organization markup.

What it takes

  • Pasted JSON-LD containing one or more AggregateRating objects

More tools

All of them free, all of them browser-only.

Browse the tools

How to use it

  1. 1Paste the JSON-LDCopy the contents of the script tag with type="application/ld+json", not the tag itself. A single object, an array or an @graph all work.
  2. 2Confirm what is being ratedThe checker reports whether each rating is nested in a parent such as Product or standalone, then checks the rated item's type and name.
  3. 3Fix ratingValue and the countsWrite ratingValue with a dot as the decimal mark, and give ratingCount, reviewCount or both. Missing either count is a Problem.
  4. 4Set the scale if it is not 1 to 5A rating out of 10 or 100 needs bestRating, or Google reads the number on its default 5-point scale.
  5. 5Check the rows no checker can confirmThe rating must be visible on the page and must not be aggregated from other websites. Confirm both by hand.

Review stars in search results come from AggregateRating markup, and Google only shows them when that markup meets the rules in its review snippet documentation. This AggregateRating schema checker applies those rules, and the property definitions from schema.org, to pasted JSON-LD. It parses with the browser’s own JSON.parse, so nothing you paste leaves the page.

What does this AggregateRating checker test?

It walks the whole block, including arrays and @graph, and checks every AggregateRating it finds: any object typed AggregateRating, and any value of an aggregateRating property.

  • Placement. A rating under aggregateRating is nested, and Google treats the parent as the rated item. Any other rating is standalone and needs itemReviewed, which Google requires in that case.
  • Rated item type. Checked against the 17 types Google lists as valid for review snippets.
  • Rated item name. Required by Google, nested or not.
  • ratingValue. Required. Google accepts a number, a fraction such as 6 / 10 or a percentage such as 60%, with a dot as the decimal mark. A comma decimal is a Problem.
  • Scale. A plain number is compared with the scale from bestRating and worstRating, or 1 to 5 when they are missing, since Google assumes those defaults.
  • ratingCount or reviewCount. At least one is required. schema.org types both as Integer, so a non-whole number is a Warning, and so is zero.
  • Self-serving reviews. A rated item typed LocalBusiness or Organization gets a Warning with Google’s rule on businesses that control reviews about themselves.

How to read the results

  • Problem. A rule Google states as required is broken. The snippet will not show until it is fixed.
  • Warning. Valid enough to parse, but likely to misrepresent the rating or fall outside Google’s documented list, such as a value above the scale or an unlisted subtype.
  • Info. A default being applied, or a rule that needs a human check.

Every run ends with an Info row: Google says users must be able to see the aggregate rating on the marked-up page, and that you should not aggregate ratings from other websites.

Worked example

The checker opens with a Product named “Trail running shoe” carrying an AggregateRating of "ratingValue": "4,6" and "reviewCount": 212. It reports:

  • Placement: nested in Product. Rated item type: Product. Rated item name: Trail running shoe.
  • ratingValue “4,6”: Problem, because of the comma decimal mark.
  • ratingCount or reviewCount: reviewCount 212, Pass.
  • bestRating and worstRating: not set, 5 and 1 assumed.

Change the value to "4.6" and every required row passes. Change it to 88 instead and it becomes a Warning, since 88 is outside the assumed 1 to 5 scale; adding "bestRating": 100 clears it.

Common mistakes it catches

  • European decimal commas in ratingValue, which both Google and schema.org rule out.
  • A rating with no count, which fails Google’s ratingCount or reviewCount requirement.
  • Out-of-scale values from a 10 or 100 point system with no bestRating.
  • Standalone ratings with no itemReviewed, so nothing says what is rated.
  • Stars on your own business’s markup, which Google makes ineligible when you control the reviews.

For the rest of a Product block, such as offers, price and availability, use the product schema checker.

Sources

  1. 1.Review snippet (Review, AggregateRating) structured data - Google Search CentralPrimary
  2. 2.AggregateRating - Schema.orgPrimary

Frequently asked questions

What does Google require for AggregateRating?

Google's review snippet documentation lists as required: itemReviewed when the rating is not nested, the name of the rated item, ratingValue, and at least one of ratingCount or reviewCount. bestRating and worstRating are recommended.

What is the difference between ratingCount and reviewCount?

Google defines ratingCount as the total number of ratings for the item on your site, and reviewCount as the number of people who provided a review, with or without a rating. You need at least one. schema.org defines both as integers.

Can I show stars for my own business?

Not through your own LocalBusiness or Organization markup if you control the reviews about yourself. Google says such pages are ineligible for the star review feature, including when the reviews come from an embedded third-party widget such as Google Business or Facebook reviews.

Which types can carry an aggregate rating?

Google lists 17 valid types for the reviewed item: Book, Course, CreativeWorkSeason, CreativeWorkSeries, Episode, Event, Game, HowTo, LocalBusiness, MediaObject, Movie, MusicPlaylist, MusicRecording, Organization, Product, Recipe and SoftwareApplication. A subtype such as Restaurant counts, but this checker flags it as a warning because it does not resolve subtypes.

Is a rating out of 100 allowed?

Yes, if you say so. Google reads a plain number on a 5-point scale by default, so a ratingValue of 88 needs bestRating set to 100. A percentage such as 88% or a fraction such as 6 / 10 carries its own scale.

How is this different from the product schema checker?

The product schema checker tests a Product node as a whole: name, offers, price, currency and availability. This checker goes deep on the rating object itself, on any supported type, and checks every AggregateRating in the block rather than only the first Product.