FAQPage schema audit - make your FAQ AI-citable

FAQPage schema is the single highest-ROI structured data signal for AI citation. It maps your question-answer pairs directly into the format AI Overviews, Perplexity, and Bing Copilot use when sourcing answers. Most sites get it wrong in one of three ways - a silent error that disqualifies the whole block. This page explains what correct looks like, gives you a copy-paste template, and shows the mistakes to avoid.

What FAQPage schema is and why it matters

FAQPage schema is a JSON-LD block placed in a page’s <head> that describes question-and-answer pairs in a machine-readable format. The schema.org spec defines it as a FAQPage type containing a mainEntity array of Question objects, each with an acceptedAnswer.

Google deprecated FAQ rich results (the expandable blue-link SERP feature) for most pages in 2023. The citation value did not disappear - it shifted. AI Overviews, which now appear on a significant share of informational queries, parse structured data to source their answers. Perplexity and Bing Copilot do the same. A page with correct FAQPage schema is giving AI systems a pre-formatted, pre-attributed answer block that requires zero inference to cite. That is why it remains the highest-ROI schema investment for content that answers questions.

Audit via MCP - automated schema check in Claude or Cursor

v1 - MCP tool

Run audit_schema from @automatelab/ai-seo-mcp

Install the AutomateLab AI SEO MCP server, then call audit_schema with your page URL. It checks @type correctness, mainEntity structure, Question/Answer nesting, HTML-mirroring (whether the structured data answers actually appear in rendered page text), and hidden-content flags. Works inside Claude Desktop, Cursor, and any MCP-compatible client.

Find the MCP server at /products/mcp/ai-seo/. For a quick syntax check without MCP, Google’s Rich Results Test validates the JSON-LD structure but does not catch HTML-mirroring failures - the most common real-world disqualifier.

The 4 patterns that make FAQPage schema valid

Pattern 1

Question / Answer pair structure

Every item in mainEntity must be a Question with a name (the question text) and an acceptedAnswer object typed as Answer with a text property. No shortcuts - both types must be present.

Pattern 2

@type: "FAQPage" at the root

The outer object must declare "@type": "FAQPage" and "@context": "https://schema.org". Nesting FAQPage inside another schema type (e.g., inside an Article) is valid only if the parent type supports it - most do not, and Google ignores misplaced FAQPage blocks.

Pattern 3

mainEntity array

Questions go in mainEntity as a JSON array, not as a single object. Even a single question must be wrapped in [ ]. The property name is mainEntity, not mainEntityOfPage or hasPart.

Pattern 4

HTML mirroring - visible on the page

Every question and answer in the JSON-LD must appear as visible, rendered text on the page. Google rejects schema where the structured data does not match the page body. Use a <details> / <summary> FAQ accordion - collapsed state is acceptable, hidden via display:none is not.

Copy-paste FAQPage JSON-LD template

Replace the highlighted placeholders with your own questions and answers. Add or remove Question objects inside mainEntity as needed. Make sure every answer also appears as visible HTML on the page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Your first question here?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Your answer to the first question. Write complete sentences. Do not truncate."
      }
    },
    {
      "@type": "Question",
      "name": "Your second question here?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Your answer to the second question."
      }
    },
    {
      "@type": "Question",
      "name": "Your third question here?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Your answer to the third question."
      }
    }
  ]
}
</script>
Copied

3 common mistakes that silently break eligibility

FAQ

What is FAQPage schema?

FAQPage schema is a JSON-LD block you add to a page’s <head> that marks up question-and-answer pairs in a format search engines and AI assistants can read directly. When it’s correct, Google can surface your answers inside AI Overviews and rich results without the user clicking through to your page.

Why does FAQPage schema help with AI citations?

AI Overviews (Google), Perplexity, and other AI search engines actively parse structured data to source factual answers. FAQPage schema presents your content in a machine-readable question-answer format that maps directly to how these systems store and retrieve knowledge. Pages with correct FAQPage schema are significantly more likely to be cited verbatim in AI-generated answers.

What are the most common FAQPage schema mistakes?

The three most common mistakes are: (1) using a deprecated Question structure without the required acceptedAnswer nesting; (2) mismatching the JSON-LD content with the visible HTML on the page - Google rejects schema where the answers do not appear in the rendered page; (3) marking up hidden or collapsed content that search engines cannot access - FAQs inside display:none containers or behind JavaScript-only renders often fail eligibility.

Does FAQPage schema still work in 2025 and 2026?

Yes. Google deprecated FAQ rich results in standard blue-link SERPs for most pages in 2023, but FAQPage schema remains a primary signal for AI Overviews and is actively parsed by Perplexity, Bing Copilot, and other AI search engines. The ROI shifted from visual SERP features to AI citation eligibility - which is now the higher-value outcome.

How do I audit my FAQPage schema?

Use the @automatelab/ai-seo-mcp audit_schema tool inside Claude or Cursor: pass your page URL and it checks @type correctness, mainEntity structure, Question/Answer nesting, HTML mirroring, and hidden-content flags. For a quick spot check, Google’s Rich Results Test validates the JSON-LD syntax but does not catch HTML-mirroring failures.

More AI visibility tools

Live

All tools

Calculators and reference tools for AI and automation teams.

Queued

GPTBot check

Verify that your robots.txt allows AI crawlers - or blocks them intentionally.

Queued

llms.txt validator

Check your llms.txt file structure and confirm AI agents can parse your content manifest.

Need schema implemented and audited across your site?

AutomateLab audits and implements structured data as part of AI visibility engagements. FAQPage, HowTo, Article, BreadcrumbList - we verify each type against Google’s current requirements and cross-check HTML mirroring before handing off.

Tell us what you’re working on