Working JSON-LD for the eight types that matter most for AI citation, the mistakes that quietly stop each one being read, and exactly what our audit detects, scores and can generate.
How schema support works
Schema support in our audit happens at three levels. It's important to distinguish them:
1. Detection, every schema.org type
The audit parses all JSON-LD on your pages: single objects, arrays, nested entities, and @graph knowledge-graph structures. Whatever types you use, mainstream or specialized. They're read and listed in your report.
2. Scoring: the five core families
Your Schema Markup score weights the five type families with the strongest AI-citation impact for most businesses (table below), plus datePublished/dateModified freshness. Scoring is deterministic, same input, same score, every time.
3. Fix code, any type your content calls for
Fix code is generated for your site's actual content, not from fixed templates, so it can produce any schema.org type, including specialized ones like Event, Course, Dataset, or HowTo when your pages warrant them.
Core types (scored)
| Type family | Why AI engines weight it | Score weight |
|---|
| Organization / LocalBusiness | Tells AI who you are, name, logo, contact, social profiles. The anchor for brand entity recognition and disambiguation. | 25 |
| Product | What you sell, price, availability. Required for AI shopping answers and product recommendations. | 20 |
| Article / BlogPosting / NewsArticle | Marks editorial content with authorship and dates, the freshness signals AI engines weight heavily. | 20 |
| FAQPage | Question-and-answer pairs in the exact shape AI assistants lift into responses. The highest citation-per-effort type. | 20 |
| BreadcrumbList | Page-trail context that helps AI understand your site structure and each page's place in it. | 15 |
Plus datePublished / dateModified anywhere in your JSON-LD: scored separately as content-freshness signals.
Working examples, with the parts that break
Eight types, each with JSON-LD you can paste and the errors that quietly stop it working. Structured data is how an assistant reads you as an entity rather than as prose it has to interpret. None of it guarantees a citation: markup makes a page legible, which is the precondition, not the outcome.
Jump to: Organization, LocalBusiness, Product, FAQPage, Article, BreadcrumbList, Service, SoftwareApplication
FAQPage schema
Who needs it: Any page that genuinely answers a list of questions.
What it does for AI citation: It is the closest thing to handing an assistant a pre-formatted answer. A question-and-answer pair is exactly the shape a model wants to quote, which makes this the highest-leverage type per hour of work for AI citation specifically.
Paste this into a <script type="application/ld+json"> tag in your page head and replace the values. It is valid as written.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How long does setup take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "About ten minutes. You add your domain, confirm the questions we suggest, and the first check runs immediately."
}
}]
}
What actually goes wrong
- Marking up questions that do not appear visibly on the page. That is a guidelines violation, not a shortcut.
- One-line answers. An answer too thin to stand alone is too thin to be quoted, which defeats the point.
- Putting FAQPage on a page that is not an FAQ, in the hope of rich results.
- HTML left unescaped inside the answer text, which breaks the JSON and silently kills the whole block.
Article and BlogPosting schema
Who needs it: Anything editorial: blog posts, guides, research, news.
What it does for AI citation: Freshness and authorship are two of the signals that decide whether an assistant will cite a page or pass over it. dateModified in particular is how a model tells a current answer from a stale one, and it is routinely wrong or absent.
Paste this into a <script type="application/ld+json"> tag in your page head and replace the values. It is valid as written.
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How assistants choose which sources to cite",
"datePublished": "2026-08-01T09:00:00Z",
"dateModified": "2026-08-20T14:30:00Z",
"author": {
"@type": "Person",
"name": "Jane Example",
"url": "https://example.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Example Co",
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" }
},
"mainEntityOfPage": "https://example.com/blog/how-assistants-cite"
}
What actually goes wrong
- dateModified bumped on every deploy. If it always says today, it carries no information and looks like manipulation.
- author as a bare string instead of a Person with a url. The url is what lets the author be resolved to an entity.
- headline that disagrees with the visible H1.
- Missing dateModified entirely, which leaves an assistant to guess whether a two-year-old page is current.
Extended types (detected & generatable)
These are detected on your pages and can be produced by the fix code when your content calls for them:
ServiceWebSiteWebPageHowToEventCourseDatasetRecipeJobPostingVideoObjectSoftwareApplicationReviewAggregateRatingPersonOfferContactPointImageObject
Using a type not listed here? It's still detected, detection covers the entire schema.org vocabulary, including nested @graph linked-entity structures.
An honest note on schema and citations
Structured data makes your site easy for AI systems to read and trust. It's necessary, but not sufficient. AI citations also depend on content quality, freshness, topical depth, and third-party authority. No markup guarantees a mention, and Google's own guidance says no special markup is required to appear in its AI features.
That is why schema is only part of what we score, and why every workspace also runs a live AI visibility check each week: we put real buyer questions to ChatGPT, Perplexity, Gemini, Claude and Google AI Overviews and record whether your site is actually named, rather than assuming markup equals mentions.
Before you write any markup
Check the assistants can reach your pages at all. Perfect schema on a page blocked in robots.txt does nothing.
Free AI crawler checkCommon questions
What schema types does Greater Than Services support?
Detection covers every schema.org type: the audit parses all JSON-LD on your pages, including arrays, nested entities, and @graph knowledge-graph structures. Scoring weights the five families with the strongest AI-citation impact, Organization/LocalBusiness, Product, Article/BlogPosting/NewsArticle, FAQPage, and BreadcrumbList, plus datePublished/dateModified freshness signals. Fix code is generated for your specific site and can produce any schema.org type, including specialized ones like Event, Course, Dataset, HowTo, Recipe, JobPosting, VideoObject, and SoftwareApplication.
Does Greater Than Services support advanced schema types like Dataset, Event, or Course?
Yes. The audit detects any schema.org type present on your pages, including Dataset, Event, Course, and complex @graph linked structures. Because fix code is generated for your site's actual context rather than from fixed templates, it can produce specialized types when your content calls for them. Deterministic scoring focuses on the five core families because they carry the most AI-citation weight for the vast majority of businesses.
Does adding structured data guarantee AI citations?
No, and any tool that promises that is overselling. Structured data makes your site easy for AI systems to read and trust, which is necessary but not sufficient. AI citations also depend on content quality, freshness, topical depth, and third-party authority (reviews, mentions, citations from other sites). Google's own guidance says no special markup is required to appear in its AI features. That's why we score a page on the full set of signals rather than schema alone, re-read it every week, and measure actual AI visibility, whether the assistants name your site, instead of assuming markup equals mentions.
See which schema types you're missing.
Tracked pages are re-read every week and scored on the signals assistants use. Every gap comes with the exact JSON-LD to paste in.
Open the preview