Free tools

Schema Markup Checker

The structured data your page publishes, and whether it holds together. Broken structured data fails silently — the page looks perfect and the markup is simply ignored — so nothing tells you until you look.

We read the public page and the robots file, nothing else. The address is not saved and there is no list of checked sites.

What this checks

  • Every JSON-LD block on the page, including the objects inside an @graph, which many tools miss entirely.
  • Whether each block is valid JSON. One stray comma and the whole block is ignored by everything that reads it.
  • Required properties for the common types, and properties that are present but empty — which looks complete to you and is ignored by everything else.
  • Microdata types declared with itemtype attributes, reported as found.

What this cannot tell you

  • Valid markup does not mean a rich result. Google decides that per page and per query, and no tool reading your HTML can tell you what it will do.
  • We check required properties for the common types, not the whole of schema.org. A type we do not know is reported as found rather than checked.
  • RDFa is not parsed, and microdata is reported by type only — its properties are spread across the page rather than held in one object, and claiming to have checked them would be claiming a parse that did not happen.

Questions people ask

Will adding schema get me a rich result?

It makes you eligible. Google decides the rest, per page and per query, and plenty of pages with perfect markup never get one. Valid structured data is a condition rather than a cause, and anybody promising the result is promising something that is not theirs to give.

My structured data looks fine but nothing uses it.

Check it is valid JSON first — a single trailing comma makes the whole block invisible, and the page looks completely normal. After that, the usual cause is a required property missing or present but empty, which this tool lists per type.

JSON-LD or microdata?

JSON-LD, for anything new. It sits in one block in the head, it is independent of your page layout, and it survives a redesign. Microdata is woven through the markup itself, which means it breaks whenever somebody rearranges the page.