guides16 min read

Schema markup for AI search: what actually helps you get cited (2026)

Schema markup for AI search in 2026: which JSON-LD types plausibly help AI citation, what schema cannot do, copy-paste Article, FAQPage and Organization blocks.

A
Alexis MarescaCofounder, Getspotted · GEO & AI visibility expert

The quick answer

Schema markup for AI search is a corroboration and disambiguation signal, not a citation lever: JSON-LD tells an AI engine what a page's entities, dates and authorship are in machine-readable form, but ChatGPT, Perplexity, Claude and Gemini build answers from the rendered text of a page, so schema supports a citation rather than causing one. As of 2026, the types worth shipping are Article with dateModified (freshness), FAQPage (question-answer pairing), HowTo (step extraction), Organization with sameAs (entity resolution), and Product or Review for commerce pages. This guide covers what JSON-LD does and does not do for LLM retrieval, which types plausibly matter, the hard rule that markup must mirror visible HTML, copy-paste blocks, and validation.

Note on evidence: no AI engine publishes a documented ranking or citation weight for schema.org markup. The mechanisms below are described qualitatively and labeled unverified where the effect on AI citation is inferred rather than documented. Getspotted publishes no original dataset on schema and citation rates, so treat any vendor claiming a precise "schema lifts citations by X%" number as unsupported.

What JSON-LD does and does not do for LLM retrieval

JSON-LD is a JSON syntax for embedding schema.org vocabulary in a <script type="application/ld+json"> tag, and its documented job is telling machines which entities a page describes and how they relate. As of 2026, large language models generate answers from retrieved page text, so JSON-LD acts as a parallel, unambiguous description of that text rather than as the text an engine quotes back to a user.

Three things JSON-LD demonstrably does:

  • Disambiguates entities. An Organization block with sameAs links pins "Getspotted" to specific external profiles, which lets a retrieval system separate a brand from a same-named company in another industry.
  • Declares freshness explicitly. dateModified in an Article block states a revision date as a machine-readable ISO 8601 value, rather than leaving an engine to infer recency from a rendered byline or a footer year.
  • Feeds classic search features. Google Search Central documents structured data as the eligibility mechanism for rich results, and Google AI Overviews draws on Google's index, so schema retains a documented indirect path into one AI surface.

Three things JSON-LD does not do:

  • JSON-LD does not write the answer. LLM retrieval pipelines chunk and embed visible page text; an answer sentence is assembled from prose an engine read on the page, not from a hidden JSON payload. A page with perfect markup and thin prose still has nothing quotable.
  • JSON-LD does not create citation eligibility. Eligibility comes from crawl access and retrievable content. If PerplexityBot cannot fetch the page, no FAQPage block rescues it; see how to configure robots.txt for AI crawlers.
  • JSON-LD does not override the page. Google's structured data policies treat markup that contradicts visible content as spam, and a contradiction gives a retrieval system two conflicting facts about the same page, which is worse than shipping no markup at all.

The honest framing: schema is corroboration. When an engine already extracted an answer from your prose, matching JSON-LD confirms the date, the author and the entity behind it. That is a supporting role, and it is unverified whether any engine other than Google weights it at all. For the concept layer, see AI citations and generative engine optimization.

Five schema.org types carry most of the practical value for AI search, and the value splits between documented Google behavior (rich results, AI Overviews eligibility via the index) and inferred LLM behavior (entity resolution, freshness corroboration). As of 2026, the table below states what each type signals and whether an effect on AI citation is documented, plausible, or unverified.

