What is JSON-LD?
JSON-LD (JavaScript Object Notation for Linked Data) is the format Google recommends for adding structured data to web pages — a script block in the page's HTML that describes entities, relationships, and properties in a machine-readable format without affecting the visible content.
Why It Matters
Before JSON-LD, structured data required embedding markup directly into the HTML using Microdata or RDFa. Every property had to be woven into the page's existing tags — itemprop attributes on spans, itemscope on divs. This was fragile, hard to maintain, and tightly coupled to the page template. Change the HTML structure and the structured data breaks.
JSON-LD solved this by separating structured data from the HTML entirely. A self-contained script block in the <head> describes the page content in clean, readable JSON. The page template can change freely without affecting the structured data. The structured data can be generated dynamically without touching the HTML. Google explicitly recommends JSON-LD over Microdata and RDFa.
How It Works
A JSON-LD block contains four key elements:
- @context — Always
"https://schema.org". Tells the parser which vocabulary the data uses. - @type — The Schema.org type being described: Product, Article, LocalBusiness, FAQPage, etc.
- Properties — The type's specific data. A Product has
name,offers(withpriceandavailability),brand,aggregateRating. An Article hasheadline,author,datePublished. - Nesting — Properties can contain other types. A Product's
offersproperty contains an Offer type. An Article'sauthorcontains a Person type. This creates a graph of connected entities.
The JSON-LD script is placed in the page's <head> section within a <script type="application/ld+json"> tag. Multiple JSON-LD blocks can exist on the same page, describing different entities (the article, the author, the breadcrumb, the FAQ).
Common Mistakes
Duplicating structured data by using both JSON-LD and Microdata on the same page for the same entity. This can create conflicting signals. Choose one format and use it consistently. JSON-LD is the right choice for new implementations.
The other mistake is writing JSON-LD by hand for every page. Manual JSON-LD does not scale and introduces errors — missing commas, wrong property names, stale data. JSON-LD should be generated programmatically from the page's data source, ensuring accuracy and consistency across the entire site.
How I Use This
Every schema implementation I build uses JSON-LD. My SEO automation generates JSON-LD blocks programmatically from page data — product information, business details, article metadata. The output is clean, validated, and maintained automatically. For my own site, the glossary you are reading has DefinedTerm JSON-LD generated at build time from the content collection.
References & Authority
This term is recognised by established knowledge bases:
Related Services
How BrightIQ uses JSON-LD
This concept is central to the following services:
Related Terms
Product Schema Markup
Product schema markup is structured data (typically JSON-LD) added to product pages that tells search engines the product's name, price, availability, brand, reviews, and other attributes — enabling rich results like star ratings, price ranges, and stock status directly in Google search results.
Schema Markup
Schema markup is structured data code (typically JSON-LD) added to web pages that helps search engines understand the content — identifying entities like products, businesses, articles, and FAQs so Google can display rich results with star ratings, prices, and other enhanced features.
Structured Data
Structured data is a standardised format for providing information about a page's content to search engines — using vocabularies like Schema.org to explicitly describe entities, properties, and relationships so machines can understand what a page is about.