structured-datajson-ldseoaiofaq

FAQ Structured Data (FAQPage): Complete JSON-LD Implementation Guide

What Is FAQPage Structured Data?

FAQPage structured data is a Schema.org markup that tells search engines and AI systems that your page contains a list of frequently asked questions with answers. When implemented correctly, it can trigger FAQ rich results in Google Search, displaying questions and answers directly in the search results.

Beyond traditional SEO, FAQ structured data is valuable for AI search engines like Google AI Overview, ChatGPT, and Perplexity. Well-structured Q&A content is easier for AI to parse, quote, and cite — making FAQPage markup a high-value tactic for both SEO and GEO/AIO optimization.

Google's Requirements for FAQ Rich Results

Google will consider displaying FAQ rich results when:

  • The page genuinely contains FAQ content (question-and-answer pairs)
  • Questions and answers are visible on the page (not hidden behind tabs or accordions by default)
  • Each question has exactly one answer
  • The content is not primarily promotional or advertising

Important: Since August 2023, Google has significantly reduced FAQ rich result displays for most websites. Government and health authority sites still see them, but general sites see fewer. However, the structured data itself remains useful for Bing, AI search engines, and voice assistants.

JSON-LD Implementation Code

Basic Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is SEO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "SEO (Search Engine Optimization) is the practice of improving a website's visibility in search engine results through techniques like keyword optimization, content quality improvements, and technical enhancements."
      }
    },
    {
      "@type": "Question",
      "name": "What is GEO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "GEO (Generative Engine Optimization) is the practice of optimizing your content to be cited and referenced by AI-powered search engines and answer generators. Structured data, E-E-A-T signals, and clear factual content are key strategies."
      }
    }
  ]
}
</script>

Property Reference

PropertyPurposeRequired
@type: "FAQPage"Declares the page as an FAQ pageYes
mainEntityArray of Question objectsYes
@type: "Question"Defines each questionYes
nameThe question textYes
acceptedAnswerThe Answer objectYes
@type: "Answer"Declares the answerYes
textThe answer text (HTML allowed)Yes

Implementation in Next.js / React

Here's how to implement FAQ structured data in a Next.js App Router page:

export default function FaqPage() {
  const faqs = [
    {
      question: "How is the SEO score calculated?",
      answer: "We analyze 15 technical SEO factors and score each based on its weight."
    },
    {
      question: "Is it free to use?",
      answer: "Yes, all features are available completely free of charge."
    }
  ];

  const faqJsonLd = {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    mainEntity: faqs.map((faq) => ({
      "@type": "Question",
      name: faq.question,
      acceptedAnswer: {
        "@type": "Answer",
        text: faq.answer,
      },
    })),
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(faqJsonLd) }}
      />
      {/* FAQ display components */}
    </>
  );
}

Key rule: The structured data must match what's visible on the page. Including questions in the JSON-LD that aren't displayed on the page violates Google's spam policies.

Implementation in WordPress

Using Plugins

  • Yoast SEO — provides an FAQ structured data block
  • Rank Math — has built-in FAQ Schema functionality
  • Schema Pro — GUI-based FAQ markup configuration

Manual Implementation

Add the JSON-LD script directly in your theme template file or use wp_head action in functions.php to output the structured data.

Common Errors and How to Fix Them

1. mainEntity Is Not an Array

// Wrong: object instead of array
"mainEntity": { "@type": "Question", ... }

// Correct: always use an array, even for a single question
"mainEntity": [{ "@type": "Question", ... }]

2. Missing text in acceptedAnswer

// Wrong: text property is missing
"acceptedAnswer": { "@type": "Answer" }

// Correct: always include the text property
"acceptedAnswer": { "@type": "Answer", "text": "Your answer here." }

3. Content Mismatch Between Page and Structured Data

Every Q&A pair in your structured data must have a corresponding visible element on the page. Adding invisible FAQ markup is considered structured data spam and can result in manual action penalties.

How to Validate Your Implementation

Use these tools to verify your FAQ structured data:

  1. Google Rich Results Test — check if your FAQ qualifies for rich results
  2. Schema.org Validator — catch JSON-LD syntax errors
  3. Google Search Console — monitor FAQ detection under "Enhancements"

You can also check structured data implementation using the IndexReady analyzer. Simply enter your URL to see whether FAQPage and other structured data types are properly detected.

Why FAQ Structured Data Still Matters in the AI Era

Even though Google reduced FAQ rich result displays in 2023, FAQ structured data remains valuable:

  • AI Overview: Clearly structured Q&A content is more likely to be cited as a source in AI-generated answers
  • Bing Search: Bing continues to display FAQ rich results
  • ChatGPT / Perplexity: AI systems can use structured data to better understand and reference your content
  • Voice search: Q&A format is ideal for voice assistant responses

FAQ structured data is not just an SEO tactic — it's a foundational element of GEO and AIO strategy.

Frequently Asked Questions

What is the difference between FAQPage and QAPage?

FAQPage is for content where the site owner provides both questions and answers (like a help center). QAPage is for user-generated Q&A formats where multiple users can submit answers (like Stack Overflow or Quora). For your own FAQ section, use FAQPage.

How many questions can I include on one page?

There's no technical limit, but Google prefers concise, focused FAQ sections. 5 to 10 questions per page is a practical recommendation. If you have more, consider splitting them across category-specific pages.

Why aren't my FAQ rich results showing?

Since August 2023, Google has significantly reduced FAQ rich results for general websites. Your structured data may be valid but still not trigger rich results. This is a Google-side limitation, not an error in your implementation. Keep the markup in place — it's still used by Bing and AI search engines.

Yes, the text property supports basic HTML like <a> tags and <strong>. However, avoid stuffing promotional links, as this could be flagged as spam.

Ready to check your own site?

Enter a URL to get a free SEO & GEO readiness score instantly.

Score your site for free