Q&A Structured Data: Complete Implementation Guide
QAPage structured data is designed for pages where a single question is posed and multiple users can submit answers — similar to how Stack Overflow or community forums work. When implemented correctly, QAPage markup can generate a rich result in Google that displays the top answers directly in search, dramatically increasing visibility and click-through rates. This schema type is distinct from FAQPage, which is intended for pages with multiple pre-written question-and-answer pairs.
Why Use QAPage Schema?
- Display a rich result in Google showing the top-voted answer directly in search, significantly increasing your listing's visual footprint.
- Increase click-through rates by giving searchers an immediate preview of the best answer, encouraging them to visit for the full discussion.
- Improve visibility for long-tail informational queries where users are seeking specific solutions or expert advice.
- Help search engines understand the structure of your community content, distinguishing questions from answers and identifying the best response.
- Gain a competitive advantage over Q&A pages that lack structured data, particularly in technical and support-related search results.
Required Properties
These properties are required by Google for QAPage structured data to be eligible for rich results.
| Property | Description |
|---|---|
| @type | Must be set to "QAPage" at the page level, with a "Question" entity as the mainEntity. |
| mainEntity | A Question object representing the primary question asked on the page. Each QAPage must feature exactly one question. |
| mainEntity.name | The full text of the question being asked. This should match the question as displayed on the page. |
| mainEntity.answerCount | The total number of answers submitted for this question, as an integer. |
| mainEntity.acceptedAnswer or mainEntity.suggestedAnswer | At least one Answer object is required. Use acceptedAnswer for a marked best answer, or suggestedAnswer for community-submitted answers. |
Recommended Properties
Adding these properties improves your chances of appearing in rich results and provides more context to search engines.
| Property | Description |
|---|---|
| mainEntity.text | Additional detail or body text for the question beyond the title, providing context for the query. |
| mainEntity.dateCreated | The date and time the question was originally posted, in ISO 8601 format. |
| mainEntity.author | A Person or Organization object identifying who asked the question, including their name. |
| acceptedAnswer.upvoteCount | The number of upvotes or positive reactions the answer has received, helping Google identify the most valued response. |
| acceptedAnswer.author | A Person or Organization object identifying who provided the answer, supporting authorship attribution. |
JSON-LD Example
Here is a complete QAPage structured data example you can use as a starting point. Or use our QAPage generator to create one automatically.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "How do I fix \"Crawled - currently not indexed\" in Google Search Console?",
"text": "Several pages on my site are showing the status 'Crawled - currently not indexed' in Google Search Console. The pages have unique content and are linked from the main navigation. What steps can I take to resolve this?",
"dateCreated": "2026-01-10T09:15:00+00:00",
"answerCount": 3,
"author": {
"@type": "Person",
"name": "MarkW_SEO"
},
"acceptedAnswer": {
"@type": "Answer",
"text": "This status typically means Google crawled the page but decided not to include it in the index. Common causes include thin content, duplicate content, or low perceived value. Steps to resolve: 1) Ensure each page has substantial unique content. 2) Check for near-duplicate pages using a site audit tool. 3) Strengthen internal linking to the affected pages. 4) Improve the overall quality and depth of the content. 5) Request re-indexing via Search Console after making improvements.",
"dateCreated": "2026-01-10T11:42:00+00:00",
"upvoteCount": 47,
"author": {
"@type": "Person",
"name": "Dr Emily Chen"
}
},
"suggestedAnswer": [
{
"@type": "Answer",
"text": "I had a similar issue and resolved it by consolidating thin pages into more comprehensive guides. Reducing the number of low-value pages improved the crawl budget allocation for the remaining content.",
"dateCreated": "2026-01-11T08:20:00+00:00",
"upvoteCount": 23,
"author": {
"@type": "Person",
"name": "TechSEO_Laura"
}
}
]
}
}
</script>How to Implement QAPage Schema
- 1Identify pages on your site that follow a Q&A format — a single question with multiple community or user-submitted answers. These are your candidates for QAPage markup.
- 2Create the JSON-LD block with "@type": "QAPage" and a mainEntity of type "Question" containing the question text and answer count.
- 3If the page has a designated best answer, include it as acceptedAnswer. Include all other notable answers as suggestedAnswer entries.
- 4Add author information, dates, and upvote counts to both the question and answer objects to provide Google with full context.
- 5Ensure the content in your structured data accurately reflects what is visible on the page. The question text and answer text must match.
- 6Validate using Google's Rich Results Test and monitor the Q&A appearance report in Google Search Console.
Common Mistakes to Avoid
- Using QAPage markup on FAQ-style pages where questions and answers are written by the site owner. These pages should use FAQPage markup instead.
- Including multiple questions within a single QAPage schema block. QAPage is strictly for pages featuring one primary question with multiple answers.
- Omitting the answerCount property, which is required for Google to process the Q&A rich result correctly.
- Marking an answer as acceptedAnswer when the page does not visually indicate a best or accepted answer to users.
- Applying QAPage markup to pages where the answers are not genuinely user-generated or community-sourced, violating Google's content guidelines for this type.
Testing & Validation
Before deploying your QAPage structured data, validate it using these tools:
- 1Google Rich Results Test — Paste your page URL or code snippet to check if your structured data is eligible for rich results.
- 2Schema Markup Validator — Validates your JSON-LD syntax against the schema.org specification.
- 3Google Search Console — After deployment, monitor the Enhancements report for any errors or warnings.
Frequently Asked Questions
What is the difference between QAPage and FAQPage?
QAPage is for pages where a single question is asked and multiple users can submit answers — like a forum thread. FAQPage is for pages that list multiple questions and answers authored by the site owner, such as a frequently asked questions section. Using the wrong type is a common mistake that can prevent rich results.
Can I use QAPage markup if there is only one answer?
Yes, but you must still set answerCount to 1 and include the answer as either acceptedAnswer or suggestedAnswer. Pages with more answers tend to produce richer results, but a single answer is valid.
Does the accepted answer need to be marked on the page visually?
Yes. Google requires that any answer marked as acceptedAnswer in structured data must also be clearly indicated as the best or accepted answer in the visible page content. This could be through a badge, highlight, or explicit label.
How many suggestedAnswer entries should I include?
Include all meaningful answers, but there is no strict maximum. Google will typically display only the top one or two answers in the rich result. Focus on ensuring each included answer has genuine value and matches what is shown on the page.
Can I use QAPage for product support or customer service questions?
Yes, provided the page genuinely follows the Q&A format — a single question with community or user-submitted answers. If your support page has pre-authored Q&A pairs written by your team, FAQPage is the more appropriate type.
Ready to Generate Your QAPage Schema?
Use our free generator to create valid QAPage structured data in seconds.
Open QAPage Generator