Technical SEO

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:

  1. @context — Always "https://schema.org". Tells the parser which vocabulary the data uses.
  2. @type — The Schema.org type being described: Product, Article, LocalBusiness, FAQPage, etc.
  3. Properties — The type's specific data. A Product has name, offers (with price and availability), brand, aggregateRating. An Article has headline, author, datePublished.
  4. Nesting — Properties can contain other types. A Product's offers property contains an Offer type. An Article's author contains 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: