QAPage is a schema.org page type for a page whose primary content is a single user-submitted question with one or more community-submitted answers — use it when the visible page matches that shape, and use FAQPage instead when a single author is publishing an official answer.
The type is defined at schema.org/QAPage. Google's Q&A structured-data documentation is precise: QAPage is intended for community Q&A pages (think Stack Overflow, Reddit) where visitors answer a visitor's question. The mainEntity is a Question node with name, text, answerCount, and an acceptedAnswer plus optional suggestedAnswers.
For an author-authored answer page — the shape most consultancy and knowledge-base sites actually publish — Google's FAQ structured-data documentation points to FAQPage with a list of Question/acceptedAnswer pairs. Using QAPage on a first-party answer page technically works in the Rich Results Test but misrepresents the page.
Either type requires answerCount on every Question node — the Rich Results validator flags it as missing where absent, and Google's Q&A documentation lists it as required.
Two concrete rules: (1) if the answer is authored by the site's editorial team, use FAQPage or an Article with an embedded Question; (2) if the answer is a real user response, use QAPage. Never render the schema JSON with facts that are not visible in the DOM — Google's structured-data guidelines require the two to match.
QAPage vs FAQPage — pick by page shape
| Signal | QAPage | FAQPage |
|---|---|---|
| Intended shape | One user-submitted question, community answers | One publisher, list of official Q&A pairs |
| Typical example | Stack Overflow, Reddit thread | Product FAQ, consultancy answer page |
Root @type | QAPage | FAQPage |
mainEntity | Single Question | Array of Question nodes |
| Required per Question | name, text, answerCount, acceptedAnswer | name, acceptedAnswer |
| Multiple answers | Yes — acceptedAnswer + suggestedAnswers | No — one acceptedAnswer per Question |