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.
LocalBusiness schema checker: tests JSON-LD for name, address, geo precision, priceRange and hours against Google's docs. 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 documented property tables for LocalBusiness. Nothing you type is sent anywhere.
Paste the JSON from a LocalBusiness ld+json block and the checker lists every property Google documents for it, with a pass, problem, warning or information badge on each. It parses the JSON in your browser and sends nothing anywhere.
Every rule comes from Google’s local business structured data page.
If the JSON does not parse, a “Not valid JSON” message replaces the results. That usually means a trailing comma or the surrounding script tag was pasted too.
The tool loads with a Restaurant named Harbour Bistro in Bristol: a full PostalAddress with
all five subfields, telephone +44-117-000-0000, url, geo 51.45013, -2.59665, priceRange $
and one openingHoursSpecification from 09:00:00 to 17:00:00.
The result: @type found, name and address pass, all five address subfields pass, both geo values pass the five-decimal check, priceRange passes at 1 character, and both hours values pass. Four lines show as information: menu, servesCuisine, aggregateRating and department are missing. For a restaurant, menu and servesCuisine are worth adding. The other two rarely apply.
Change the latitude to 51.45 and its precision line turns to a warning. Change opens to
9:00 and that line warns that Google documents hh:mm:ss.
"address": "12 Quay Street, Bristol" passes the address
line but fails all five subfield checks, since there is no PostalAddress to read them from.51.45010 is read as four decimals."opens": "9:00" breaks the hh:mm:ss format. Google’s own examples for
24-hour and closed days use 00:00 and 23:59, which the checker also flags, so treat that
particular warning as expected.Google lists two, name and address, where address is a PostalAddress. Everything else, including telephone, url, geo, openingHoursSpecification and priceRange, is recommended rather than required.
It accepts LocalBusiness and a fixed list of common subtypes such as Restaurant, Store, Dentist, Hotel, Plumber and MedicalBusiness. A subtype missing from that list reports that no node was found.
No. Google lists telephone as recommended, so its absence shows as information. It advises a number meant as the primary contact, including country code and area code.
Google says the precision must be at least five decimal places. The checker counts the digits after the decimal point in latitude and longitude and warns below five.
Google's example sets opens to 00:00 and closes to 23:59, and a closed day to 00:00 for both. Those short values will show a format warning here, because the checker tests the hh:mm:ss format the property description asks for.
No. The markup describes the page's business to Google, while a Business Profile is managed separately. Google recommends testing markup with the Rich Results Test before deploying; this tool is a faster first pass on pasted JSON-LD.
AggregateRating schema checker: test JSON-LD against Google review snippet rules for ratingValue, counts, scale and item type. Free, runs in your browser.
Logo structured data generator: build Organization JSON-LD with logo, url, name and sameAs, and check Google's logo rules. Free, runs in your browser.
Course schema validator: paste Course JSON-LD and check name, description, provider and the 60 character display limit. Free, runs in your browser.
FAQ schema validator: check FAQPage JSON-LD so every Question has a name and acceptedAnswer text. Notes Google's FAQ rich result removal. Free, in-browser.