Schema typeWhat it signalsDocumented Google effectPlausible AI citation effect
`Article` / `BlogPosting`Headline, author, `datePublished`, `dateModified`Article rich results, top stories eligibilityFreshness corroboration and authorship attribution. Plausible, unverified
`dateModified` (field)Machine-readable last revision dateFeeds Google freshness signalsDirect: engines favor recent sources on time-sensitive queries. Plausible, unverified
`FAQPage`Explicit question-answer pairs on the pageFAQ rich results restricted to authoritative sites since 2023Reinforces an already-extractable Q&A structure. Weak, unverified
`HowTo`Ordered steps with names and textHowTo rich results deprecated on Google SearchReinforces step extraction for procedural answers. Weak, unverified
`Organization` + `sameAs`Brand identity plus canonical external profilesKnowledge panel and entity reconciliation inputEntity disambiguation across engines. Plausible, moderate
`Product` / `Review`Product identity, price, aggregate ratingProduct rich results, merchant listingsAttribute grounding on commercial queries. Plausible, unverified
`Person` (author) + `sameAs`Author identity and external profilesAuthor entity reconciliationE-E-A-T corroboration. Plausible, unverified
`WebSite` + `SearchAction`Site-level identity and internal searchSitelinks searchboxNone known for AI citation
`BreadcrumbList`Page position in site hierarchyBreadcrumb rich resultsWeak context signal. Unverified

Two conclusions follow. First, Organization with sameAs is the highest-leverage block for AI search, because entity resolution is the one job JSON-LD does that prose does badly: a page cannot state "this brand is the same entity as this LinkedIn profile and this Crunchbase record" in a way a machine reads unambiguously, and JSON-LD can. Second, FAQPage and HowTo lost their Google rich-result payoff (Google restricted FAQ rich results in 2023 and deprecated HowTo rich results), yet they remain cheap to ship and describe structure an engine can verify against the visible page.

The point that matters more than any of these types: what gets cited is the prose. See how to structure content for AI citations for the chunking and answer-first rules that determine whether an engine has anything to quote.

The hard rule: JSON-LD must mirror visible HTML

Every fact in a JSON-LD block must appear in the rendered content of the same page, and this rule is not stylistic. Google's structured data general guidelines require markup to reflect the page's visible content and treat invisible or contradictory markup as a manual-action risk. As of 2026, the same rule protects AI citation quality, because a retrieval system that reads both sources gains nothing from a conflict and may discount the page.

The four violations that break markup:

  • Marking up content that is not on the page. A FAQPage block containing five questions when the page renders two is invisible markup. Render all five as H3 headings with visible answers, or cut the block to two.
  • Inflating dateModified. Setting dateModified to today while the prose still says "as of 2024" gives an engine a date conflict on the exact signal dateModified exists to carry. Update the content, then the date. A cosmetic date bump is a fabrication with a timestamp.
  • Claiming an author the page does not show. A Person author in JSON-LD with no visible byline, bio or author link fails the mirror rule and adds no E-E-A-T corroboration, because there is nothing on the page to corroborate.
  • Aggregate ratings without visible reviews. AggregateRating on a page displaying no reviews is the single most enforced structured data violation in Google's policies.

The practical test: for every field you emit, point at the pixel on the rendered page that says the same thing. If you cannot point at it, delete the field or render it. This is why FAQ sections on this blog are written as H3 headings with plain answers, not as hidden accordions containing markup-only text: the visible structure is what an engine chunks, and the JSON-LD only repeats it.

Copy-paste JSON-LD for Article, FAQPage and Organization

The three blocks below are the working set for a content site in 2026: Article with dateModified for freshness and authorship, FAQPage for a visible Q&A section, and Organization with sameAs for entity resolution. Each block assumes the corresponding content is rendered visibly on the page. Emit them in the document <head> or <body> as <script type="application/ld+json"> tags; both placements are valid per Google Search Central.

Article with dateModified (the freshness block).

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Schema markup for AI search: what actually helps you get cited (2026)",
"description": "Which JSON-LD types plausibly help AI citation, and what schema cannot do.",
"image": "https://example.com/og-image.jpg",
"datePublished": "2026-09-20T08:00:00+00:00",
"dateModified": "2026-09-20T08:00:00+00:00",
"author": {
"@type": "Person",
"name": "Alexis Maresca",
"url": "https://example.com/authors/alexis-maresca",
"sameAs": ["https://www.linkedin.com/in/example"]
},
"publisher": {
"@type": "Organization",
"name": "Getspotted",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/schema-markup-for-ai-search"
}
}
</script>

