Structured data validator for AI agents
Not “is this valid Schema.org?” — that’s what validator.schema.org is for. This asks whether your JSON-LD is agent-extractable and trustworthy.
Last updated
What does it check?
Two layers. The first is a lint every schema validator does; the second is the part they don’t — the coherence signals an autonomous agent uses to decide whether to extract and cite your page.
- D1–D4 — schema lint. Parseable JSON-LD, a recognised primary
@type, the core agent fields (identity, description, URL, freshness), and well-formed date/URL values. - D5 — freshness honesty.
dateModifiedagrees with yoursitemap.xml<lastmod>and any visible date. - D6 — canonical & markdown coherence. The JSON-LD URL matches your canonical, and a markdown mirror exists.
- D7 — entity-name consistency. Your organisation/site name matches across JSON-LD, llms.txt, and AGENTS.md.
- D8 — extraction signal. The primary entity has a description and the page ships real text, not an empty shell.
Why a separate tool from a schema validator?
A schema validator grades your markup for Google’s rich-snippet pipeline. An AI agent reads JSON-LD differently: it wants a coherent entity with an identity, a freshness signal it can trust, a URL it can re-fetch cleanly, and enough text to quote. Those are the things D5–D8 measure — and the things the first-party validators don’t. For full Schema.org and Rich Results conformance, run validator.schema.org alongside this.
Frequently asked questions
- How is this different from validator.schema.org?
- validator.schema.org and Google's Rich Results Test grade your markup against the full Schema.org vocabulary and Google's rich-snippet eligibility rules — that's the right tool for SEO rich results. This validator answers a different question: is your structured data agent-extractable and trustworthy? It lints the basics (parseable JSON, recognised type, well-formed values) and then runs checks the schema validators don't: does the JSON-LD date agree with your sitemap and visible date, does its URL match your canonical and a markdown mirror, does the entity name match your llms.txt and AGENTS.md, and is there actually enough content for an agent to quote. For full Schema.org conformance, use validator.schema.org; for agent-readiness, use this.
- What do the agent-coherence checks (D5–D8) look at?
- D5 (freshness honesty) compares the JSON-LD dateModified/datePublished against your sitemap.xml <lastmod> and a visible on-page date, flagging dates that don't agree. D6 (canonical & markdown coherence) checks the JSON-LD url matches your <link rel="canonical"> and that a /<slug>.md markdown mirror exists. D7 (entity-name consistency) compares the Organization/site name in your JSON-LD against your llms.txt and AGENTS.md headings. D8 (extraction signal) checks the primary entity has a description and the page ships real visible text rather than an empty JS-rendered shell.
- Can I validate a JSON-LD snippet without a URL?
- Yes. Paste mode runs the four schema-lint checks (parseable JSON, recognised @type, core agent fields, well-formed values) on a snippet directly. The four agent-coherence checks need a live page to compare against (sitemap, canonical, llms.txt, page text), so they only run in URL mode.
- Which @type should my page use?
- Use the most specific Schema.org type that fits: Article/BlogPosting/NewsArticle for content, Product for products, FAQPage for FAQs, HowTo for guides, Organization and WebSite for site-wide identity. The validator recognises the common types and is permissive about unusual ones — an unrecognised type is a warning, not a failure, because agents can still read it.
- Does a warning mean my structured data is broken?
- No. Failures are real defects (no parseable JSON-LD, malformed dates/URLs, no identity). Warnings are agent-readiness gaps — a missing recommended field, a freshness signal that can't be corroborated, an entity name that doesn't match your llms.txt. A warning marked 'could not verify' just means a corroborating source (sitemap, llms.txt) wasn't found, not that anything is wrong.