Structured Data for AI Engines: JSON-LD Cheat Sheet (2026)

Published: August 8, 2026 — Structured data is the difference between a page that machines can understand and one they do understand. JSON-LD in your page's <head> tells search engines and AI assistants exactly what your page is — an article, a person, a set of answers, a product. This cheat sheet has the copy-paste templates that matter, with validation tips, and it's the same pattern running on every post of this site.

⚡ Quick Takeaways

1. Article / BlogPosting

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Your Post Title",
  "description": "A 150-character summary of the post.",
  "image": ["https://yoursite.com/cover.png"],
  "datePublished": "2026-08-08",
  "dateModified": "2026-08-08",
  "inLanguage": "en",
  "author": {"@type": "Person", "name": "Your Name"},
  "publisher": {"@type": "Person", "name": "Your Name"},
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://yoursite.com/your-post.html"
  }
}
</script>

Required: headline, datePublished, author. Every post on this site carries exactly this block — it's the machine-readable version of the page.

2. FAQPage

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is JSON-LD?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "JSON-LD is a format for embedding Schema.org metadata in a page's head."
      }
    },
    {
      "@type": "Question",
      "name": "Does it help with AI search?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes — AI engines treat structured answers as strong citation signals."
      }
    }
  ]
}
</script>

Critical rule: every question and answer must appear verbatim in the visible page content. FAQ schema with hidden answers is a classic way to get ignored.

3. Person (About / Portfolio)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Your Name",
  "url": "https://yoursite.com/",
  "jobTitle": "AI Engineer",
  "sameAs": [
    "https://github.com/yourusername",
    "https://www.linkedin.com/in/yourname"
  ],
  "knowsAbout": ["Retrieval-Augmented Generation",
                 "Local LLMs", "Vector Databases"]
}
</script>

The sameAs array links your identity across platforms — the entity-resolution signal that helps AI engines attribute your work. See the portfolio AEO guide for the full personal-brand setup.

4–6. HowTo, Product, Breadcrumb (Quick Reference)

// HowTo (tutorials) — step list, required for rich results
{
  "@type": "HowTo", "name": "Title",
  "step": [{"@type": "HowToStep", "name": "Step 1",
            "text": "Do the thing."}]
}

// Product (anything sold) — price + availability
{
  "@type": "Product", "name": "Name",
  "offers": {"@type": "Offer", "price": "19.00",
             "priceCurrency": "USD", "availability": "https://schema.org/InStock"}
}

// BreadcrumbList (navigation)
{
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type": "ListItem", "position": 1,
     "name": "Home", "item": "https://yoursite.com/"},
    {"@type": "ListItem", "position": 2,
     "name": "Blog", "item": "https://yoursite.com/blog.html"}
  ]
}

Validation and Mistakes

Mistake Fix
Missing required fields (datePublished, author) Run Rich Results Test — it lists exactly what's missing
Schema ≠ visible content Make the page text match the schema text, verbatim
Wrong @id URLs Every URL should be absolute and resolve
Broken JSON (unescaped quotes) Validate the snippet; escape quotes inside strings
Copying templates without editing Search your pages for leftover placeholder text

Validate with: Google Rich Results Test (richresultstest.withgoogle.com), Schema.org validator, or a JSON linter. Run it after every template change — structured data is code, and it breaks like code.

Frequently Asked Questions (FAQ)

What is JSON-LD structured data?

JSON-LD is a format for embedding Schema.org machine-readable metadata in a page's <head>. It describes what the page is — an article, a person, an FAQ, a product — in a way search engines and AI systems can parse unambiguously. It's the standard way to add structured data in 2026.

Does JSON-LD help with SEO and AI search?

Yes, on both fronts. Google uses it for rich results (FAQ, breadcrumbs, review stars), and AI answer engines treat schema as a strong signal that a page is machine-readable answer content. It's not a ranking guarantee, but it's free clarity for every machine that reads your page.

Which JSON-LD types matter most?

For most sites: Article/BlogPosting for content, FAQPage for question-answer sections, Person for authors/about pages, Organization for companies, Product for anything sold, HowTo for tutorials, and BreadcrumbList for navigation. Start with Article + FAQPage + Person — they cover the majority of sites.

How do I validate my JSON-LD?

Google's Rich Results Test and Schema.org's validator accept a URL or code snippet; both flag errors and missing required fields. Also check that the page's visible content matches the schema — mismatches (e.g. FAQ answers not on the page) are the most common way to get structured data ignored.

Can multiple JSON-LD blocks be on one page?

Yes — separate <script type="application/ld+json"> blocks per type are standard and preferred: one for the page's main entity (Article/Product), one for FAQPage, one for BreadcrumbList, and so on. Keep each block self-contained and valid.

What are common JSON-LD mistakes?

Missing required fields (datePublished, author for articles), schema that doesn't match visible content, incorrect URLs, JSON syntax errors from unescaped quotes, and copying templates without adjusting the @id URLs. Validation catches most of these — run it after every change.

Sources & Further Reading