JSON-LD, short for JavaScript Object Notation for Linked Data, is a format for describing things and their relationships in JSON. On websites it is the most common way to add structured data: machine-readable facts about a page, such as the author of an article, the price of a product or the opening hours of a local business.
JSON-LD became a W3C Recommendation in 2014, and version 1.1 followed in 2020. Google supports Microdata and RDFa equally, but recommends JSON-LD as the easiest format to implement and maintain at scale, because it keeps the data separate from the visible HTML.
How it looks
The data sits in a single script block, usually in the page's head:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Choose a WordPress Theme",
"author": { "@type": "Person", "name": "Jane Doe" },
"datePublished": "2026-10-01"
}
</script>A few keys start with @ and carry the linked-data meaning:
@contextnames the vocabulary, almost always schema.org.@typesays what kind of thing is described.@idgives a node a unique identifier, so other nodes can refer to it.@graphholds several connected nodes in one block, such as a web page, the organization that publishes it and its breadcrumb trail.
Why it is preferred
Because JSON-LD lives in its own block, it can be added, generated or changed without touching the page's markup, and a redesign of the HTML templates does not break it. Plugins and templates can produce it from data they already have.
The data still has to match what visitors see. Google's guidelines require structured data to describe the visible content of the page, and markup that claims ratings or prices the page does not show can lead to a manual action. Valid JSON-LD makes a page eligible for rich results but does not guarantee them. Test it with Google's Rich Results Test before relying on it.