Geodocs.dev

QAPage Schema for AI Citations

ShareLinkedIn

Open this article in your favorite AI assistant for deeper analysis, summaries, or follow-up questions.

QAPage schema is a schema.org type for pages that contain a single user-asked question with one or more community-contributed answers; AI engines extract the question and the highest-quality answers (typically the acceptedAnswer and top-voted suggestedAnswer items) to ground citations.

TL;DR

Use QAPage when the page is structured as one user question with community answers (Stack Overflow, Quora, Reddit-style threads). Use FAQPage instead when the Q&A is editorially curated. QAPage requires a mainEntity of type Question with an acceptedAnswer and any number of suggestedAnswer items, each with author and dateCreated for AI engines to assess credibility.

Definition

QAPage is a subtype of WebPage defined by schema.org. It indicates that the page's primary content is a Q&A pair where the answers come from users other than the site editorial team. The mainEntity is a single Question, in contrast to FAQPage where mainEntity is an array of questions.

The distinction is enforced by Google. A page with multiple top-level questions is FAQPage. A page with one question and many answers is QAPage. Mixing the two on a single page fails validation.

QAPage vs FAQPage

AspectQAPageFAQPage
Primary use caseCommunity Q&AEditorial FAQ
Question count per pageOneMany
Answer sourceUsersSite editorial
Multiple answers per questionCommonDiscouraged
Vote signalsImportantN/A
ExamplesStack Overflow threadProduct FAQ page
PropertyLevelRequiredNotes
@typeRootYesQAPage
mainEntityRootYesSingle Question object
nameQuestionYesThe user's question
textQuestionRecommendedBody of the question
answerCountQuestionRecommendedTotal number of answers
upvoteCountQuestionRecommendedUp-votes on the question
acceptedAnswerQuestionRecommendedThe marked-as-accepted answer
suggestedAnswerQuestionRecommendedArray of community answers
textAnswerYesAnswer body
upvoteCountAnswerRecommendedUp-votes
downvoteCountAnswerRecommendedDown-votes
authorAnswerRecommendedPerson with name
dateCreatedAnswerRecommendedISO-8601 datetime
urlAnswerRecommendedPermalink to the answer

Working JSON-LD Example

{
  "@context": "https://schema.org",
  "@type": "QAPage",
  "mainEntity": {
    "@type": "Question",
    "name": "How does QAPage schema differ from FAQPage?",
    "text": "I'm building a community Q&A site. Should I use QAPage or FAQPage for individual question threads?",
    "answerCount": 2,
    "upvoteCount": 18,
    "author": {
      "@type": "Person",
      "name": "Asker"
    },
    "dateCreated": "2026-04-12T08:30:00Z",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Use QAPage for community-driven threads with one user question and multiple community answers. Use FAQPage when your editorial team curates the Q&A.",
      "upvoteCount": 24,
      "author": {
        "@type": "Person",
        "name": "Top Answerer"
      },
      "dateCreated": "2026-04-12T09:15:00Z",
      "url": "https://example.com/q/123#a456"
    },
    "suggestedAnswer": [
      {
        "@type": "Answer",
        "text": "Check the schema.org documentation for QAPage. The shape is intentionally different from FAQPage.",
        "upvoteCount": 7,
        "author": {
          "@type": "Person",
          "name": "Helpful Contributor"
        },
        "dateCreated": "2026-04-12T10:00:00Z",
        "url": "https://example.com/q/123#a789"
      }
    ]
  }
}

How AI Engines Use QAPage

AI engines extract the question and rank candidate answers using available signals: acceptedAnswer is treated as the primary citation candidate; suggestedAnswer items with high upvoteCount are secondary candidates. dateCreated lets the engine prefer recent answers when the topic is volatile (software versions, prices, regulations).

author improves credibility scoring when the author has a Person profile with sameAs links to authoritative profiles. Anonymous answers are still cited but ranked lower.

Real-world examples:

  • Stack Overflow uses QAPage with acceptedAnswer and ordered suggestedAnswer. AI engines frequently cite the accepted answer for technical queries.
  • Quora pages use a similar pattern. Citation rates correlate with vote counts and author credentials.
  • Reddit threads can use QAPage when the post is a question and the top comments are answers; many subreddits do not enforce this, leaving citation extraction to free-form text parsing.

Validation

  1. Google Rich Results Test confirms parseability.
  2. Schema.org Validator confirms vocabulary correctness.
  3. CI assertions:
  4. Exactly one mainEntity of type Question.
  5. Visible question text matches mainEntity.name.
  6. Visible answer bodies match acceptedAnswer.text and suggestedAnswer[*].text byte-for-byte.

Common Pitfalls

  • Using QAPage for editorial FAQ. Fails validation in Google's policy. Use FAQPage instead.
  • Multiple acceptedAnswer values. Only one is allowed. Move others to suggestedAnswer.
  • Missing author. AI engines penalize answer credibility when the author is unknown. Provide at least Person with name.
  • Stale dates. Many community pages are updated without refreshing dateCreated. AI engines may treat the answer as out-of-date and skip the citation.
  • Hidden answers. Lazy-loading answers behind JavaScript can prevent extraction by AI bots that do not render. Server-render the markup or include answers in the initial HTML.

FAQ

Q: Can a QAPage have multiple top-level questions?

No. QAPage is for one question with multiple answers. For multi-question pages use FAQPage.

Q: Should I include vote counts even if my platform does not surface them publicly?

Yes. Vote counts help AI engines rank candidate answers. Use private quality scores mapped to upvoteCount if your platform does not expose votes externally.

Q: Does QAPage influence Google rich results?

Google no longer surfaces QAPage rich results broadly, but the markup continues to inform indexing and AI citation. Treat it as an AI signal, not a rich-result feature.

Q: How does QAPage interact with Article schema?

Do not combine. Choose QAPage for community threads or Article for editorial content. Mixing produces conflicting type signals.

Related Articles

specification

Canonical Tag for AI Search

Specification for rel=canonical implementation across HTML and HTTP-header methods, with guidance on how AI engines resolve canonicals for parameterized URLs and AMP variants.

specification

Course Schema for AI Citations

Specification for Course schema markup: Course, CourseInstance, hasPart for modules, provider, offers, and AI citation patterns for 'learn X' and 'best course for Y' queries.

specification

FAQPage Schema for AI Citations

Specification for FAQPage schema markup optimized for AI citations: properties, validation rules, character limits, and post-rich-result-deprecation patterns.

Topics
Stay Updated

GEO & AI Search Insights

New articles, framework updates, and industry analysis. No spam, unsubscribe anytime.