Skip to main content

FAQPage Schema Missing

Issue No: 62

Category: Structured Data & Rich Results

Issue type: Suggestion

Priority: STANDARD

Description

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.

How do we capture it

  • Detect pages with FAQ URL patterns (/faq, /help, /support) or accordion Q&A sections
  • Check JSON-LD for "@type": "FAQPage" with nested Question and acceptedAnswer

What to store

StructuredDataAudit with schemaType = FAQPage, issueNumber = 62, plus StructuredDataField rows:

FieldTypeComment
question_countintegerNumber of Question entities
has_accepted_answerbooleanAll questions have acceptedAnswer
answers_match_pagebooleanSchema Q&A matches visible page content

Core audit fields: isPresent, matchesContent, rawJson

Condition for trigger

The following rules trigger this issue:

  • Trigger Rule 1: Schema absent
    • Target Field: isPresent
    • Evaluation Logic: isPresent = false
    • Severity: STANDARD
    • Diagnostic Message: "No FAQPage schema on FAQ page"
  • Trigger Rule 2: Missing answers
    • Target Field: has_accepted_answer
    • Evaluation Logic: has_accepted_answer = false
    • Severity: STANDARD
    • Diagnostic Message: "Questions missing accepted answers"
  • Trigger Rule 3: Content mismatch
    • Target Field: answers_match_page
    • Evaluation Logic: answers_match_page = false
    • Severity: STANDARD
    • Diagnostic Message: "Schema Q&A does not match visible page content"

Sources

Long description

Google reduced FAQ rich result display in 2023, but FAQPage schema still provides strong signals for AI Overviews and voice search. The schema provides structured Q&A data that search engines can use to understand page content and provide more relevant answers.

Minimal example:

{
"@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."
}
}
]
}

Critical requirement: 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.

How to Fix

  1. Add FAQPage JSON-LD to FAQ, help, and support pages
  2. Wrap each visible Q&A item in Question / acceptedAnswer structure
  3. Sync schema dynamically from your CMS FAQ content
  4. Ensure all acceptedAnswer text is visible by default (not hidden in collapsed state)
  5. Match schema Q&A exactly to visible page content
  6. Validate at Google Rich Results Test