Structured Data Linter

Paste a page's HTML and lint what search engines and AI answer engines parse: JSON-LD syntax, invalid nesting, missing required fields, duplicate identifiers, and a breadcrumb that disagrees with the breadcrumb you can see. Everything runs in your browser; nothing is uploaded.

Structured data fails quietly. A single tag inside a JSON-LD string breaks the whole block, and the page keeps rendering perfectly — it just stops being machine-readable. We broke exactly that on our own site, then wrote this linter so it cannot happen twice.

What each rule means

  • json-parse — every application/ld+json block must parse. One stray tag or unescaped quote invalidates the entire block, not just the line.
  • no-anchor-in-jsonld — JSON-LD is data, not markup. An <a href> inside a string means someone treated it like HTML; parsers will reject the block.
  • article-required / image-dims — an Article needs headline, image, datePublished and dateModified, and the image should declare width and height.
  • faq-shape — FAQPage entries need acceptedAnswer.text; a Question without an answer is silently dropped.
  • breadcrumb-match — if you publish a BreadcrumbList, its names should match the breadcrumb a reader sees. A mismatch is a correctness bug, not a style choice.
  • dup-id — two nodes sharing one @id make the graph ambiguous.
  • text-entities — left-over HTML entities such as &rsquo; inside FAQ text mean the answer will be read out literally by an assistant.

Frequently asked questions

Does valid structured data improve rankings?

It changes what a machine can understand and display, not your position by itself. Rich results, unambiguous entities and cleaner answer extraction are the realistic gains.

Is pasted HTML stored?

No. Parsing happens in your browser with vanilla JavaScript. There is no upload, account, or content analytics.

Where can I see this working on a real page?

Open any article on this site, view source, paste it here. Then open the robots.txt check to compare policy with markup.

If the linter finds something

The last section of our reports explains the method we use on our own pages; if you would rather have it reviewed, ask us a question.

Related reading: Why one sites crawl numbers are not a benchmark

Need this read for your own site? Ask us a question.

Related reading: How We Audit a Site: The Checklist We Use · How to Read Your Own Server Log for AI Crawler Activity · Freshness Signals: What AI Crawlers Actually Notice

Related tools: Robots.txt AI Access Check · AI Crawler Log Analyzer

More on this site: live crawler signals · how we work