Structured data (JSON-LD)

mediumseo-ai-structured-data

A JSON-LD block tells search engines and AI systems what a page is, in schema.org terms. What it does, and a minimal example that passes.

What it is

Structured data is a <script type="application/ld+json"> block declaring what a page is, using schema.org vocabulary — Article, Product, Organization, FAQPage and similar types. This check looks for at least one such block that parses as valid JSON and declares a recognizable @type; it isn't a full schema.org validator checking that a given type's required fields are present.

A syntax error in an existing block is reported separately from having none at all, because it's the worse of the two outcomes: nothing that tries to read broken JSON can recover partial meaning from it.

Why it matters

Structured data is the most direct, unambiguous signal a page can give to anything trying to summarize it automatically — a search engine building a rich result, or an AI system trying to answer a question by citing the page — rather than making it infer the page's subject from prose.

It's a single script block added once per template, and unlike most SEO work, its payoff doesn't depend on ranking: a rich result and an accurate AI citation both come directly from data the page already declares about itself.

How to fix it

with a reference doc
html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Page title",
  "author": { "@type": "Organization", "name": "Company Name" },
  "datePublished": "2026-01-01"
}
</script>

Reference documentation

Related checks

3
mediumAI crawler accessThis reads robots.txt and checks whether it blocks any of the named AI crawlers — OpenAI's GPTBot and OAI-SearchBot, Anthropic's ClaudeBot and Claude-SearchBot, PerplexityBot, Google-Extended, Common Crawl's CCBot and others — distinct from the general-purpose search crawlers (Googlebot, Applebot) that index for classic search.highContent that requires JavaScriptThis compares the DOM node count and text length in the HTML a server actually sent against the DOM Google's Lighthouse run produces after rendering the page. When the rendered page has several times more nodes than the raw HTML did, and the raw HTML had very little text to begin with, that's the signature of a client-rendered shell rather than a page with real content.mediumMissing meta descriptionThe meta description is a <meta name="description"> tag summarizing the page in a sentence or two. Search engines usually — not always — use it verbatim as the snippet shown under a result's title.

This is one of the 75 checks the scanner runs. See what we check for the full list, every severity weight, and how the score is computed from them.

See whether your own site passes structured data (json-ld).

One page, all 75 checks, free. No account, no card.

Run a scan