- QAPage is for pages where one user asks one question and other users answer. Forums, support communities, ProductHunt-style Q&A. NOT for brand FAQs (use FAQPage).
- Required:
mainEntityas Question withname,text,answerCount, and at least oneacceptedAnswerorsuggestedAnswer. - One Question per page, period. If the page has multiple questions, it's not a QAPage - either split or use a different schema.
- Answers have an author. Anonymous user-generated answers don't qualify - the rich result requires attribution.
- Track upvotes with
upvoteCount. Google ranks the answer voting for the SERP excerpt.
Chapter 1. Before you start
QAPage is the schema for community-driven Q&A - one user posts a question, other users answer, the community votes on the best answer. Stack Overflow, Quora, Reddit-style threads, and product support communities are the canonical use cases. It's distinct from FAQPage, which is for editorial Q&A authored by the site owner (and which Google restricted to government / healthcare in 2023).
- Confirm the page is a single user question with user answers. Multi-question support pages aren't QAPage.
- Confirm both Question and Answer have real authors. Anonymous Q&A isn't eligible.
- Decide on acceptedAnswer vs suggestedAnswer. The community-voted best answer is
acceptedAnswer(one max). Others go insuggestedAnswer(array). - Pull upvote counts from your platform. Both Question and Answer can carry
upvoteCount.
Chapter 2. QAPage vs FAQPage: the distinction that matters
| QAPage | FAQPage | |
|---|---|---|
| Who asks? | A real user | The site owner (rhetorical) |
| Who answers? | Other users (community) | The site owner |
| How many questions per page? | One | Many |
| Author required on Q and A? | Yes | No |
| Rich result restricted? | No site-type restriction | Yes - government / healthcare only since 2023 |
| AI engine ingestion | Yes | Yes |
The single biggest QAPage breakage we see in audits is sites putting QAPage schema on their editorial FAQ pages because they heard FAQPage was restricted. That's not a valid workaround - QAPage explicitly requires user-asked / user-answered content. Shipping QAPage on a brand FAQ is a policy violation that can trigger a manual action.
Chapter 3. Required and recommended properties
{
"@context": "https://schema.org",
"@type": "QAPage",
"@id": "https://forum.example.com/question/how-do-i-validate-jobposting-schema#qapage",
"mainEntity": {
"@type": "Question",
"name": "How do I validate JobPosting schema in 2026?",
"text": "I'm trying to validate JobPosting schema for our careers page. Schema.org validator passes but Google rich-result test fails. What am I missing?",
"answerCount": 4,
"upvoteCount": 12,
"datePublished": "2026-05-15T10:30:00-05:00",
"author": {
"@type": "Person",
"name": "Jane Smith"
},
"acceptedAnswer": {
"@type": "Answer",
"text": "The Schema.org validator only checks Schema.org spec compliance. Google's rich-result test additionally checks Google's policy requirements (validThrough, employmentType enum, baseSalary structure). Run both.",
"upvoteCount": 18,
"datePublished": "2026-05-15T14:22:00-05:00",
"author": {
"@type": "Person",
"name": "John Doe"
},
"url": "https://forum.example.com/question/how-do-i-validate-jobposting-schema#answer-3421"
},
"suggestedAnswer": [
{
"@type": "Answer",
"text": "Also check that the JobPosting page itself isn't blocked by robots.txt or noindex meta...",
"upvoteCount": 7,
"datePublished": "2026-05-15T15:10:00-05:00",
"author": { "@type": "Person", "name": "Alex Park" },
"url": "https://forum.example.com/question/how-do-i-validate-jobposting-schema#answer-3422"
}
]
}
}
Each Answer has a separate URL (fragment) for deep-linking. Google can choose one Answer to show in the rich result; with multiple suggestedAnswers and varying upvotes, the highest-voted answer typically wins.
Chapter 4. Modeling multiple answers and upvotes
acceptedAnswer = the question asker's chosen / community-marked best answer. Stack Overflow's green-check pattern. Maximum one per Question.
suggestedAnswer = every other answer. Array; can include zero or many. Order doesn't matter; Google ranks by upvoteCount.
If no answer has been accepted yet (open question, no green check), omit acceptedAnswer and put all answers in suggestedAnswer. Don't fake an acceptedAnswer to satisfy the rich-result eligibility; Google detects this and drops the page from the rich result.
Chapter 5. When QAPage qualifies for the rich result
Google's rich-result eligibility for QAPage requires all of:
- The page hosts user-generated Q&A (forum, community, support board).
- The question and answers have real human authors with attribution visible on the page.
- At least one answer exists.
- The Question and Answer schema matches the visible content character-for-character.
- The page is not paywalled (no auth wall hiding the Q&A).
- The Q&A isn't editorial / brand-curated.
The rich result shows the question, the highest-voted answer (or acceptedAnswer), and the answer count. Users click into your community thread to read more.
Chapter 6. Where do you place QAPage schema on the site?
One QAPage per question URL. Convention for forum URLs: /forum/question/{slug} or /q/{id}/{slug}. The QAPage schema lives in the <head> of the question detail page.
Don't ship QAPage on the forum index page (the list of recent questions). That's a list page; use ItemList referencing each QAPage by @id.
Chapter 7. The breakages we see most often
Ranked by frequency across 12 community Q&A audits:
- QAPage on editorial brand FAQ pages (workaround attempt for the FAQPage restriction). Policy violation. 8 of 12.
- Question with no
author. Anonymous Q&A doesn't qualify. 6 of 12. - Multiple questions on one QAPage, violating the one-question rule. 5 of 12.
- No
acceptedAnswerand nosuggestedAnswer- the Question has no answers attached. Rich result loses the answer excerpt. 4 of 12. - Faking
acceptedAnswerby picking one answer arbitrarily even when the community hasn't marked one. 3 of 12. - No
upvoteCount, removing Google's signal to pick the best answer to surface. 2 of 12.
We track these on running sites through our Sentry structured-data rule set.
FAQ
Can I use QAPage on my brand's editorial FAQ page now that FAQPage is restricted?
No. QAPage explicitly requires user-asked / user-answered content. Using QAPage on editorial Q&A is a policy violation. If your FAQ doesn't qualify for FAQPage (not government / healthcare), accept that you won't get the rich result and use clean H2 / H3 structure instead - AI engines and SGE still parse the content.
What if my question has no answer yet?
Ship Question alone (no acceptedAnswer, no suggestedAnswer). The page is still indexable and may rank organically, but won't qualify for the rich result until at least one answer exists.
Can the author of the Question also answer it?
Yes. The same Person can appear as Question author and Answer author. Self-Q&A is allowed in Stack Overflow tradition; the rich-result eligibility doesn't care who answers.
How do I model the question being edited?
Use dateModified on the Question. The original datePublished stays as the asked date; dateModified reflects the latest edit. Major edits sometimes warrant a new Question record entirely.
Should I include answers from deleted users?
The Answer still exists; mark the author as "anonymous" or "[deleted user]" in the body but include some Person reference. Don't drop the Answer entirely - that breaks the conversation thread and removes upvote signal.
Does QAPage work for product support pages where the company answers?
Borderline. If the support page is truly user-asked + brand-answered (one-off ticket converted to public page), QAPage works. If it's editorial FAQ rebranded as "questions our customers asked", that's FAQPage territory.
References
- Schema.org. "QAPage." schema.org/QAPage
- Schema.org. "Question." schema.org/Question
- Schema.org. "Answer." schema.org/Answer
- Google Search Central. "Q&A (QAPage) structured data." developers.google.com/search/docs/appearance/structured-data/qapage
- Google Search Central. "Changes to structured data for FAQ and How-To" (September 2023). developers.google.com/search/blog/2023/09/structured-data-changes
- Schema.org. "Schema Markup Validator." validator.schema.org