FAQ pages include FAQPage schema with questions and answers
Why it matters
FAQ pages with visible Q&A content but no FAQPage schema forfeit an outsized SERP feature: Google expands FAQ Rich Results below the title link, sometimes doubling the vertical SERP footprint of a single result. The schema-org FAQPage and Question types are explicitly supported by Google for this expansion. A site with 10 FAQ questions that omits schema loses this real estate to any competitor who implements it. The mismatch between visible content and schema mainEntity is a common AI-generated defect — questions get hardcoded in markup but the schema block is never updated.
Severity rationale
Medium because FAQ Rich Results expand SERP footprint significantly, but the failure affects only pages with FAQ content and doesn't break core site functionality.
Remediation
Sync your FAQ schema mainEntity array to exactly match the visible questions rendered on the page. In app/faq/page.tsx, generate the schema from the same data source that populates the UI — never maintain them separately:
const faqs = [
{ q: 'What is your return policy?', a: 'We offer 30-day returns with original receipt.' },
{ q: 'Do you ship internationally?', a: 'Yes, to 45 countries via DHL Express.' },
]
const schema = {
'@context': 'https://schema.org',
'@type': 'FAQPage',
mainEntity: faqs.map(({ q, a }) => ({
'@type': 'Question',
name: q,
acceptedAnswer: { '@type': 'Answer', text: a },
})),
}
Each Question requires both name and acceptedAnswer. Validate that schema question count matches visible page question count before deploying.
Detection
-
ID:
faq-schema -
Severity:
medium -
What to look for: Count all FAQ pages or sections that display question-and-answer content. For each, check for FAQPage schema with a
mainEntityarray of Question objects containing at leastname(question text) andacceptedAnswer(answer text). Before evaluating, extract and quote the first 2 visible FAQ questions from the page, then verify they appear in the schemamainEntityarray. -
Pass criteria: Every FAQ page or section with at least 1 visible Q&A pair includes FAQPage schema where at least 90% of visible questions have matching
mainEntityentries withnameandacceptedAnswerproperties that match the visible page content. -
Fail criteria: FAQ pages lack FAQPage schema entirely, or the schema exists but fewer than 90% of visible questions have matching
mainEntityentries. -
Skip (N/A) when: The project has no dedicated FAQ page or section with visible question-and-answer content.
-
Detail on fail:
"FAQ page has 8 visible questions but FAQPage schema contains only 3"or"FAQPage schema present but answer text differs from visible content". -
Remediation: FAQPage schema enables FAQ Rich Results in search. Add it to FAQ page components or in
app/faq/page.tsx:{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What is your return policy?", "acceptedAnswer": { "@type": "Answer", "text": "We offer 30-day returns with original receipt." } } ] }
External references
- schema-org · FAQPage — FAQPage type with mainEntity Question array
- schema-org · Question — Question with acceptedAnswer property
Taxons
History
- 2026-04-18·v1.0.0·Initial import from seo-advanced·automated