TL;DR. JSON-LD packages structured data as a single, self-contained JSON object inside a script tag, separate from a page's visible markup. W3Techs' usage survey puts JSON-LD's share of structured-data-carrying websites at roughly 70 percent, well ahead of Microdata's 46 percent, and Google states JSON-LD as its preferred format outright.
What is JSON-LD?
JSON-LD, short for JSON for Linked Data, is a syntax for writing structured data as a standalone block of JSON placed inside a script tag with type application/ld+json. The LD part signals that the values inside can link to shared vocabularies like schema.org through an @context field, which is what lets a search engine interpret a bare property name like priceCurrency the same way every website that uses it does.
Key highlights
- W3Techs' January 2026 usage comparison puts JSON-LD at roughly 70 percent adoption among sites using any structured data format, against 46 percent for Microdata, and the gap has widened every year the two have been tracked side by side.
- Google's own documentation names JSON-LD as the recommended format for all structured data, a rare case of an explicit stated preference rather than three formats treated as equally valid.
- Because the script tag sits apart from visible HTML, JSON-LD can be generated dynamically from a database or CMS without touching page templates at all, which is the main reason large sites migrate to it from Microdata.
- Validation is faster in practice: a JSON-LD block can be tested in isolation with any JSON linter before it ever touches a live page, while Microdata errors often only surface once the markup is already rendered inline.
The basic shape of a JSON-LD block
A minimal JSON-LD block needs three things: an @context pointing to https://schema.org, an @type naming the schema.org type being described, and a set of properties matching that type. Everything else follows from getting those three right; a Product block adds name, price, and availability, an Article block adds headline, datePublished, and author, always inside the same script tag structure.

Why JSON-LD pulled ahead of Microdata
Microdata requires adding itemscope, itemtype, and itemprop attributes directly onto the HTML tags already rendering visible content, which means every template change risks breaking the markup silently. JSON-LD decouples the two entirely: a designer can restructure a page's HTML freely without touching the schema markup sitting in its own script tag, which is the practical reason large engineering teams standardized on it once Google's preference made the choice low-risk.
Common JSON-LD mistakes
- Multiple conflicting @type declarations for the same entity spread across separate script tags on one page.
- Markup describing content that isn't actually visible anywhere on the rendered page, which risks the same eligibility penalties applied to schema abuse generally.
- Malformed JSON from a missing comma or bracket, which invalidates the entire block rather than just the broken field.


Frequently asked questions
What does JSON-LD stand for?
JSON for Linked Data. The Linked Data part refers to the @context mechanism that ties the JSON's properties to a shared vocabulary like schema.org.
Do I need to write JSON-LD manually?
Rarely for large sites. Most CMS platforms and e-commerce systems can generate JSON-LD automatically from existing product or content data, which is exactly why it scales better than manually maintained Microdata.
Can JSON-LD and Microdata coexist on the same page?
Technically yes, but it invites duplicate or conflicting signals for the same entity. Consolidating on one format, JSON-LD in almost every current recommendation, avoids the ambiguity entirely.
