The Anatomy of a JSON-LD Block
A JSON-LD block has four load-bearing parts — @context sets the vocabulary (schema.org), @type declares what the thing is, @id gives it a stable identifier other nodes can reference, and the remaining properties describe it. Understanding each part lets you write and debug markup with confidence.
A JSON-LD block has four load-bearing parts: @context sets the
vocabulary, @type declares what the thing is, @id gives it a stable identifier, and the
remaining properties describe it. Learn these and you can write and debug any block.
Quick answer
Every JSON-LD block reads the same way: @context names the vocabulary (schema.org), @type says what the entity is, @id gives it a stable identifier so other nodes can reference it, and properties fill in the details. Nesting lets one entity point to another.
What does a real block look like?
Here's a compact Article with a nested author and publisher:
{
"@context": "https://schema.org",
"@type": "Article",
"@id": "https://aeocanon.com/learn/anatomy-of-json-ld#article",
"headline": "The Anatomy of a JSON-LD Block",
"author": {
"@type": "Person",
"@id": "https://aeocanon.com/authors/burke-atkerson#person",
"name": "Burke Atkerson"
},
"publisher": {
"@type": "Organization",
"name": "AEO Canon"
},
"datePublished": "2026-06-30"
}How do I read each part?
Left to right, top to bottom — each key has a job.
- 1
@context — the vocabulary
Points to https://schema.org, the shared dictionary that defines what every term below means. Without it, an engine can't interpret your keys.
- 2
@type — what it is
Declares the entity class — here Article, with a nested Person and Organization. This is how a parser knows to treat the block as an article versus a product.
- 3
@id — the stable identifier
A unique URL that names this exact node so other markup can reference it instead of duplicating it. The author's @id lets every article point to the same Person.
- 4
Properties + nesting
headline, datePublished, author, and publisher describe the entity. Nesting an object (author) links a related entity inline.
Where to go next
Once you understand the parts, validate your structured data before shipping, review the JSON-LD glossary entry, and see which schema types matter most for AEO.
Frequently asked questions
- What are the main parts of a JSON-LD block?
- The four core parts are @context, which sets the vocabulary to schema.org; @type, which declares what the thing is; @id, which gives it a stable identifier; and the properties, which describe the entity. Nesting lets one entity reference or contain another.
- What does @id do in JSON-LD?
- The @id property assigns a stable, unique identifier — usually a URL — to a node so other nodes can reference the same entity instead of duplicating it. It lets you link an Article to its author or publisher cleanly across your markup.
- Is @context always schema.org?
- For AEO, effectively yes. @context points to the vocabulary that defines your terms, and schema.org is the standard vocabulary Google and answer engines understand. You set it to https://schema.org.