The schema that earns AI citations (and the schema that does nothing)

“Add schema markup” is on every AEO checklist, and most teams who follow the advice get nothing for it. Not because structured data doesn't matter, it does, but because the schema most sites ship is the empty, CMS-default kind: an Article type with no author entity, an Organization with a name and nothing else. A model learns nothing from it, so it changes nothing.

This is the technical guide to the version that works: attribute-rich markup, a consistent entity graph, and a site AI crawlers can actually read. It is the “Build” stage of The Citation Engine, written out in full.

+20pp
citation-rate gap: attribute-rich vs generic schema (Marshal, 730 citations)
0.664
brand mentions' correlation with AI Overview visibility, vs 0.218 for backlinks (Ahrefs)
~1/3
of AI citations point to dead or hallucinated pages (our source mapping)

Why markup matters differently for models

Google uses structured data for rich results. A language model uses structure for something more basic: confidence. Before an engine cites you, it has to resolve three questions, can I parse this page, do I understand what this entity is, and will I look wrong repeating this claim? Markup and entity work answer the first two. Nothing else on your site does it as directly.

The evidence points one specific direction: specificity wins. Marshal's 730-citation study of ChatGPT and Gemini citations found generic CMS-default schema produced no measurable citation effect, while attribute-rich schema, with populated pricing, ratings and specification fields, outperformed it by roughly 20 percentage points (61.7% vs 41.6%). One study, so hold it loosely, but it matches what we see in client data: empty types do nothing; populated attributes move.

The schema hierarchy: what to ship, in order

PriorityMarkupThe attributes that matterWhy
1Organization (sitewide, with @id)description, founder, sameAs[], knowsAbout, areaServedYour entity's anchor. Every other node should reference it.
2Product / Service + Offerreal pricing, features, audience, ratings where trueThe populated attributes are the 20-point gap. Empty types are theater.
3FAQPage (on real Q&A)questions phrased as buyers ask them, self-contained answersPre-chunked Q→A pairs, the easiest thing for a model to lift.
4Article / BlogPostingauthor as a Person entity with @id, dates, publisherAttribution and freshness, two citation risk-checks, answered in markup.
5Person (founder/authors)jobTitle, worksFor, knowsAbout, sameAs to real profilesE-E-A-T has to resolve to a real, corroborated human.
6HowTo / BreadcrumbListreal steps; clean hierarchyStructure extras: helpful, not decisive. Ship after 1–5.

Two rules across all of it. Never mark up what isn't visibly true on the page, models and Google both treat mismatches as a trust problem. And connect everything with @id references so your Organization, Person and Service nodes form one graph instead of disconnected islands.

Entity clarity: the layer schema alone can't fix

A model doesn't rank your page, it recalls your entity: a structured sense of who you are, what you do, and what you are best at. That sense is assembled from everywhere your brand appears. If your homepage says “revenue intelligence platform,” your G2 profile says “sales analytics tool,” and your LinkedIn says “AI copilot for GTM teams,” the model's picture of you is fuzzy, and fuzzy entities lose to clear ones, because recommending a thing you half-understand is exactly the risk a model avoids.

[ WHAT A MODEL SEES AS YOUR ENTITY ]LinkedInCrunchbaseWikidataG2 profileGitHubReview & press coverageYOUR BRANDone consistent description, everywhere
sameAs links and consistent descriptions turn scattered profiles into one confident entity, the thing a model can safely recommend.

The work is unglamorous and decisive: write one canonical description of what you are and what you are best at, then propagate it, verbatim where possible, to every surface: site, schema, G2, Crunchbase, LinkedIn, GitHub, directories. Add sameAs links from your Organization markup to each profile so the graph is explicit. Where it's warranted, establish the entity in public knowledge bases (Wikidata and the profiles models actually retrieve). This is also why Ahrefs' 75,000-brand study found brand web mentions correlate with AI Overview visibility at 0.664 versus 0.218 for backlinks, corroboration across independent surfaces is the signal, and your entity graph is how a model connects those mentions to you.

Schema tells the model what you are. The entity graph proves it. A site with perfect markup and a fuzzy entity still loses to a clear one.

