Schema.org + JSON-LD: the complete pattern reference This article serves as a comprehensive reference for implementing Schema.org structured data using JSON-LD, emphasizing its critical role for Google, AI crawlers, and SERP features in 2026. It details the modern "@id graph pattern" for cross-referencing entities, explains how AI search engines use schema for entity extraction, and stresses that invalid schema is penalized more harshly than having none. The guide covers implementation across various frameworks, validation tools, and key schema types, positioning structured data as a non-optional foundation for search visibility. Originally published atPart of ThatDevPro's open SEO + AI framework library. thatdevpro.com . ThatDevPro is an SDVOSB-certified veteran-owned web + AI engineering studio. Open-source AI citation toolkit: github.com/Janady13/aio-surfaces . JSON-LD Implementation, the @id Graph Pattern, Per-Page Type Selection, and Validation A comprehensive installation and audit reference for structured data — the machine-readable layer that tells Google, AI crawlers, and other consumers what entities a page is about and how they relate. Every meaningful SERP feature, AI citation, and Knowledge Panel claim depends on this layer being correct. Dual-purpose: installation manual and audit document. Cross-stack implementation note: the code samples in this framework are written in plain HTML for clarity. For React, Vue, Svelte, Next.js, Nuxt, SvelteKit, Astro, Hugo, 11ty, Remix, WordPress, Shopify, and Webflow equivalents of every pattern below, see . For pure client-rendered SPAs no SSR/SSG see framework-cross-stack-implementation.md . For Tailwind-specific concerns purge, dynamic classes, dark-mode CLS, focus accessibility see framework-react.md . framework-tailwind.md 1. Document Purpose This is the canonical reference for schema.org structured data implementation. Schema is no longer optional in 2026 — it is the foundation that lets Google's Knowledge Graph populate, AI search engines extract claims, and SERP rich results render. A site without proper structured data is invisible to half of modern search. Schema in 2026 differs from schema in 2020 in three critical ways. First, the @id graph pattern cross-referenced nodes within a single @graph block has overtaken the older "one schema block per page" approach because it lets entities reference each other across the site. Second, AI search engines ChatGPT, Perplexity, Claude, Gemini rely on schema as a primary signal for entity extraction — accurate schema increases citation likelihood. Third, validation is non-negotiable: invalid schema is worse than no schema, because Google penalizes spam markup. 1.1 Required Tools - Google Rich Results Test — search.google.com/test/rich-results — primary validator - Schema.org Validator — validator.schema.org — comprehensive validator accepts more types than Google's tool - Google Search Console — Enhancements section — sitewide schema health monitoring - Yandex Microdata Validator — webmaster.yandex.com/tools/microtest/ - JSON-LD Playground — json-ld.org/playground/ — for graph experimentation - Schema App / Schema Pro — paid tooling for non-developer environments - Yoast SEO / Rank Math — WordPress plugins with schema generators - Browser DevTools — Application Frames Structured Data - — extract and inspect JSON-LD from a URL programmatically curl + jq 1.2 Document Scope Covers: schema formats, @id https://dev.to/id graph pattern, the major schema types every site needs, type-specific implementation per content type, validation methodology, sameAs networks, and common pitfalls. Touches but does not exhaust: Knowledge Graph claiming own framework: framework-knowledgegraph.md , AI citation mechanics framework-aicitations.md , Local SEO schema framework-localseo.md . 2. Client Variables Intake business type: "" local | ecommerce | publisher | b2b service | sdvosb primary entity: "" Organization name person entity: "" Founder/author Person if relevant website domain: "" local business subtype: "" Restaurant | Plumber | Dentist | etc. — only if local ecommerce product count: 0 existing schema present: false existing schema format: "" JSON-LD | Microdata | RDFa existing schema validated: false wikidata qid org: "" if claimed wikidata qid person: "" if claimed sameas targets: LinkedIn, GitHub, Wikidata, Wikipedia, etc. known schema errors: 3. Schema Format Decision Three formats are valid. Pick one and stick with it. | Format | Recommendation | Why | |---|---|---| JSON-LD | Use this. | Decoupled from rendered HTML; survives template changes; preferred by Google; trivial to maintain. | | Microdata | Avoid for new builds | Inline HTML attributes; brittle; tied to template structure. | | RDFa | Avoid for new builds | Similar drawbacks to Microdata; less common. | JSON-LD lives in a