What Is JSON-LD?

Flavio AmielWritten byFlavio Amiel Founder, Roborank
Updated July 15, 2026

JSON-LD (JSON for Linking Data) is a lightweight, JSON-based format for expressing structured data. On a web page it lives inside a single script tag, separate from the visible HTML, where it declares a page’s entities using the schema.org vocabulary. Google recommends JSON-LD as the easiest structured data format to implement and maintain at scale.

Key Takeaways

How JSON-LD Works

JSON-LD expresses structured data as ordinary JSON — nested key-value pairs — with a few special keywords that turn plain JSON into Linked Data, meaning data whose terms point to a shared, machine-understood vocabulary. On a web page it’s placed inside a single <script type="application/ld+json"> tag in the document’s head or body. Search engine crawlers parse that block directly; browsers ignore it, because it isn’t presentational content.

Two keywords do the essential work. @context names the vocabulary the block is written in — for schema markup it is set to https://schema.org, which tells the parser to interpret every property name against schema.org’s definitions. @type declares what kind of entity the block describes: Product, Article, Recipe, Event. Everything else is properties of that type. A Product block, for instance, carries name, image, offers, and aggregateRating, each mapped to a piece of content on the page.

The defining characteristic — and the reason Google prefers it — is that JSON-LD is detached from the visible HTML. Google’s documentation describes it as “a JavaScript notation embedded in a <script> tag” and recommends it “as it’s the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).” Because the markup lives in one block rather than being sprinkled through the page’s elements, you can generate it server-side, template it, or inject it with a tag manager without ever touching the page’s layout.

The Standard Behind It

JSON-LD isn’t a Google invention — it’s a formal open standard, which is why every major engine can rely on it. It’s maintained by the W3C, and its acronym expands to “JSON for Linking Data.” The standardization timeline is a matter of public record:

The format was deliberately designed so that systems already using JSON could adopt Linked Data with “a smooth upgrade path from JSON to JSON-LD” rather than learning an entirely new syntax — which is a large part of why it displaced older inline approaches for search markup.

Example of JSON-LD

The most authoritative example is Google’s own recommendation in its Search Central structured data documentation. Google documents three formats a page can use to express structured data — JSON-LD, Microdata, and RDFa — and states that “all 3 formats are equally fine for Google, as long as the markup is valid and properly implemented.” In the same breath it singles out JSON-LD: “In general, Google recommends using JSON-LD for structured data if your site’s setup allows it, as it’s the easiest solution for website owners to implement and maintain at scale.”

That documented preference is the worked example, because it explains a real behavior you can observe. Consider the same Product entity marked up two ways. In Microdata, the name, price, and rating are spread across itemprop attributes attached to the visible <span> and <div> elements that render them — so if a developer restructures those elements, the markup can silently lose properties. In JSON-LD, the identical Product is one self-contained block: change the page’s visible layout all you want, and the structured data is untouched because it never lived in the layout to begin with.

The lesson generalizes to why the industry converged on JSON-LD. Structured data is most valuable when it’s reliable and auditable, and reliability comes from keeping the data in one place, generated from a single source of truth, independent of presentation. JSON-LD’s separation from the HTML is exactly that property. It doesn’t make your markup more correct — it makes correct markup far easier to keep correct as the page evolves, which over the life of a site is where most structured data actually fails.

The thing people get wrong

The reason I push almost every client toward JSON-LD isn’t ideology, it’s maintenance cost. With Microdata your structured data is stitched into the visible HTML with itemscope and itemprop attributes, so the moment a developer restructures a template or a page builder re-renders the markup, the structured data quietly breaks and nobody notices until a rich result vanishes from search. JSON-LD lives in one self-contained block you can inject, template, or generate server-side without touching the page’s presentation. That separation is the whole game: it lets you treat structured data as data, keep it in one auditable place, and version it independently of the layout. The catch people forget is that JSON-LD still has to describe content that’s actually on the page — detachment from the HTML is a convenience, not a license to invent facts the reader can’t see.

JSON-LD vs Microdata

JSON-LD Microdata
Where it lives A single <script> block, separate from visible HTML Attributes (itemscope, itemprop, itemtype) inside visible HTML
Coupling to layout Independent — layout changes don’t break it Tightly coupled — restructuring HTML can break it
Maintainability at scale High; generate/template in one place Lower; markup is spread across page elements
Google’s stance Recommended Accepted and equally valid
Standard W3C Recommendation (1.0 in 2014, 1.1 in 2020) Part of the WHATWG HTML standard

Both express the same schema.org vocabulary and both are equally acceptable to Google. The difference is purely how the data is attached to the page: JSON-LD keeps it detached and centralized, while Microdata binds it to the visible elements — which is why JSON-LD has become the default for modern structured data work.

Frequently Asked Questions

What does JSON-LD stand for?
JSON-LD stands for “JSON for Linking Data.” It is a lightweight format that expresses Linked Data — structured, machine-readable relationships between entities — using ordinary JSON syntax. In SEO it is the standard way to write schema.org markup that search engines can read.
Why does Google recommend JSON-LD over Microdata?
Because JSON-LD lives in a single script block separate from the visible HTML, it is easier to add, template, and maintain at scale and less prone to breaking when a page’s layout changes. Microdata is woven into the HTML itself, so structural edits can silently break it.
What are @context and @type in JSON-LD?
@context names the vocabulary the data uses — for schema markup it is set to https://schema.org. @type declares what kind of entity the block describes, such as Product, Article, or Event. Together they tell a search engine which shared vocabulary to interpret the properties against.
Is JSON-LD an official standard?
Yes. JSON-LD is a W3C Recommendation. Version 1.0 was published on January 16, 2014, and version 1.1 on July 16, 2020. It was designed to let existing JSON-based systems adopt Linked Data with a smooth upgrade path rather than a new syntax.

The Bottom Line

JSON-LD is the format that made structured data practical at scale. By putting schema.org markup in one detached script block instead of threading it through your visible HTML, it lets you generate, template, and audit structured data as data — which is exactly why Google recommends it. Keep the block accurate to what’s on the page, anchor it with the right @context and @type, and you have the cleanest path to rich result eligibility.

Sources

  1. Introduction to structured data markup in Google SearchGoogle Search Central
  2. JSON-LD 1.1 (W3C Recommendation, 16 July 2020)W3C

Rank & Cash — the weekly SEO breakdown

One practical teardown a week on ranking in search and getting cited by AI. No fluff.