← All Tools

Why JSON-LD Became the Structured Data Standard

Guide · Last verified Aug 28, 2026

You've probably seen "rich snippets" in Google search results — star ratings, cook times, expandable FAQ dropdowns attached to a listing. Structured data is the raw material behind them, and there used to be three different ways to mark it up. Today, though, almost every tool and guide mentions only one: JSON-LD. Here's why only one of the three survived.

1. The three formats that originally existed

There have historically been three ways to embed structured data in a web page. Microdata inserts attributes like itemscope, itemtype, and itemprop directly into existing HTML tags. RDFa is a W3C standard that similarly extends HTML attributes. JSON-LD takes a completely different approach — it leaves the body HTML untouched and puts the entire dataset, in JSON format, inside a single <script type="application/ld+json"> tag. All three can express the same schema (the schema.org vocabulary) — the difference is purely where and how you write it.

2. Why Microdata and RDFa lost out

Microdata and RDFa require attaching attributes to individual content elements, so content and markup end up completely intertwined. A single product name has to be wrapped like <span itemprop="name">, and the more fields you add, the more the HTML structure itself becomes hostage to the schema syntax. A small markup change by a designer can easily break the schema, and any field that shouldn't be visible on screen (an internal SKU, a reserved-stock count) has to be hidden with a CSS trick. JSON-LD, by contrast, is completely separate from the visible HTML — the schema survives redesigns untouched, and it's far easier to generate dynamically on the server or in JavaScript. Because of this gap, Google's official documentation names JSON-LD as its recommended format, and the industry quickly converged on it. In practice, most auto-generation tools — including our own Schema Markup Generator — output JSON-LD only, from the start.

Comparing the three formats: to express the same "product name: wireless earbuds" —
Microdata: <span itemprop="name">wireless earbuds</span> (attribute inserted into a body tag)
JSON-LD: {"@type":"Product","name":"wireless earbuds"} (a separate block, detached from the body)
With JSON-LD it doesn't matter where in the body the block sits, and adding or removing fields never touches the HTML structure.

3. Rich snippets and click-through rate

Correctly implemented structured data lets Google attach extra information to a search result — star ratings, price ranges, cook times, FAQ dropdowns. A statistic often cited in the industry is that pages showing rich snippets see click-through rate (CTR) rise by an average of 20-30% compared to plain text results. FAQ schema in particular has an outsized effect because the questions and answers expand directly in the search result, and Product schema's star ratings and price display are also strong click drivers. That said, keep in mind that adding markup alone doesn't guarantee a rich snippet will appear — that's ultimately Google's call.

Schema typeRich element shown
FAQPageQuestion & answer dropdown
ProductStar rating, price, stock status
RecipeCook time, calories, star rating
EventDate, location, ticket info
BreadcrumbListBreadcrumb path shown in place of the URL

4. Mistakes are still common even within JSON-LD

Switching the format to JSON-LD isn't the end of the story. @context and @type are required across every type; Article additionally requires headline, author, and datePublished; Product requires name; FAQPage requires mainEntity; and Event requires name, startDate, and location. Even with those fields filled in, adding information that doesn't actually appear on the page — say, a review count that doesn't really exist — can make Google withhold the rich snippet entirely, or even flag the markup as spammy and subject to manual action. Always confirm your JSON-LD is syntactically valid and that no required field is missing, using a tool like our Schema Validator or Google's Rich Results Test.

5. The fastest way to get started in practice

For commonly used types like Article, Product, and FAQ, rather than memorizing the full syntax by hand, filling them in with a type-specific tool — our FAQ Schema Generator, Product Schema Generator, or Article Schema Generator — is the fastest way to avoid missing a required field.

Frequently Asked Questions

Q. Do I have to convert existing Microdata or RDFa markup to JSON-LD?

It's not required. Google still recognizes all three formats. That said, for new work, JSON-LD is the practical choice because it's easier to maintain.

Q. Can I put JSON-LD in the body instead of the head?

Yes — Google explicitly states it recognizes JSON-LD the same way whether it's in the head or the body, though placing it in the head is the more common convention.

Q. Does adding a rich snippet improve my search ranking?

Not directly. Structured data changes how a search result is displayed to increase CTR — it doesn't add points to the ranking algorithm itself.

Q. Can a single page include multiple schema types at once?

Yes. You can either add multiple <script type="application/ld+json"> blocks, or bundle several types into one block using an array (@graph). Just don't force in a type that doesn't match what's actually on the page.