Structured Data Validator

Enter a URL and this extracts every JSON-LD block on the page and checks each entity against the properties Google requires for its rich result type. A missing required property means the page is not eligible, and a block that will not parse means Google reads none of it. Neither shows up anywhere on the page itself. If your markup is not published yet, paste it instead.

Reading the report

The report opens with three counts and then one card per entity. Work through it in the order the findings appear, because they do not cost the same.

A block that could not be read comes first and matters most. JSON-LD is parsed as a unit, so one misplaced comma costs you every entity in that block rather than one property, and Google gives no sign of it: the page renders, the markup is in the source, and the rich result never appears. The report shows the block exactly as the page served it, so you may find the mistake by eye.

After that come the entity cards, each carrying one of four labels. Not eligible means a required property is missing and Google will not build the rich result. Eligible, incomplete means the rich result may show with less in it than it could have. Valid means every property Google documents is present. Retired by Google means the type is correct schema.org and no longer produces anything in Search.

Required, recommended, and the difference

Google documents two tiers of property for each rich result type. A missing required property makes the page ineligible outright, which is why those are reported as errors here. A missing recommended property does not block the rich result, but it usually means a less complete listing: a Product without aggregateRating can still show, without the stars that made it worth marking up.

A few types ask for one of several properties rather than for all of them. Google needs a Product to carry a price, a review, or a rating, and any one of the three satisfies it, so a product block with only a name is reported as ineligible even though every property it has is correct. The properties Google requires here are read from its own documentation for each type, and where Google states that a type has no required properties, as it does for Article and Organization, nothing is invented in its place.

The practical reading is that errors are bugs and warnings are opportunities. Fix every error before you consider the markup done, then work through the warnings on the pages where the richer listing is worth the effort.

When you need to build the markup rather than check it, the schema generator produces valid JSON-LD for the same types with the required properties already in place.

The types Google has retired

A validator that has not kept up will tell you a page is eligible for a rich result that no longer exists, which is worse than telling you nothing. Two of the most widely deployed types have been withdrawn, and this tool reports them as retired rather than as errors, because the markup is still correct schema.org and the page is not penalized for carrying it.

FAQ ended on 7 May 2026, when FAQ rich results stopped appearing in Search. In June, Google removed the FAQ search appearance, the rich result report, and support in the Rich Results Test; the Search Console API field goes in August 2026. For most sites the change had already happened in August 2023, when eligibility was narrowed to recognized government and health sites, and this closed it for those too. How-to was retired before it, on desktop and mobile alike. In June 2025 seven more went the same way: Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement, and Vehicle Listing.

One retirement takes a property rather than a whole type, and the validator reports it that way. The sitelinks search box was removed from Search on 21 November 2024 and its documentation went a month later, which ended the SearchAction that sites nest inside WebSite. The block around it still does work, because Google reads its name and url for the site name shown above your result, so this is the one case where you should keep the block and stop expecting anything from one property inside it.

None of this is a reason to strip the markup out. Google has said that structured data it no longer uses causes no problem in Search, and FAQPage in particular is still read by Bing and by the crawlers behind the AI assistants that increasingly answer these queries. Treat a retirement as the loss of a listing feature rather than as a defect to repair, and spend the effort on the types that still earn one: Product, Recipe, Event, Video, Job posting, Review, and Breadcrumb.

The wider lesson is worth holding onto. Rich result support is a moving target, and markup written years ago against a feature that has since been withdrawn is the most common thing this tool finds. Re-checking a template after a Google announcement costs a minute and is the only way to know which of your markup is still doing work.

Frequently Asked Questions

What does this check that a JSON linter does not?

A linter tells you the JSON parses. This checks whether the markup is eligible for a rich result: whether each entity declares a type Google supports, and whether it carries the properties that type requires. Valid JSON that omits a required property is still valid JSON, and still ineligible.

Get Google and ChatGPT traffic on autopilot.

Start today and generate your first article within 15 minutes.

No credit card required
Content Plan