Issue #62 · important
Pages with visible FAQ or Q&A sections are missing FAQPage schema.
What is this issue?
Pages with visible FAQ or Q&A sections are missing FAQPage schema. While Google reduced FAQ rich result display in 2023, the schema still provides strong signals for AI Overviews and voice search.
Without FAQPage schema:
- AI search engines can't properly understand your Q&A content
- Voice search results won't be able to provide your FAQ answers
- Structured Q&A data is not available for search engines
- Users may not find quick answers to common questions
A proper FAQPage schema should include: @type (FAQPage), mainEntity with Question entities, each having name (question text) and acceptedAnswer with Answer type containing text (answer text).
Why does it matter?
FAQPage schema is important for AI search and voice assistants:
- AI Overviews: Provides structured Q&A data that AI engines can use to answer user queries
- Voice search: Voice assistants can read FAQ answers directly from structured data
- Featured snippets: Q&A content may appear in featured snippets
- User experience: Helps search engines understand and surface your FAQ content
- Voice assistants: Enables voice assistants to provide accurate answers from your FAQ
Resolving this issue improves your SEO health score by ensuring Q&A content is properly structured for AI search and voice assistants.
How to fix it
-
Identify FAQ pages: Look for pages with FAQ URL patterns (
/faq,/help,/support) or accordion Q&A sections -
Add FAQPage JSON-LD structured data to the page's
<head>or before</body>:{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What is your return policy?", "acceptedAnswer": { "@type": "Answer", "text": "We offer 30-day returns for all products in original condition." } }, { "@type": "Question", "name": "Do you ship internationally?", "acceptedAnswer": { "@type": "Answer", "text": "Yes, we ship to over 150 countries worldwide." } } ] } -
Ensure schema matches visible content:
- The Q&A in schema must exactly match what is visible on the page
- Do not include hidden or collapsed Q&A unless expanded by default
- All
acceptedAnswertext should be visible by default
-
Sync dynamically: Update schema dynamically from your CMS FAQ content
-
Validate with Google's Rich Results Test
Notes
- Google reduced FAQ rich result display in 2023, but the schema still provides strong signals for AI Overviews and voice search
- Only use FAQPage schema for pages that actually have FAQ content
- Ensure each Question has both
name(question text) andacceptedAnswerwithtext(answer text)
Examples
Example 1: Missing FAQPage Schema on FAQ Page
Problematic state:
<!-- FAQ page without FAQPage schema -->
<html>
<head>
<title>Frequently Asked Questions - Example Store</title>
</head>
<body>
<h1>Frequently Asked Questions</h1>
<h2>What is your return policy?</h2>
<p>We offer 30-day returns for all products in original condition.</p>
<h2>Do you ship internationally?</h2>
<p>Yes, we ship to over 150 countries worldwide.</p>
</body>
</html>
Corrected state:
<!-- FAQ page with FAQPage schema -->
<html>
<head>
<title>Frequently Asked Questions - Example Store</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We offer 30-day returns for all products in original condition."
}
},
{
"@type": "Question",
"name": "Do you ship internationally?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we ship to over 150 countries worldwide."
}
}
]
}
</script>
</head>
<body>
<h1>Frequently Asked Questions</h1>
<h2>What is your return policy?</h2>
<p>We offer 30-day returns for all products in original condition.</p>
<h2>Do you ship internationally?</h2>
<p>Yes, we ship to over 150 countries worldwide.</p>
</body>
</html>
Example 2: FAQPage Schema with Multiple Questions
Corrected state:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does shipping take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Standard shipping takes 3-5 business days. Express shipping takes 1-2 business days."
}
},
{
"@type": "Question",
"name": "What payment methods do you accept?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We accept Visa, Mastercard, American Express, PayPal, and Apple Pay."
}
},
{
"@type": "Question",
"name": "Can I track my order?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, you will receive a tracking number via email once your order ships."
}
}
]
}
Example 3: Incomplete FAQPage Schema
Problematic state:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?"
}
]
}
Missing acceptedAnswer property
Corrected state:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We offer 30-day returns for all products in original condition."
}
}
]
}
How PixyScan detects this
PixyScan follows these logical steps to detect missing FAQPage schema:
-
Detect FAQ pages: The crawler identifies pages with:
- FAQ URL patterns (
/faq,/help,/support) - Visible accordion Q&A sections
- Heading text containing "FAQ", "Frequently Asked Questions", etc.
- FAQ URL patterns (
-
Extract structured data: The crawler looks for JSON-LD, Microdata, or RDFa blocks on the page
-
Check for FAQPage schema: The crawler verifies if any schema block has:
@typeset toFAQPagemainEntityproperty containingQuestionentities
-
Validate schema completeness: If FAQPage schema is found, the crawler checks for:
- Each
Questionhasnameproperty (question text) - Each
QuestionhasacceptedAnswerproperty - Each
acceptedAnswerhastextproperty (answer text) - Schema Q&A matches visible page content
- Each
-
Trigger conditions: The issue is flagged when:
- Page has FAQ content but no FAQPage schema
- FAQPage schema exists but questions are missing
acceptedAnswer - Schema Q&A does not match visible page content