GLOSSARY / TECHNICAL SEO

What Is JSON-LD? Syntax, Placement, and Why Google Recommends It

Nstdata WikiGlossary

JSON-LD is a script-tag format for publishing structured data on a webpage as a self-contained block of JSON, separate from the visible HTML markup. It's Google's recommended format for schema.org structured data specifically because it's easier to implement, validate, and maintain than the two older alternatives, Microdata and RDFa, which require embedding attributes directly inside the visible page markup itself.

⚡ Key Takeaways

  • JSON-LD is a data format, not a vocabulary. It's the container; schema.org supplies the actual property names and types placed inside it.
  • It lives in a <script type="application/ld+json"> tag, separate from the visible page content, typically in the document head or body.
  • Google explicitly recommends JSON-LD over Microdata and RDFa because it's easier to implement and maintain without touching visible markup.
  • JSON-LD data must accurately reflect visible page content. Google treats mismatched or "invisible" schema that doesn't correspond to anything on the page as a violation.
  • It does not directly influence rankings. Valid markup can make a page eligible for rich results, which is a visibility and click-through benefit, not a ranking factor.
  • Not every schema type still produces a visible benefit — Google retired FAQ rich results in Search on May 7, 2026, so FAQPage JSON-LD still validates but no longer earns a SERP enhancement.

What Is JSON-LD?

JSON-LD (JSON for Linking Data) is a format for encoding structured data as a block of JSON, embedded in a page via a dedicated script tag rather than scattered as attributes across the visible HTML. The distinction worth keeping straight: structured data is the organized information itself, schema.org is the vocabulary that defines what properties and types mean, and JSON-LD is one specific format for writing that vocabulary into a page — schema markup is the general term for the resulting code, regardless of which format was used to write it.

Syntax and Placement

A JSON-LD block sits inside a <script> tag with type="application/ld+json", and can be placed in either the document head or body — Google's crawler processes it regardless of location as long as it's present somewhere in the rendered page:

FieldPurpose
@contextDeclares the vocabulary in use, almost always "https://schema.org".
@typeThe schema.org type being described — Article, Product, Organization, and so on.
Type-specific propertiesFields defined by that schema.org type, such as headline, author, or datePublished for an Article.

Because the entire block is a single, self-contained script tag, it can be generated and injected programmatically by a CMS or templating system without touching the surrounding visible HTML at all — a meaningful practical advantage over Microdata and RDFa, which require weaving attributes throughout the actual content markup and keeping the two in sync by hand.

Google's own documentation states a clear preference for JSON-LD over the two markup-embedded alternatives, primarily because separating structured data from visible content reduces the chance of implementation errors and makes the markup easier to validate, update, and maintain over time — a template change to the visible page doesn't risk silently breaking embedded Microdata attributes the way it easily could. This preference is also why nearly every modern JSON-LD generator tool, CMS plugin, and SEO platform defaults to producing JSON-LD output rather than the older formats.

Auditing structured data across many pages?

Nstdata Crawl can fetch and extract JSON-LD blocks at scale, flagging missing or malformed markup across a site far faster than checking pages one at a time.

Try Nstdata Crawl →

JSON-LD vs. Adjacent Concepts

JSON-LD is one of three formats for publishing structured data markup — the others being Microdata and RDFa, both embedded directly in visible HTML rather than as a separate script block. Schema.org is a separate thing entirely: it's the shared vocabulary that defines what Product, Article, or price actually mean, independent of which format is used to encode that vocabulary on a page. It's possible, if uncommon, to publish the same schema.org vocabulary using Microdata instead of JSON-LD — the vocabulary doesn't change, only the syntax carrying it does.

Limits

JSON-LD markup must accurately reflect what's actually visible on the page — Google treats structured data describing content that isn't genuinely present or visible to users as a policy violation, regardless of how well-formed the JSON itself is. Valid, accurate markup doesn't guarantee a rich result either; it only makes a page eligible, and Google decides independently whether to actually display the enhancement. Eligibility itself has also narrowed over time: FAQ rich results were retired from Google Search entirely on May 7, 2026, and HowTo rich results are no longer supported, so JSON-LD for those two types will still validate cleanly but no longer produces any visible search benefit.

Conclusion

JSON-LD is the format, schema.org is the vocabulary it carries, and Google recommends this pairing specifically because keeping structured data in a separate script block is easier to implement and maintain than weaving markup into visible content. It's not a ranking factor and its rich-result eligibility has narrowed — verify which schema types still produce a visible benefit before investing significant effort in a specific type.

For teams auditing JSON-LD coverage or accuracy across many pages at once, evaluate Nstdata Crawl for that extraction step.

Try Nstdata Crawl for structured data audits

Extract and validate JSON-LD blocks across your site at scale.

Try Nstdata for Free →

FAQ

Where should JSON-LD be placed on a page?

Inside a script tag with type="application/ld+json", in either the document head or body. Google processes it regardless of which location it's placed in, as long as it's present in the rendered page.

Does JSON-LD directly improve rankings?

No. It's not a direct ranking factor. Valid markup can make a page eligible for rich results, which improves visibility and click-through rate, but Google separately decides whether to actually display the enhancement.

Is FAQPage JSON-LD still worth implementing in 2026?

FAQ rich results were retired from Google Search on May 7, 2026, so FAQPage markup still validates but no longer produces a visible search enhancement — it's no longer worth prioritizing purely for that benefit.

Why does Google recommend JSON-LD over Microdata?

Because JSON-LD is a self-contained script block separate from visible content, it's easier to implement, validate, and maintain than Microdata or RDFa, which require embedding attributes directly in the page's visible markup.

What happens if my JSON-LD describes content that isn't on the page?

Google treats structured data that doesn't match genuinely visible page content as a policy violation, which can result in the markup being ignored or the page being penalized — the markup must accurately reflect what users actually see.

Was this guide helpful?

Your choice is saved on this device.