QAPage Schema — Q&A Markup for One Question and Its Answers
QAPage markup is for a page with one question followed by answers that users submitted, like a forum thread. Done right, the page is eligible for Google's Q&A rich result.
Generate QAPage JSON-LDWhy Q&A markup goes wrong
- An FAQ page with several questions is marked up as QAPage. Google says that is an FAQ, not a Q&A page.
- answerCount is missing, although Google requires it.
- The newest answer is marked as accepted, but Google says sorting by date must not be used to pick top answers.
- Comments are marked up as answers, which inflates the answer count.
How SwiftSchema helps
The generator below builds one Question with its answers, as Google requires. You mark which answers are accepted; the rest become suggested answers.
It fills in answerCount from the answers you enter, lets you override it for paginated threads, and warns you when there are no answers.
What is QAPage schema?
Google describes Q&A pages as "web pages that contain data in a question and answer format, which is one question followed by its answers." You mark them up with three schema.org types:
QAPage: the page. Google only uses Question markup from pages with QAPage markup, and there must be only one QAPage per page.Question: the one question, nested under the QAPage'smainEntity.Answer: each answer, as anacceptedAnsweror asuggestedAnswerof the Question.
Google says marking up a Q&A page also helps it generate a better snippet, and that content from the answers may appear in the basic result if the rich result isn't shown.
When you can use QAPage
Google's main rule: users must be able to submit answers to the question.
| Valid | Invalid |
|---|---|
| A forum page where users can submit answers to a single question | An FAQ page written by the site itself, with no way for users to submit answers |
| A product support page where users can submit answers to a single question | A product page where users can submit multiple questions and answers on one page |
| A how-to guide, blog post, or essay that answers a question |
Other guidelines from Google:
- One question per page. Don't use QAPage for FAQ pages or pages with several questions.
- Only eligible pages. Don't add QAPage to every page of a forum if some pages aren't questions.
- Full text. Each Question and Answer must include its entire text.
- No advertising.
- Content limits. Obscene, profane, sexually explicit, or graphically violent content, promotion of dangerous or illegal activities, and hateful or harassing language may not be shown as a rich result.
Google also describes a separate case for education sites: a page where a user submitted a homework question and a single answer was provided or selected by in-house experts may be eligible for a Q&A carousel.
For a list of questions your own team wrote, use FAQPage instead.
Required and recommended properties
From Google's Q&A documentation:
Question
| Property | Required? | Notes |
|---|---|---|
name | Yes | The short form of the question, such as "How many teaspoons in a cup?" |
answerCount | Yes | The total number of answers, including ones not marked up because of pagination. Use 0 for no answers. |
acceptedAnswer or suggestedAnswer | At least one | Questions without answers aren't eligible for the rich result. |
text | Recommended | The full text of the question. |
author | Recommended | A Person or Organization, ideally with a url to their profile page. |
datePublished | Recommended | When the question was posted, in ISO 8601 format. |
upvoteCount | Recommended | Total votes. With up and down votes, use the net value (5 up and 2 down is 3). |
comment, commentCount | Recommended | Comments on the question. answerCount plus commentCount should equal all replies. |
image, video, dateModified, and digitalSourceType (for AI or bot-written content) are also recommended when they apply.
Answer
| Property | Required? | Notes |
|---|---|---|
text | Yes | The full text of the answer. If only part is marked up, Google may not show it. |
url | Recommended | A link straight to the answer, such as https://example.com/question#answer1. Google strongly recommends it. |
author | Recommended | Who wrote the answer, ideally with a profile url. |
datePublished | Recommended | When it was answered. |
upvoteCount | Recommended | Net votes on the answer. |
Accepted vs. suggested answers
acceptedAnswer: a top answer. Google says it "must represent answers that are accepted in some way on your site", such as by the question asker, a moderator, or a voting system. There can be zero or more.suggestedAnswer: every other answer. There can be zero or more.
Google says other ways of sorting answers, such as most recent, must not be used to pick top answers.
Profile pages for authors
Google recommends giving question and answer authors a url that points to their profile page on your site, and marking up that page with ProfilePage structured data.
How to build one here
- 01
Enter the short question, and the full question text from the page.
- 02
Add who asked it, when, and its vote count.
- 03
Add each answer with its full text, author, date, votes, and a link to the answer.
- 04
Tick Accepted for answers chosen by the asker, a moderator, or votes.
- 05
Leave the total answers blank to count the answers you entered, or enter the full total if answers are paginated.
- 06
Copy the JSON-LD into the question page and test it in Google’s Rich Results Test.
The generator covers the question, answers, votes, dates, and authors' names. To add author profile URLs or comments, edit the JSON to match the examples above.
Ready to build the markup?
One question, its answers, and answerCount.
Common mistakes
- Several questions on one page. That's an FAQ. Use FAQPage, or give each question its own page.
- No answerCount. Google requires it, even when it's 0.
- Partial answer text. Mark up the whole answer, not a preview.
- "Accepted" means newest. Only mark answers accepted by the asker, a moderator, or votes.
- Comments as answers. Use
commentand the Comment type. - Markup on pages users can't answer. Articles, how-to guides, and staff-written FAQs aren't Q&A pages.
Required properties
mainEntity (one Question)mainEntity.namemainEntity.answerCountmainEntity.acceptedAnswer or mainEntity.suggestedAnswermainEntity.acceptedAnswer.text (and each suggestedAnswer.text)
Recommended properties
mainEntity.textmainEntity.authormainEntity.datePublishedmainEntity.upvoteCountmainEntity.suggestedAnswer.authormainEntity.suggestedAnswer.datePublishedmainEntity.suggestedAnswer.upvoteCountmainEntity.suggestedAnswer.urlmainEntity.commentmainEntity.commentCount
{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "How do I reset the filter light on my dishwasher?",
"text": "The filter light stays on after I cleaned the filter. Is there a button combination to reset it?",
"answerCount": 2,
"upvoteCount": 14,
"datePublished": "2026-09-12T08:15-05:00",
"author": {
"@type": "Person",
"name": "Dana Reyes",
"url": "https://forum.example.com/users/dana"
},
"acceptedAnswer": {
"@type": "Answer",
"text": "Hold the Start and Heated Dry buttons together for five seconds until the light blinks twice.",
"upvoteCount": 31,
"url": "https://forum.example.com/q/1842#answer-1",
"datePublished": "2026-09-12T09:02-05:00",
"author": {
"@type": "Person",
"name": "Lee Park",
"url": "https://forum.example.com/users/lee"
}
},
"suggestedAnswer": {
"@type": "Answer",
"text": "On older models, switching the breaker off for a minute also clears the light.",
"upvoteCount": 6,
"url": "https://forum.example.com/q/1842#answer-2",
"datePublished": "2026-09-12T10:40-05:00",
"author": {
"@type": "Person",
"name": "Sam Ito",
"url": "https://forum.example.com/users/sam"
}
}
}
}{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "Which tent stakes hold best in sand?",
"text": "Camping on a beach next month. Regular stakes pulled out last time. What works?",
"answerCount": 2,
"commentCount": 1,
"datePublished": "2026-08-03T18:20-07:00",
"author": {
"@type": "Person",
"name": "Ari Cole"
},
"comment": {
"@type": "Comment",
"text": "How windy does it get there?",
"author": {
"@type": "Person",
"name": "Jo Banks"
}
},
"suggestedAnswer": [
{
"@type": "Answer",
"text": "Use wide sand stakes, or bury a stuff sack filled with sand as a deadman anchor.",
"upvoteCount": 9,
"url": "https://outdoors.example.com/q/77#a1",
"author": {
"@type": "Person",
"name": "Mo Grant"
}
},
{
"@type": "Answer",
"text": "Snow stakes work well in loose sand too.",
"upvoteCount": 3,
"url": "https://outdoors.example.com/q/77#a2",
"author": {
"@type": "Person",
"name": "Kit Lane"
}
}
]
}
}{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "Can I use a 65W charger with a 45W laptop?",
"text": "My laptop came with a 45W USB-C charger. Is it safe to use my 65W one?",
"answerCount": 0,
"datePublished": "2026-10-06T21:05-04:00",
"author": {
"@type": "Person",
"name": "Riley Moss"
}
}
}FAQs
What does Google require for QAPage markup?ShowHide
A QAPage whose mainEntity is exactly one Question, with name (the short question), answerCount, and at least one acceptedAnswer or suggestedAnswer. Each Answer needs its full text.
QAPage or FAQPage?ShowHide
QAPage is for one question where users can submit answers, such as a forum thread. Google says not to use QAPage for an FAQ written by the site itself, or for pages with several questions. Those are FAQ pages.
Do I need an accepted answer?ShowHide
No. Google requires at least one answer, either an acceptedAnswer or a suggestedAnswer. An accepted answer must be accepted in some way on your site, for example by the asker, a moderator, or votes. Sorting by most recent doesn't count.
What should answerCount be?ShowHide
The total number of answers to the question, even if only some are marked up because of pagination. For a question with no answers yet, use 0. Questions without answers aren't eligible for the rich result.
Can a product page with customer questions use QAPage?ShowHide
Not if it has several questions. Google lists a product page where users can submit multiple questions and answers on a single page as an invalid use. A product support page with one question that users answer is valid.
How do I mark up comments?ShowHide
Use the comment property with the Comment type, on the question or on an answer. Google says Answer markup is for answers, not comments, and that answerCount plus commentCount should equal the total number of replies.