JSON-LD
Also known as: Schema.org JSON-LD, Structured data
Quick definition
JSON-LD (JSON for Linked Data) is the structured-data format Google, Bing, and other search engines recommend for marking up web pages with Schema.org vocabulary — enabling rich-result eligibility (FAQ snippets, How-to cards, breadcrumbs, recipe cards). For social and content pages, JSON-LD is the technical foundation of SEO rich-snippet visibility.
Contents
What is JSON-LD?
JSON-LD (JSON for Linked Data) is a W3C-standardized format for embedding semantic, machine-readable metadata in web pages. Search engines (Google primarily, then Bing, DuckDuckGo, Yandex) parse JSON-LD blocks to understand page content beyond what HTML alone reveals. The metadata follows Schema.org vocabulary — a shared ontology defining types like Article, FAQPage, Product, Recipe, BreadcrumbList, Person, Organization, DefinedTerm, and hundreds more.
The structure: JSON-LD blocks are embedded in `<script type='application/ld+json'>` tags inside the HTML head or body. Each block declares an `@context` (almost always `https://schema.org`) and a `@type` matching the Schema.org vocabulary. The body of the block describes the entity in JSON form. Google Search Console's Rich Results Test (search.google.com/test/rich-results) validates JSON-LD and shows which rich-snippet eligibility unlocks.
Why JSON-LD matters for content sites
Three concrete benefits unlocked by Schema.org JSON-LD. (1) Rich snippets in SERPs — FAQ accordion in search results, How-to cards, recipe ratings, breadcrumb trails, product price/availability. Rich snippets dramatically increase CTR (click-through rate) — Google's case studies show 20-50% CTR improvements when rich snippets are eligible. (2) Knowledge graph eligibility — well-marked-up Person, Organization, and Product pages can populate Google's Knowledge Graph panel. (3) AI search visibility — generative AI search products (Google AI Overviews, Bing Copilot, Perplexity) preferentially cite pages with strong structured data because the markup is machine-readable signal of authoritativeness.
For a content site like a glossary, blog, or documentation hub, JSON-LD is the difference between 'plain blue links in SERPs' and 'rich expandable snippets that capture the click before competitors do.' CodivUpload's glossary uses DefinedTerm + DefinedTermSet + FAQPage + Article + BreadcrumbList markup for each entry — the format competitors like Buffer's glossary lack.
JSON-LD vs Microdata vs RDFa
Three formats exist for embedding structured data; JSON-LD has won. (1) JSON-LD — separate JSON block in `<script>` tag. Easy to maintain, doesn't pollute markup, Google's recommended format since 2014. (2) Microdata — inline HTML attributes (itemprop, itemtype). Older, harder to maintain, increasingly rare. (3) RDFa — alternative to Microdata, similar tradeoffs, even rarer.
Google, Bing, and most modern search engines accept all three but specifically recommend JSON-LD. New sites should always use JSON-LD; legacy sites using Microdata can migrate gradually but most have already converted. The reason JSON-LD won: it lets developers manage structured data as a separate concern from page rendering, avoiding the Microdata pattern where structured-data attributes were sprinkled across markup and hard to debug.
Article JSON-LD example
json
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Best Time to Post on Instagram in 2026",
"datePublished": "2026-05-06T00:00:00+00:00",
"dateModified": "2026-05-06T00:00:00+00:00",
"author": {
"@type": "Organization",
"name": "CodivUpload",
"url": "https://codivupload.com"
},
"publisher": {
"@type": "Organization",
"name": "CodivUpload",
"logo": {
"@type": "ImageObject",
"url": "https://codivupload.com/logo.png"
}
},
"image": "https://codivupload.com/og/best-time.png",
"mainEntityOfPage": "https://codivupload.com/blog/best-time-to-post"
}Common pitfalls
- ×Including JSON-LD that doesn't match visible page content — Google penalizes 'invisible content' markup
- ×Forgetting to update dateModified when content changes — signals stale freshness to Google
- ×Marking up FAQs that aren't actually visible on the page — explicit Google policy violation
- ×Wrong @type for the content (Article vs BlogPosting vs NewsArticle) — picks up wrong rich-snippet eligibility
- ×Including malformed JSON — a single trailing comma breaks the entire block silently
Tips
- ✓Test every JSON-LD block with Google Rich Results Test before deploying
- ✓Use a JSON-LD generator library (next-seo, schema-dts) instead of hand-writing
- ✓Add JSON-LD for FAQPage on any page with Q&A content — easiest rich-snippet win
- ✓Mark up BreadcrumbList on every category / nested page — visual SERP improvement
- ✓Validate JSON-LD with Schema.org Validator alongside Rich Results Test for spec compliance
Frequently asked questions
Does JSON-LD help SEO rankings directly?+
Indirectly. JSON-LD doesn't change ranking position directly, but rich snippets dramatically improve CTR which feeds back into ranking signals over time. JSON-LD is a CTR-multiplier, not a ranking-position multiplier.
Is JSON-LD better than Microdata?+
Yes — Google specifically recommends JSON-LD over Microdata since 2014. JSON-LD is easier to maintain, more reliable, and supported by every major search engine.
Can I use JSON-LD without a CMS?+
Yes — JSON-LD is just a `<script>` tag in HTML. Static sites, custom-built sites, and any framework can include it. Most modern frameworks (Next.js, Astro, Hugo, Gatsby) have JSON-LD plugins or built-in support.
How fast does JSON-LD show up as rich snippets in Google?+
Eligibility happens immediately, but rich-snippet display in SERPs typically takes 1-4 weeks for Google to start showing them. Submit a sitemap and request indexing to speed things up.
Should every page have JSON-LD?+
Yes — at minimum, every page should have BreadcrumbList and either Article (blog/glossary) or WebPage (other). High-value pages get more specific markup (FAQPage, Product, Recipe, etc.).
API responses you can mark up with JSON-LD
CodivUpload's REST API returns clean structured data — perfect for sites that surface scheduled-post information with Schema.org markup.
See API documentationRelated glossary terms