Glossary

JSON-LD

The short answer

What is JSON-LD?

JSON-LD — JavaScript Object Notation for Linked Data — is a format for structured data: a block of JSON placed in a page that describes the page using a shared vocabulary such as schema.org. It is 1 of the 3 formats Google documents for structured data, alongside Microdata and RDFa, and the 1 Google recommends, because it stays separate from the visible HTML.

JSON-LD — JavaScript Object Notation for Linked Data — is a format for structured data: a block of JSON placed inside a page that describes what the page is, using a shared vocabulary such as schema.org. It sits apart from the visible HTML rather than annotating it.

The word gets used as a synonym for "schema," which hides the layer it belongs to. JSON-LD is the container. What goes inside is a vocabulary decision, and the two questions have completely different answers.

What does a JSON-LD block look like?

A script element carrying the type application/ld+json, containing one JSON object that names its vocabulary and its type, then describes the page:

{
  "@context": "https://schema.org",
  "@type": "DefinedTerm",
  "name": "JSON-LD",
  "description": "A format for embedding structured data in a page.",
  "inDefinedTermSet": "https://example.com/glossary/"
}

Three parts do the work. @context points at the vocabulary — in practice, schema.org. @type names the type being described. Everything else is that type's properties. Because the block is self-contained, it can be generated, diffed, and validated as data, which is the practical reason large sites prefer it.

What makes JSON-LD "linked" data?

Identifiers. Plain JSON describes an object in isolation; linked data gives objects stable identifiers so they can refer to each other. A page's markup can name its publisher by identifier rather than by repeating the publisher's details, and every other page on the site can point at the same identifier — one node, referenced many times, instead of hundreds of near-duplicate descriptions that software has to guess are the same organization.

That is the difference between marking up pages and building a graph. It is also where the practice usually goes wrong at scale: a generator that emits a fresh publisher object per page technically produces valid markup and defeats the entire point of the format. The entity-level version of this discipline, with the identifier conventions we use, is in Organization schema as your entity home.

How is JSON-LD different from Microdata and RDFa?

By placement, not by capability. Google documents support for three structured-data formats — JSON-LD, Microdata, and RDFa — and recommends JSON-LD (Google, structured data introduction). All three can express the same schema.org types.

FormatWhere the markup livesPractical consequence
JSON-LD1 separate script blockGenerated and validated as data; a template change cannot scatter it
MicrodataAttributes on visible HTML elementsMarkup and layout are entangled; a redesign can silently break it
RDFaAttributes on visible HTML elementsSame entanglement, different attribute vocabulary

The trade cuts one way in production. Because JSON-LD is detached from the visible text, nothing in the rendering pipeline keeps the two in sync — which is exactly why the correspondence rule below matters more for this format than for the others.

What has to be true of a JSON-LD block?

It has to describe what the page actually shows. Google's structured-data guidelines require markup to reflect the visible content of the page, and a detached block makes that rule easy to break by accident: the visible page changes, the generator does not, and the markup keeps asserting a stale date, a removed author, or a price nobody can see.

Four properties of a block worth checking, in order of how often they break:

CheckWhat passes
CorrespondenceEvery asserted fact appears in the visible page
Valid JSONParses cleanly — a trailing comma silently kills the whole block
One entity, one identifierThe publisher node carries a stable identifier reused sitewide
Present in the served HTMLVisible in the raw response, not injected after scripts run

We generate our blocks from the same frontmatter that renders the visible page, which makes correspondence structural instead of editorial, and we check the built HTML in CI rather than the template [our data]. The mechanics of doing that across hundreds of pages are in how to ship valid schema across hundreds of pages.

Do AI answer engines read JSON-LD?

Nobody has shown that they do. No AI platform on our source list documents that its assistant parses JSON-LD when composing an answer, and the controlled test on record — Ahrefs' comparison of 1,885 pages that added schema against roughly 4,000 controls, August 2025 to March 2026 — found no major citation uplift on any platform (Ahrefs, May 2026). The retrieval-side testing reported alongside it points the same way, and the full evidence review lives at do AI assistants read JSON-LD at answer time.

That is a statement about evidence, not a verdict on the format. JSON-LD does the jobs structured data documents — helping Google understand a page, qualifying it for rich results, naming the publisher — and those jobs are unaffected by what assistants do.

The operational consequence is a priority, not a removal: any fact you want quoted has to exist as a self-contained visible sentence, because that is the layer the quoting demonstrably happens in. Markup is a cheap second layer, and the argument for keeping both is made in full in our generative engine optimization guide.

Frequently asked questions

What is JSON-LD in simple terms?

A block of JSON inside a page that describes the page for software — its type, its title, who published it, how its parts relate. Readers never see it. It is 1 of 3 structured-data formats Google documents, and the recommended one.

What is the difference between JSON-LD and schema.org?

JSON-LD is the format; schema.org is the vocabulary it usually carries. The same schema.org types can be expressed in Microdata or RDFa instead. Saying a page 'has JSON-LD' describes the container, not what the container says.

What is the difference between JSON-LD and Microdata?

Placement. Microdata and RDFa annotate the visible HTML with attributes on existing elements; JSON-LD sits in 1 separate script block. Google documents support for all 3 and recommends JSON-LD, which is simpler to generate and to validate.

Where does the JSON-LD block go on a page?

Inside a script element with the type application/ld+json. Head or body both work for Google. What matters more is that it ships in the served HTML rather than being added later by client-side JavaScript.

Do AI answer engines read JSON-LD?

No platform on our source list documents that its assistant parses JSON-LD at answer time, and the controlled test on record — 1,885 pages adding schema, August 2025 to March 2026 — found no major citation uplift. Treat it as unsupported rather than proven false.

Sources

  1. Introduction to structured data markup in Google SearchGoogle
  2. schema.orgschema.org
  3. Does schema markup help AI citations? A 1,885-page studyAhrefs