FAQ content is one of the highest-value citation targets for AI systems — LLMs actively extract Q&A pairs to answer user questions directly. Without FAQPage schema (schema-org FAQPage + Question types), your FAQ is visible to humans but invisible as structured data to AI indexers. This means AI-powered search features like Google AI Overviews and Perplexity's related questions bypass your answers in favor of competitor pages that have the markup. The gap is binary: schema present means structured indexing; schema absent means the AI system has to guess at content structure, and usually doesn't.
Medium because FAQ schema absence reduces AI citation probability for high-intent Q&A content, but doesn't break site functionality or expose a security risk.
Add a FAQPage JSON-LD block to any page with FAQ content. Each visible question needs a corresponding Question entry — stale subsets (fewer than 80% of visible questions) fail the check.
// Inline in your FAQ page component
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": faqItems.map(item => ({
"@type": "Question",
"name": item.question,
"acceptedAnswer": {
"@type": "Answer",
"text": item.answer
}
}))
})}} />
Derive schema entries directly from the same data array that renders the visible FAQ, so the schema never gets out of sync. Avoid hardcoding a subset of questions.
ID: geo-readiness.ai-readable-structure.faq-schema-markup
Severity: medium
What to look for: If FAQ content exists on the site, check whether it's backed by FAQPage JSON-LD schema markup. Count all <script type="application/ld+json"> blocks in the codebase. Search for blocks containing "@type": "FAQPage" or "@type": "Question" near FAQ sections. In Next.js, also check for structured data in metadata exports or separate JSON-LD components. Count the number of FAQ questions in the schema vs. the number visible on the page.
Pass criteria: FAQ sections are backed by FAQPage JSON-LD or Microdata schema with Question and Answer items. The schema must contain at least as many Question items as the visible FAQ has questions (the schema should not be a stale subset). Count schema questions vs. visible questions — at least 80% of visible questions must have corresponding schema entries.
Fail criteria: FAQ content exists on the site but has no FAQPage schema markup (0 FAQPage schemas found). The questions and answers are visible to users but not structured for AI systems. Also fails if FAQPage schema exists but covers fewer than 80% of visible FAQ questions. Report: "X of Y visible FAQ questions have schema markup — Z% (threshold: 80%)" or "0 FAQPage schemas found".
Skip (N/A) when: No FAQ content exists on the site (this is caught by the faq-content-present check — if that check fails or skips, this one skips too).
Detail on fail: "FAQ section on /docs has 8 questions but 0 FAQPage schema markup blocks found. AI systems index FAQ schema at higher rates than unstructured Q&A." or "Homepage FAQ uses accordion component with 6 questions but no JSON-LD FAQPage schema — 0 of 6 questions have schema markup"
Cross-reference: For a deeper analysis of all structured data types (Organization, BreadcrumbList, Product, etc.) and schema validation, the Advanced SEO audit covers this in detail.
Remediation: FAQPage schema tells AI systems "this is structured Q&A content" and dramatically increases the chance of citation. Add JSON-LD:
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How do audits work?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Copy an audit prompt, paste it into your AI tool, and it runs checks against your codebase..."
}
}
]
})}} />
For comprehensive structured data coverage, the Advanced SEO audit covers schema validation in depth.