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.
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.
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.
ID: seo-advanced.structured-data.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 mainEntity array of Question objects containing at least name (question text) and acceptedAnswer (answer text). Before evaluating, extract and quote the first 2 visible FAQ questions from the page, then verify they appear in the schema mainEntity array.
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 mainEntity entries with name and acceptedAnswer properties 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 mainEntity entries.
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."
}
}
]
}