Three fields carry the weight. dateModified must be a real ISO 8601 revision date matching a visible "updated" line and refreshed content. author must reference a person with a visible byline and a real profile URL in sameAs (never invent a profile URL: a dead sameAs link is a broken entity claim). mainEntityOfPage must be the canonical URL, matching your <link rel="canonical">.

FAQPage (only if the questions render visibly).

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does schema markup help you get cited by AI?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Schema markup corroborates the entities, dates and authorship an AI engine already extracted from a page's visible text. It does not cause a citation, because LLMs build answers from rendered prose."
}
},
{
"@type": "Question",
"name": "Which schema type matters most for AI search?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Organization with sameAs matters most, because entity resolution is the job JSON-LD does that prose cannot do unambiguously."
}
}
]
}
</script>

The text value must repeat the visible answer, and one Question entry must exist for exactly one rendered H3 plus its answer. As of 2026, Google restricts FAQ rich results to government and health sites, so ship FAQPage for machine-readable Q&A pairing, not for a SERP feature you will not get.

Organization with sameAs (the entity block, site-wide).

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Getspotted",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"description": "AI citation API returning the sources AI engines cite per query and per country, plus the contacts behind them.",
"foundingDate": "2025",
"sameAs": [
"https://www.linkedin.com/company/example",
"https://github.com/example",
"https://www.crunchbase.com/organization/example",
"https://x.com/example"
]
}
</script>

Every sameAs URL must be a profile you actually control and that resolves to a live page naming the same organization. The @id gives the organization a stable identifier you can reference from every Article publisher field, so the whole site points at one entity node instead of repeating a loose string. Entity strategy beyond the markup (knowledge graph presence, category association, resolving an ambiguous brand name) is covered in how to build a brand entity AI engines recognize.

How to validate schema markup for AI search: a 9-point checklist

Validation catches two classes of failure: syntax errors that make a block unparseable, and mirror-rule violations that make a valid block a liability. As of 2026, two free validators cover the syntax layer (Google's Rich Results Test for Google eligibility, schema.org's own validator for vocabulary correctness), and the mirror rule can only be checked by a human reading the rendered page.

Run this checklist before shipping any JSON-LD:

  1. Parse it. Paste the block into the Schema Markup Validator and confirm zero errors. A trailing comma silently kills an entire block.
  2. Test Google eligibility. Run the live URL through the Rich Results Test to confirm Google reads the type it supports.
  3. Confirm it renders. View source or use the validator's URL mode, not the code editor, because a client-side-injected block that never executes for a crawler is not present.
  4. Mirror-check every field. For each JSON-LD value, locate the same fact in the rendered page. Delete or render any field you cannot point at.
  5. Verify dateModified is honest. Confirm the date matches a real content update and a visible "as of" or "updated" line in the prose.
  6. Resolve every sameAs URL. Open each one. A 404 in sameAs is a broken entity claim, and a link to a profile you do not control is a false one.
  7. Check @id consistency. The organization @id must be identical on every page emitting it, and the mainEntityOfPage @id must equal the canonical URL.
  8. Count FAQ entries. The number of Question objects must equal the number of visible Q&A pairs on the page. No exceptions.
  9. Re-check after the CMS ships. Content edits break markup silently, so re-run the validator when the page is republished, not only when the template was written.

The step teams skip is number 4, and it is the one that decides whether markup helps or hurts. A block that passes both validators and contradicts the page is technically valid and strategically negative.

Where schema ends and citation measurement begins

Schema markup is a page-level input, and AI citation is an engine-level outcome, so no amount of JSON-LD tells you whether ChatGPT, Perplexity, Claude or Gemini actually cited your page. As of 2026, the validators above answer "is my markup correct"; only on-engine data answers "which sources does AI cite for my queries, and am I one of them".

The layered view of how the pieces fit:

QuestionStructured data validatorsOn-engine citation tracking
Is my JSON-LD valid?YesNo
Does my markup mirror the page?Partial (manual check)No
Am I eligible for Google rich results?YesNo
Does Perplexity cite my page for a query?NoYes
Which sources does AI cite per country?NoYes
Who is the contact behind a cited source?NoYes