Crawlability: none of it matters if the bot can't read you

Before any of the above pays off, AI crawlers have to reach and parse your pages. The failure modes we find on real audits, in order of frequency:

  • Silent blocks. A WAF, CDN bot rule or robots directive blocking GPTBot, PerplexityBot, ClaudeBot or Google-Extended, often left over from a blanket “block bots” decision nobody revisited. Check your logs for verified hits from each.
  • JavaScript-only content. Most AI crawlers read raw HTML and execute little or no JS. If your body copy, pricing or docs render client-side, the model gets an empty shell. Server-render or pre-render anything you want quoted.
  • Unchunkable pages. Walls of text with no heading hierarchy give retrieval systems nothing clean to lift. Direct answers near the top, self-contained sections, real headings. (How to write those passages is its own discipline, covered in content AI will quote.)
  • Stale facts. Old pricing and abandoned positioning don't just mislead buyers, they get repeated by models and are expensive to correct. Freshness is a citation signal.

And one thing not to spend a sprint on: llms.txt. Google's John Mueller put it plainly: “no AI system currently uses llms.txt”, and Gary Illyes has confirmed Google won't crawl it. Harmless to have, but it is a checkbox, not a strategy; crawl access, rendering and structure are what move.

The 30-day implementation order

  1. Verify crawl access for the four major AI bots in your logs; fix silent blocks first, everything else is downstream.
  2. Ship the Organization + Person graph sitewide with @id and sameAs to every real profile.
  3. Write the canonical entity description and propagate it to site, schema and every third-party profile.
  4. Add attribute-rich Product/Service + Offer markup to money pages, with real, current pricing and features.
  5. Add FAQPage to pages with real questions, phrased the way buyers actually ask.
  6. Fix render: server-render anything you want quoted; confirm with a raw-HTML fetch, not a browser.

This is exactly the supply-side audit we run, every page scored for citation-readiness with a RICE-ranked fix list, in our AEO engagements. If you just want to know where you stand, the free checker takes two minutes.

Frequently asked

Does schema markup help you get cited by ChatGPT?
Indirectly but meaningfully. Structured data helps engines parse your pages and resolve your entity with confidence, and the evidence favors attribute-rich markup: in Marshal's 730-citation study of ChatGPT and Gemini citations, schema with populated pricing, rating and specification fields outperformed generic CMS-default schema by about 20 percentage points. Empty default types, by contrast, produced no measurable effect.
Which schema types matter most for AI visibility?
In priority order: a sitewide Organization node with sameAs links and an @id that everything references; Product or Service markup with real populated attributes (pricing, features, audience); FAQPage on genuine Q&A; Article or BlogPosting with a real Person author; and Person markup for your founder and authors. HowTo and BreadcrumbList help but come after.
What is entity SEO and why does it matter for AEO?
Entity SEO is making sure search engines and language models hold one clear, consistent, corroborated concept of who you are and what you are best at. Models recommend entities they understand confidently, so a consistent description across your site, schema, G2, LinkedIn, Crunchbase and other profiles, tied together with sameAs links, directly affects whether you get named in answers.
Does llms.txt help with AI search?
There is no evidence it does. Google has stated its AI systems do not use it, and no major engine has committed to reading it. It is harmless to publish, but crawl access for AI bots, server-rendered content and clean structure are what actually determine whether engines can read and cite you.
Can AI crawlers read JavaScript websites?
Mostly no. Most AI crawlers fetch raw HTML and execute little or no JavaScript, so content that renders client-side is invisible to them. If your body copy, pricing or documentation depends on JS to appear, server-render or pre-render it, then verify with a raw-HTML fetch rather than a browser, which hides the problem.
How do I check if AI bots can access my site?
Check your server or CDN logs for verified hits from GPTBot, PerplexityBot, ClaudeBot and Google-Extended (verify by reverse-DNS, since bots are widely spoofed), review robots.txt and WAF rules for blanket bot blocks, and fetch key pages as raw HTML to confirm the content is actually present without JavaScript.

Make your site
machine-legible.

Book a strategy call. We'll audit your crawl access, schema and entity graph live, and hand you the RICE-ranked fix list.

Book a strategy call