JSON-LD
JSON-LD (JSON for Linked Data) is the W3C standard format for embedding structured data in web pages. JSON-LD uses standard JSON syntax with a `@context` field linking to a schema vocabulary (typically Schema.org). Google explicitly prefers JSON-LD over alternatives like Microdata and RDFa for structured data implementation.
Also called: JSON-LD structured data, JSON Linked Data · Last updated: May 27, 2026 · By Joseph W. Anady
Why it matters.
JSON-LD became a W3C Recommendation in 2014 and Schema.org's preferred format soon after. The advantages over inline alternatives are substantial: JSON-LD lives in a separate <script type="application/ld+json"> block in the page head, so it doesn't affect rendering, doesn't pollute HTML, and is easier to maintain via templating engines. It's the dominant structured-data format in 2026.
How it works.
A JSON-LD block requires three things: a `@context` property pointing to the vocabulary (usually `https://schema.org`), a `@type` property declaring what kind of entity is being described (Organization, Person, Product, etc.), and properties from that type. Multiple blocks can coexist on a page — Google parses every script tag with type `application/ld+json` and merges them. The `@graph` property allows multiple related entities in a single block.
2026 reality check.
JSON-LD adoption has grown to roughly 60-70% of structured data on indexed pages (Google internal estimates and industry surveys 2025-2026). The remaining Microdata/RDFa share continues to shrink. New Schema.org types and properties launch in JSON-LD-first format. There's no realistic reason to choose anything else in 2026.
Data points
- W3C Recommendation since 2014 (JSON-LD 1.0)
- Schema.org's preferred format (per schema.org documentation)
- Roughly 60-70% of structured data on indexed pages uses JSON-LD (industry estimates 2025-2026)
- Google explicitly recommends JSON-LD over Microdata and RDFa
- JSON-LD 1.1 (W3C Recommendation 2020) added @nest, @graph improvements, frame algorithm
First-hand insight from ThatDeveloperGuy.
ThatDeveloperGuy exclusively uses JSON-LD across all 100+ client sites. We never mix with Microdata or RDFa — too easy to introduce conflicts. Our typical service page has 3-5 separate JSON-LD blocks: Organization, Service, Person (author), FAQPage, BreadcrumbList. Each is independently validatable, easier to maintain than a single mega-graph.
How TDG approaches it
TDG generates JSON-LD via templating with strict validation in CI. Each schema block is a separate file in our config repository, validated independently. At build time we validate against Google's Schema Markup Validator API. Production deployments never contain broken JSON-LD.
Common mistakes.
- Forgetting the @context (must be 'https://schema.org' — block is meaningless without it)
- JSON syntax errors (missing commas, unquoted keys, trailing commas)
- Mixing JSON-LD with Microdata on the same page (causes Google parser confusion)
- Putting JSON-LD inside the body instead of head (works but conventional location is head)
- Skipping validation before deploy (use validator.schema.org)
FAQ.
Why does Google prefer JSON-LD over Microdata?
JSON-LD doesn't pollute the rendered HTML, is easier to template and maintain, scales to multiple entities per page via @graph, and is less likely to conflict with other code on the page.
Can I have multiple JSON-LD blocks on one page?
Yes. Google parses every script tag with type application/ld+json and merges them. Multiple separate blocks are easier to maintain than one giant block.
Does JSON-LD have any impact on page performance?
Negligible. JSON-LD is parsed by the browser but doesn't affect rendering. Modern engines parse it asynchronously.
Should I use @graph or separate blocks?
Separate blocks for unrelated entities. @graph for entities that reference each other (e.g., Article + Author + Publisher all in one block). Both are valid; separate is easier to maintain.
How do I generate JSON-LD?
Manually for one-off cases, programmatically for templated sites. ThatDeveloperGuy's free Schema Markup Generator at /tools/schema-generator/ produces valid JSON-LD for the most common types.
Maintained by Joseph W. Anady at ThatDeveloperGuy. Back to glossary · Suggest a term