Rich results checker

Paste a product URL. Find out why Google is not showing your price, stock status or star rating in search — and exactly what to change.

Free, no signup. Reads the HTML your server sends, with no JavaScript run.

What this is actually checking

When your product appears in Google with a price, a stock status and a row of stars, that comes from a block of structured data in your page — not from the visible text. If that block is missing a required field or formats one wrongly, Google quietly declines to use any of it. The page looks perfect. The listing loses the three things that make people click.

Nothing warns you. There is no error, no email, no entry in Search Console telling you a price was rejected. That is what makes this failure expensive: it can run for months.

The mistake almost everyone makes

Google requires price to be a plain number. Not $29.99, not 29,99, not From 29.99 — just 29.99, with the currency in a separate priceCurrency field. Templates that reuse the human-readable price string get this wrong constantly, and it invalidates the entire offer.

The second most common: an aggregateRating with a ratingValue but no reviewCount. A rating with nothing saying how many people gave it is invalid, and the stars vanish.

What it cannot tell you

Whether Google will actually show a rich result. That decision is Google's and takes in things no external tool can see. What this checks is eligibility — whether the markup is valid and complete. Valid markup is necessary but not sufficient, and any tool claiming otherwise is guessing.

It also reads JSON-LD only. If your shop uses microdata, this will report no structured data when you have plenty.

Checking a whole catalogue? The API takes twenty product URLs per request and returns the same output as JSON, so you can sweep every product page instead of spot-checking. See it on RapidAPI.