Technical

FAQPage Schema: The Complete Implementation Guide with Examples

FAQPage schema is the single highest-impact structured data type for AI citation. Here is how to implement it correctly, with working code examples for any tech stack.

Neil Walsh·June 2026·6 min read

FAQPage is the Schema.org type that encodes a list of questions and authoritative answers in machine-readable format. For AI citation, it is the single most impactful piece of structured data you can add to a page, because it directly maps to the question-and-answer format that AI retrieval systems use to generate responses.

When a user asks ChatGPT "what is the best way to do X?", the retrieval system looks for pages that have encoded answers to that question. FAQPage schema is a direct signal: "this page authoritatively answers these questions."

The basic FAQPage JSON-LD structure

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is answer engine optimization?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Answer engine optimization (AEO) is the practice of structuring content so that AI systems like ChatGPT, Claude, and Perplexity cite your site when generating responses. It focuses on schema markup, conversational content, and E-E-A-T signals."
      }
    },
    {
      "@type": "Question",
      "name": "How is AEO different from SEO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "SEO optimises for Google rankings (blue link results). AEO optimises for AI citation (direct quotes in AI-generated answers). They share technical foundations but differ on content structure, schema requirements, and how success is measured."
      }
    }
  ]
}
</script>

Implementation in Next.js (App Router)

tsx
const FAQ_SCHEMA = {
  '@context': 'https://schema.org',
  '@type': 'FAQPage',
  mainEntity: faqs.map(f => ({
    '@type': 'Question',
    name: f.q,
    acceptedAnswer: { '@type': 'Answer', text: f.a },
  })),
};

// In your component:
<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{ __html: JSON.stringify(FAQ_SCHEMA) }}
/>

Writing good FAQ content for AEO

  • Write the question exactly as a user would phrase it to an AI engine
  • Start the answer with a direct, complete response, not "it depends" or "there are many factors"
  • Keep answers between 40-150 words, long enough to be useful, short enough to be a passage
  • Use the same terminology in the answer as in the question (for retrieval matching)
  • Do not repeat the question text in the answer
  • Include 4-8 FAQs per page: more than 10 dilutes quality signals

Where to add FAQPage schema

FAQPage schema should be added to: your homepage (with FAQs about your product/service), your product or pricing pages (with questions buyers ask), blog posts (with topic FAQs at the bottom), your FAQ page (obviously), and any landing pages targeting question-based queries.

Do not add FAQPage schema to pages where the questions are not actually answered on the page. Mismatched schema (schema that claims answers exist but they do not) is a quality signal violation and can reduce citation confidence.

Frequently asked questions

Does the FAQ need to be visible on the page to use FAQPage schema?

No. FAQPage schema can be injected as JSON-LD in the HTML head without any visible FAQ section on the page. However, having the questions and answers visible to users as well as encoded in schema generally produces better results: it improves both citation rates and user experience.

Can I have FAQPage schema and Article schema on the same page?

Yes. Multiple schema types on a single page are additive. A blog post with Article + FAQPage + BreadcrumbList is completely valid and gives the page more citation surfaces than Article alone.

Free tool

See your AEO score in seconds

Paste your URL and get a full audit across all 9 AEO signals - schema, crawlers, E-E-A-T, and more.

Audit my site - it's free

Related reading

Technical

Why Schema.org markup is the single biggest lever for AI citation

May 2026
Technical

Is your robots.txt accidentally blocking ChatGPT and Claude?

May 2026