Schema validation
What it checks
AI agents parse @context and @type to identify entity types in your structured data. Blocks missing these properties are silently ignored by every schema consumer, including Google, ChatGPT plugins, and RAG pipelines. Add “@context”: “schema.org” and a valid @type to each block.
Why it matters
A top-level JSON-LD node object with no active @context has its terms dropped during JSON-LD expansion. It therefore produces zero schema.org statements. Google’s structured-data parser records no entity for that block, and the block is ineligible for any feature that consumes structured data.
Evidence
- JSON-LD 1.1 is a W3C Recommendation dated 16 July 2020. The spec states “A context is used to map terms to IRIs”. A term with no active context is therefore not an IRI, and carries no schema.org meaning — w3.org/…/json-ld11 (verified 2026-08-21)
- The companion Recommendation (JSON-LD 1.1 Processing Algorithms and API, 16 July 2020) defines the Expansion Algorithm that resolves every entry key against the active context; this is the normative step the audit’s signal depends on — w3.org/…/json-ld11-api (verified 2026-08-21)
- Google names itself as a consumer of the format and reads it as entities: “Google can read JSON-LD data when it is dynamically injected into the page’s contents”. It treats the three encodings alike: JSON-LD, Microdata and RDFa are “all 3 formats are equally fine for Google”. It also requires completeness — “You must include all the required properties for an object to be eligible for appearance in Google Search with enhanced display” — developers.google.com/…/intro-structured-data (verified 2026-08-21)
- Adoption of the format is at web scale: JSON-LD extracted from 833.8M URLs across 11.6M domains in the October 2024 Common Crawl — webdatacommons.org/…/stats.html (verified 2026-08-21)
Limits
The spec does not require @type. JSON-LD 1.1 §9.2 defines a node object purely by the absence of @value/@list/@set; @type is optional and a typeless nested map is a legitimate property value that conforming processors read as such. Google supports Microdata on equal terms, where <div itemscope itemprop="offers"> without itemtype is idiomatic and valid. The audit’s assertion that blocks missing @type are “silently ignored by every schema consumer, including Google, ChatGPT plugins, and RAG pipelines” is therefore false for nested nodes — the graded mechanism holds only for top-level entity blocks.
The “RAG pipelines” half of the claim is separately unsupported: in a controlled fetch test a price present only in JSON-LD was retrieved by 0 of 5 systems (ChatGPT, Claude, Gemini, Perplexity, Google AI Mode) — searchviu.com/…/schema-markup-and-ai-in-2025-what-c… (verified 2026-08-21)
How it scores
The mechanism is a ratified W3C Recommendation (JSON-LD 1.1 expansion resolves keys against the active context) and Google is a named consumer that documents parsing JSON-LD into entities.
Sources
- JSON-LD 1.1 — A JSON-based Serialization for Linked Data — W3C, spec (verified 2026-08-21)
- JSON-LD 1.1 Processing Algorithms and API — W3C, spec (verified 2026-08-21)
- Intro to how structured data markup works — Google Search Central, vendor-doc (verified 2026-08-21)
- Web Data Commons Extraction Report — October 2024 Common Crawl Corpus — Web Data Commons (University of Mannheim), dataset (verified 2026-08-21)
- Schema Markup and AI in 2025: What ChatGPT, Claude, Perplexity & Gemini Really See — searchVIU, study (verified 2026-08-21)
Browser view
This entry is a documented exception: it shipped before the browser-agent rule, and no browser-agent consumer is claimed. The browser view reports only whether the captured DOM’s JSON-LD parses and matches schema.org types; Microdata and RDFa get the same type check. It claims nothing about crawler delivery, rich results or agent behaviour.
The snapshot path reuses this audit on each complete, unredacted, non-loading DOM capture that carries readable text. It reports the original static verdict as an unscored browser finding. It does not prove HTTP delivery, computed appearance, a complete accessibility tree, live form state, or action success. The source and page URL accompany every finding. Existing implementation limits still apply.
The individual evidence review and limits appear in Browser-rendered snapshot assessment. The explicit eligibility record lives in packages/core/src/snapshot-eligibility.ts. Original crawler grades, tiers, and weights stay unchanged.