What Is JSON-LD? The Recommended Format for Structured Data
JSON-LD (JavaScript Object Notation for Linked Data) is a format for embedding structured data in a webpage using a single <script type="application/ld+json"> block, kept separate from the visible HTML content. Google's documentation explicitly recommends JSON-LD as its preferred structured data format, over the alternative formats Microdata and RDFa, largely because it can be added or updated without touching the page's visual markup.
Definition
JSON-LD encodes structured data as a JSON object describing entities on the page — their type, properties, and relationships — using vocabulary primarily drawn from Schema.org. Unlike Microdata or RDFa, which require adding attributes directly to existing HTML elements, JSON-LD lives in its own script block and can describe the page's content independently of its visual layout. Established
Basic Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Example Article Title",
"author": { "@type": "Person", "name": "Jane Doe" },
"datePublished": "2026-09-05"
}
</script>
The @context field declares the vocabulary being used (almost always https://schema.org), and @type specifies which schema type the object represents. Properties beneath it map to that type's defined fields. Established
Why Google Recommends It
Google's Search Central documentation states a preference for JSON-LD where supported, citing that it's easier for Google to identify entity relationships and update as a page's content changes, since the structured data block is decoupled from the page's visible HTML. Google supports Microdata and RDFa as well for most structured data features, but JSON-LD remains the primary recommendation. Established
Multiple JSON-LD Blocks
A page can include multiple separate <script type="application/ld+json"> blocks — for example, one for Article, one for BreadcrumbList, and one for FAQPage — rather than needing to nest every type inside a single object, though nesting related entities inside one block (e.g., an author object inside an Article) is also valid and common. Established
Validating JSON-LD
Google provides the Rich Results Test to check whether structured data on a page is valid and eligible for specific rich result features, and Search Console's Enhancements reports surface structured data errors detected across a site over time. Schema.org itself does not validate implementations; validation is done through search-engine-specific tools instead. Established
Common Mistakes
- Malformed JSON syntax (missing commas, unescaped quotes) that breaks parsing entirely, silently invalidating the whole block.
- Describing content that isn't actually visible or present on the page. Google's structured data guidelines require markup to reflect the page's real, visible content.
- Using outdated or incorrect Schema.org property names. Schema.org vocabulary evolves; unsupported or deprecated properties may be ignored.
- Forgetting to update JSON-LD when page content changes, since it's a separate block that doesn't automatically stay in sync with the visible HTML.
FAQ
Is JSON-LD required for SEO?
No, but it's Google's recommended format for structured data, which can make a page eligible for rich results like breadcrumbs, FAQs (where still supported), and article rich snippets.
Can I use both JSON-LD and Microdata on the same page?
Technically yes, but Google's guidance recommends using a single format consistently per data type on a page to avoid conflicting or duplicate structured data signals.
How do I check if my JSON-LD is valid?
Use Google's Rich Results Test to validate syntax and rich-result eligibility, and monitor the Enhancements reports in Google Search Console for ongoing structured data errors.
Related Concepts
Sources
- Google Search Central. "Intro to How Structured Data Markup Works." developers.google.com
- Schema.org. "JSON-LD." schema.org