AI Visibility · Technical Guide
What structured data increases the chance of being cited by AI?
Last updated: 2026-06-11The schema types that help are the ones that describe what an engine needs to verify: Organization or LocalBusiness for who you are, FAQPage for direct answers, Article with a fresh dateModified for trust, and BreadcrumbList for site structure. These raise citation odds, but only when they mirror readable on-page text. Schema corroborates your content in a machine-readable form; it cannot replace it.
How do AI engines use structured data?
AI engines do two jobs when they read a page: they verify the entity the page is about, and they extract an answer to a question. Structured data assists both. It restates, in a format a parser reads without ambiguity, the same facts your visible text already states — who you are, what you sell, the questions you answer. Think of schema as a label on a box, not the contents. The label speeds up sorting, but the engine still opens the box.
The verification job is the one owners underrate. Before an engine recommends a business, it wants to confirm the business is real and that the details line up across the web. Organization and LocalBusiness markup hand the engine a clean record of your name, address, and contact, which it then checks against your directory listings and review profiles. When those records agree, the engine has a verified entity it can name with confidence. When they conflict, it hedges or leaves you out.
This is why mismatched schema is a liability. If your markup claims you are open until 9pm but the page text says 5pm, or your FAQ schema contains an answer that appears nowhere in the visible copy, the engine treats the markup as unreliable and discounts it. In some cases the whole page loses credibility. Schema works when it confirms the text. It backfires when it contradicts the text.
Which schema types matter for a business?
Each schema type tells an engine a different fact about you. The table below maps the ones worth implementing. The rule that governs all of them: use the most specific type available. A restaurant marks up Restaurant, not the generic Organization; a dentist marks up Dentist. A specific type carries more verifiable detail, so the engine has more to confirm against the rest of the web.
| Schema type | What it tells an engine | When to use it |
|---|---|---|
| Organization | Who the business is: legal name, URL, logo, contact, social profiles. | Any business, on the homepage or an about page. The baseline identity record. |
| LocalBusiness (and subtypes: Restaurant, Dentist, Plumber, Store) | A physical, location-based business: name, address, phone, hours, geo, price range. | Any business serving customers at or from a location. Pick the narrowest subtype that fits. |
| FAQPage | A set of question-and-answer pairs the engine can lift as direct answers. | Pages that answer common customer questions, where the answers appear in the visible text. |
| Article (with dateModified) | That this is editorial content, who wrote it, and when it was last updated. | Guides, posts, and explainer pages. Always set a real, current dateModified. |
| BreadcrumbList | Where the page sits in your site hierarchy and how sections relate. | Any page below the homepage. Helps an engine understand site structure. |
| Service or Product | What you offer, with attributes like area served, provider, or price. | Pages dedicated to one service or product you want the engine to associate with you. |
| Review / AggregateRating | Reputation signals: rating value, count, and individual reviews. | Only with genuine, on-page reviews. Fabricated ratings are a known penalty trigger. |
Most businesses need only the first five. Add Service or Product when a page is built around one offering, and Review markup only when real reviews are visible on the page. The reason to reach for a subtype over the generic type is concrete: a Restaurant type accepts fields like servesCuisine and menu that Organization does not, and each filled field is another fact the engine can verify and quote. A generic label says little; a specific one says a lot, and the engine rewards the page that says more in a form it can read.
What does a correct FAQPage block look like?
A FAQPage block is a list of questions and their answers. The format is plain. The rule that makes it work is strict: every question and answer in the schema must match the visible FAQ text on the page word for word. The schema is a restatement of what the reader sees, not a place to add extra answers the page does not contain.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Do you offer same-day appointments?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. We hold same-day slots each
morning for urgent visits. Call before 10am
to book one."
}
}]
}
</script>
The question above must appear as a visible heading or summary on the page, and the answer text must appear in the body below it. If the two diverge, the engine drops the block. Matching them is the whole point of the markup. A common failure is writing the schema first, generating it from a template, or copying a competitor's block and forgetting to add the matching visible text. The fix is to write the on-page FAQ as readable copy, then mirror that copy into the schema, and never the other way around. The visible answer is the source; the schema is the copy.
Why does dateModified matter so much?
Freshness is a citation signal. When an engine assembles an answer, it favors sources it can date and that look current, because a stale page is a worse bet for a question about how things work now. The dateModified field in your Article schema is the machine-readable claim of when the page last changed, and it carries weight only when two conditions hold.
First, it must be real. Set it to the date you actually revised the content, not a script that bumps it every night. An auto-bumping date is easy to spot — content that never changes but reports a new modified date every day reads as a trick, and engines learn to ignore the field on sites that do it. Second, it must match a visible date on the page. The "Last updated" line a reader sees and the dateModified a parser reads should agree. When they do, the engine has a dated, corroborated source and treats it as more trustworthy than an undated one.
When the page carries no date at all, the engine has to guess at how current the content is, and it tends to favor sources that do not make it guess. The practical habit is to update the substance of a page when the topic moves, then set both the visible date and dateModified to that real revision date. This page itself follows the rule: the "Last updated" line at the top and the dateModified in its Article schema both read 2026-06-11, the day its content was last revised.
What can structured data not do?
Schema cannot rescue thin content. What moves AI visibility is the substance the markup describes. In Princeton's GEO study, pages that cited sources earned roughly 40% more AI visibility, pages adding statistics about 37% more, and pages adding quotations about 30% more; keyword stuffing cost about 10%. Schema supports the extraction of cited sources, statistics, and quotations, but it does not supply them. A perfectly marked-up page with nothing worth quoting stays uncited.
The second limit is technical. Structured data does not work if your text is client-rendered. AI crawlers do not execute JavaScript, so anything that appears only after the browser runs a script is invisible to them. The markup and the content it describes must both be present in the server's first HTML response. If you cannot see your schema and your copy in the page's raw source before any JavaScript runs, neither can the engine.
This trips up sites built on JavaScript frameworks that render content in the browser. The page looks complete to a human, because the human's browser runs the script, but the crawler sees an empty shell. The result is a page that ranks for nothing in AI answers despite looking finished. The check is simple: open the page, view source, and read the raw HTML. If your headline, body, and schema are all there in plain text, the page is server-rendered and an engine can read it. If the source is mostly empty tags waiting for a script, the content needs server-side rendering or static generation before any schema matters.
What else should a technically minded owner set up?
A handful of technical steps clear the path so the markup and content can be read at all. None of them is hard; each removes a way for engines to miss you.
- Allow the AI crawlers in robots.txt. Confirm GPTBot, ClaudeBot, PerplexityBot, and Google-Extended are not blocked. A disallow line on any of these means that engine never reads your pages.
- Publish an llms.txt file. It serves as a plain index of your key pages, pointing engines at the content you most want read.
- Get indexed in Bing. ChatGPT draws on Bing's index, so submit your sitemap to Bing Webmaster Tools rather than relying on Google alone.
- Ping IndexNow on publish. It notifies participating engines the moment a page changes, so a fresh dateModified is discovered sooner.
Schema describes your pages, but these steps decide whether the pages are fetched in the first place. The markup matters only after the crawler arrives.
Frequently asked questions
Does structured data guarantee AI citations?
Which schema type should a local business use?
Do AI engines read JSON-LD or microdata?
Does Google's rich-results test matter for AI engines?
How do I check my structured data is working?
See what AI says about your business.
Tell us your business and market. We run a four-engine check, show you every answer, and tell you exactly which pages and schema to build — free.
Check my business