Getspotted is the citation layer, not a markup tool: one /search call returns the sources Google, ChatGPT, AI Overview, Perplexity, Claude and Gemini cite for a query, per country, plus the contacts behind each cited source. Schema makes a page machine-legible; citation data tells you which pages engines actually pick, including the competing sources they cite instead of you. Browse which sources AI cites for live examples, or start with the API docs if you are wiring citation data into your own monitor.

The realistic sequencing for a technical SEO team in 2026: allow the AI crawlers, structure the prose for extraction, ship Article with an honest dateModified and a site-wide Organization block with real sameAs links, validate the mirror rule, then measure citations on-engine. Schema is step three of five, and it is the cheapest of the five. Treat it as hygiene that removes ambiguity, not as the lever that wins the answer.

FAQ

Does schema markup help you get cited by AI?

Schema markup corroborates the entities, dates and authorship an AI engine already extracted from a page's visible text, so it supports a citation rather than causing one. As of 2026, no AI engine documents a citation weight for schema.org markup, and LLMs build answers from rendered prose, so a page with perfect JSON-LD and thin content still has nothing quotable.

Do LLMs read JSON-LD?

LLM retrieval pipelines primarily chunk and embed the rendered text of a page, and no major engine documents that it parses JSON-LD into its answer-generation context. As of 2026, the documented path from schema to an AI surface runs through Google's index (structured data drives rich results eligibility, and Google AI Overviews draws on that index), which makes any direct LLM parsing of JSON-LD unverified.

Organization with sameAs matters most for AI search, because entity resolution is the one job JSON-LD does that prose does badly: sameAs pins a brand name to specific external profiles a machine can reconcile. Article with dateModified ranks second, since it states a machine-readable freshness date instead of leaving an engine to infer recency.

Is FAQPage schema still worth adding in 2026?

FAQPage schema is worth adding as machine-readable Q&A pairing, not for a SERP feature: Google restricted FAQ rich results to government and health sites in 2023, so most sites get no rich result from it. As of 2026, its remaining value for AI search (reinforcing an already-extractable Q&A structure) is weak and unverified, but the block costs minutes to ship.

Does dateModified affect AI citations?

dateModified states a machine-readable last-revision date that feeds Google's freshness handling, and AI engines favor recent sources on time-sensitive queries, so an honest dateModified plausibly helps. The effect on AI citation specifically is unverified. Never bump dateModified without a real content update: a date that contradicts the prose is a conflict on the exact signal the field carries.

Can JSON-LD contain information that is not visible on the page?

No. Google's structured data guidelines require markup to reflect visible content and treat invisible or contradictory markup as a manual-action risk. As of 2026, the same rule applies to AI search: a retrieval system reading both the prose and conflicting JSON-LD gains two versions of one fact, which is worse than shipping no markup, so render every field you mark up.

Where should JSON-LD go, in the head or the body?

JSON-LD works in either the <head> or the <body> as a <script type="application/ld+json"> tag, and Google Search Central documents both placements as valid. What matters more is that the block exists in the server-rendered HTML: a block injected client-side that never executes for a crawler is not present, so validate the live URL rather than the source template.

Validate schema markup in three passes: run the block through the Schema Markup Validator for vocabulary correctness, run the live URL through the Rich Results Test for Google eligibility, then manually mirror-check every field against the rendered page. The third pass is the one teams skip and the one that decides whether the markup helps or hurts.

GEOAI visibilityschema markupJSON-LDstructured datatechnical SEO
A

Written by

Alexis Maresca

Cofounder, Getspotted · GEO & AI visibility expert

Alexis Maresca is a cofounder of Getspotted and a specialist in Generative Engine Optimization (GEO). He helps brands and agencies understand which sources AI engines like ChatGPT, Perplexity, Claude and Google AI Overviews cite, and how to get featured in AI-generated answers.

See what AI recommends to your buyers

Scan 6 AI engines in one click. Find the sources they cite. Get your brand featured.

Try Getspotted free