QAPage Schema, Explained: When to Use It and How to Get It Right
Understand with AI
Discuss with your preferred AI assistant
A valid QAPage has exactly one Question as its mainEntity — never multiple questions.
Google strongly prefers a single acceptedAnswer; all other replies go under suggestedAnswer.
Paste the question and answers and copy valid JSON-LD in under a minute — no code required.
QAPage structured data tells Google that a page is built around a single question with answers contributed by your community. When implemented correctly, it can earn rich results that show the question and the top answer right in the search listing — driving qualified clicks to forum threads, support pages, and discussion boards.
This guide explains what QAPage schema is, exactly when to use it (and the costly mistake of confusing it with FAQPage), the fields that matter, and how to generate valid JSON-LD in seconds.
What Is QAPage Schema?
QAPage is a schema.org type for pages where users ask a question and other users answer it — like Stack Overflow, Quora, Reddit threads, or a product Q&A widget. The page has one primary question (the mainEntity), one community-chosen acceptedAnswer, and any number of suggestedAnswer entries.
The key word is community. QAPage describes content where the visitors supply the answers, not content the site author wrote themselves.
QAPage vs FAQPage: The Distinction That Trips Everyone Up
This is the single most important thing to get right, because using the wrong type is a structured-data policy violation:
| Use QAPage when… | Use FAQPage when… |
|---|---|
| One question is answered by your users/community. | The site itself wrote both the questions and the answers. |
| Multiple answers compete; one is accepted/best. | There is exactly one official answer per question. |
| Answers have authors, upvotes, and timestamps. | Answers are editorial content, not user-generated. |
| Example: a forum thread or product question. | Example: a pricing or support FAQ section. |
Put simply: if your team wrote the answers, use FAQPage. If your users wrote them, use QAPage. Never mark up the same content as both.
The Fields That Matter
A complete QAPage entry uses these properties:
- Question.name — the question itself (required). Keep it concise and phrased as a real question.
- Question.answerCount — the total number of answers on the page, even if you only mark up the best ones.
- acceptedAnswer — the single best/community-accepted answer. Google strongly prefers pages that have one.
- suggestedAnswer — all other answers, listed as an array.
- Answer.text — the full answer body (required for each answer).
- Answer.upvoteCount — net votes; Google uses this to rank which answer to surface.
- Answer.author, url, and dateCreated — trust and freshness signals that strengthen eligibility.
How to Generate QAPage JSON-LD, Step by Step
1. Confirm the page is genuinely a Q&A page
Check that the page has one main question with user-contributed answers. If it does not, QAPage is the wrong type and the markup will be rejected.
2. Enter the question and mark the accepted answer
Paste the question text, then the answer your community accepted. The accepted answer is the one most likely to appear in the rich result, so make sure it is the genuinely best response.
3. Add the remaining answers as suggested answers
List the other replies as suggested answers, each with its author, upvote count, permalink URL, and date. Match the markup to what visitors actually see.
4. Validate and embed
Copy the generated JSON-LD into a <script type="application/ld+json"> tag in the page <head>, then run it through Google's Rich Results Test before shipping.
QAPage Best Practices
- Mirror the visible page. The marked-up text must match what users see — paraphrasing or hiding content violates Google's guidelines.
- Always include an accepted answer when one exists; it is the strongest eligibility signal.
- Keep answerCount honest — it should reflect every answer on the page, not just the ones in your markup.
- Use real upvote counts so Google can choose the most helpful answer to display.
- Re-validate after content changes so deleted or edited answers don't leave stale schema behind.
Common QAPage Mistakes
- Using QAPage for editorial FAQs (that's FAQPage) — the most frequent and most penalised error.
- Marking up more than one question under a single QAPage; QAPage expects exactly one mainEntity Question.
- Forgetting the accepted answer, which weakens rich-result eligibility.
- Letting the markup drift out of sync with the visible answers after edits.
Expert Tips
Pick QAPage or FAQPage deliberately
If your users wrote the answers, use QAPage. If your team wrote them, use FAQPage. Choosing the wrong type is the most common reason QAPage markup gets flagged, so decide before you generate anything.
Match the markup to the visible page
Google requires that the question and answer text in your schema mirror what visitors actually see. After generating the JSON-LD, run it through the Rich Results Test and confirm every answer matches the live content.
Frequently Asked Questions
What is QAPage schema used for?
QAPage schema marks up a page built around a single question answered by your community or users — like a forum thread or product Q&A. It can earn rich results that show the question and top answer directly in Google search.
What's the difference between QAPage and FAQPage?
Use QAPage when users supply the answers and one is accepted as best; use FAQPage when the site itself authored both the questions and the official answers. Marking editorial FAQs as QAPage is a policy violation.
Does a QAPage need an accepted answer?
It's not strictly required, but Google strongly prefers QAPages that include an acceptedAnswer. If your page has a community-chosen best answer, always mark it as the accepted answer to improve rich-result eligibility.
Can I have multiple questions on one QAPage?
No. A QAPage expects exactly one Question as its mainEntity. If your page lists many independent questions, that's a different content model and QAPage is not the correct type.