Skip to content
AEO Canon · the reference for answer-engine optimization

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.

BBurke Atkerson1 min read

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. 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. 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. 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. 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.

Related reading

The schema types with the highest AEO payoff are Organization and Person (entity clarity and sameAs) and LocalBusiness (local context) — Article, FAQPage, and HowTo help parsing and rich-result eligibility, and Product helps shopping. Rank types by entity value instead of marking up everything.

2 min read

Use FAQPage schema for question-and-answer content and HowTo for ordered, step-by-step tasks. Google deprecated HowTo rich results and limited FAQ rich results to government and health sites in 2023 — but the markup still gives AI parsers clean, structured data.

1 min read

Use JSON-LD. It lives in a separate script block, is the easiest format to add and maintain, and is the one Google recommends. Microdata and RDFa embed markup as inline HTML attributes, which is verbose and harder to maintain — and both Google and AI parsers favor JSON-LD.

1 min read