Schema.org for AI engines: which types actually matter
Not every schema type helps you get cited. A practical short-list of JSON-LD that drives citations in AI Overviews, Perplexity, and Claude.
Schema.org is a big vocabulary. In 2026 only a handful of types matter for AI search visibility. Implementing those well on the right pages does more for citation rate than implementing a long tail of obscure types halfheartedly across the whole site.
The short list
FAQPage on FAQ pages or long articles with genuine Q&A blocks. This is the single highest-leverage type for AEO. AI answer engines lean heavily on FAQ schema when attributing a quoted answer to a source.
HowTo on step-by-step guides. Each step needs a name and text. Optional but helpful: image, totalTime, tool, supply.
Article (or BlogPosting) on every long-form piece. Include author, datePublished, dateModified, headline, and description. Perplexity and Claude both use dateModified to decide whether to cite your piece over an older one.
Organization on the homepage. Include name, url, logo, sameAs (your social profiles), and - if you have one - foundingDate. This is how entity graphs inside AI products learn who you are.
Product with Offer on pricing and product pages. Include price, priceCurrency, and availability. AI Overviews sometimes quote current prices directly from this markup.
BreadcrumbList across all template pages. Small effort, surprisingly large help for navigation rendering in AI answer pages.
Types that are usually noise
SoftwareApplication, Thing, CreativeWork, and many of the deep sub-types are technically valid but rarely move the needle. If you are optimising time, skip them.
Implementation pattern
Inline JSON-LD in a <script type="application/ld+json"> block in the page head. One block per type per page is cleanest. Avoid @graph merges on pages that don't really need them - every parser handles flat blocks; not every parser handles the graph format gracefully.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does a Citevera audit take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Typical audits complete in 30-90 seconds."
}
}
]
}
</script>
What Citevera generates
Every Citevera scan produces proposed JSON-LD blocks keyed by page path. Paste them into the <head> of each page. The generator picks types based on what the page actually contains - if there are no Q&A blocks, you won't get FAQPage. If there is a clear pricing table, you get Product + Offer.