QAPage Schema
How to implement QAPage schema for community Q&A pages, how it differs from FAQPage and DiscussionForumPosting, its required and recommended properties, and why — unlike FAQPage — it's still an active Google rich result in 2026.
QAPage schema (schema.org/QAPage) is structured data for a page built around a single question with community-submitted answers — a forum's solved thread, a Stack Overflow page, a product-support Q&A — so Google can show it as a Q&A rich result. The freshest thing worth knowing in 2026: unlike FAQPage (deprecated May 7, 2026) and HowTo (removed by 2024), QAPage's docs carry no deprecation notice and it remains an active, supported rich result. The load-bearing distinction is authorship: FAQPage is a site-owner-authored fixed list; QAPage is a single question with answers submitted by different community members. It's built as a QAPage whose mainEntity is one Question, requiring name, answerCount, and at least one of acceptedAnswer or suggestedAnswer, with each Answer needing text (upvoteCount and a strongly-recommended url are the fields most guides underweight). Google frames QAPage as a special case of a discussion forum — 'is your forum primarily Q&A?' is its own dividing line against DiscussionForumPosting. Don't blanket-apply the template across every thread, don't mark up FAQ pages as QAPage, and don't dress up self-answered content as community Q&A. Valid markup only makes a page eligible; Google still decides whether to show the result.
Evidence for this claim Schema.org QAPage represents a page focused on one question and its answers. Scope: Schema.org QAPage vocabulary. Confidence: high · Verified: Schema.org: QAPage Evidence for this claim Google's Q&A feature is for pages where users can submit answers to a single question; FAQ and publisher-authored answer pages are not eligible under QAPage guidance. Scope: Current Google Q&A structured-data requirements and content scope. Confidence: high · Verified: Google Search Central: Q&A structured dataTL;DR — QAPage schemaQAPage schema (schema.org/QAPage) is structured data for a page built around a single question with community-submitted answers — like a forum's solved thread or a Stack Overflow page — so Google can show it as a Q&A rich result. It's distinct from FAQPage (which is site-owner-authored) and, unlike FAQPage, remains an active, supported rich result as of mid-2026. is code you add to a page that’s built around one question that different people answer — a forum thread, a “solved” support page, a Stack Overflow-style page. It labels the question and each answer so Google can show a richer Q&A listing. It is not for FAQ sections you wrote yourself (that’s FAQPage), and — good news for 2026 — unlike FAQPage, QAPage is still a supported Google feature.
What QAPage schema is
Some pages are really about a single question that a community answers. Somebody asks “How do I fix X?”, and other people post answers — one gets accepted as the solution, others get upvotes. Stack Overflow works this way. So does a forum thread marked “solved,” or a product-support page where users help each other.
QAPage schema is a small block of code — almost always JSON-LD — that spells out to a search engine what that page is: “this is the question,” “these are the answers,” “this one was accepted,” “this one has 12 upvotes.” A human reading the page can tell all that at a glance; a search engine needs it labeled.
Why it’s worth doing
The payoff is the Q&A rich result — a richer, more useful listing for community Q&A pages that can pull the question and top answer into the search result. A more informative listing can earn more clicks.
QAPage vs. FAQPage — the one thing to get right
This is where almost everyone trips. There are two similar-sounding schema typesSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor.:
- FAQPage — for a list of questions you wrote and you answered. Think a product page’s “Frequently Asked Questions” section. One author: the site owner.
- QAPage — for a single question where different users submit the answers. Community content, not your own copy.
The test is simple: who writes the answers? If it’s you, that’s FAQPage territory. If it’s your community, that’s QAPage. Google explicitly says don’t use QAPage markup on ordinary FAQ pages.
The good news for 2026
In May 2026, Google deprecated FAQPage — those rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. stopped appearing. HowTo was killed off earlier. It would be easy to assume QAPage went with them. It didn’t. QAPage is still documented and still active — no deprecation notice on its docs page. So if you run a genuine community Q&A site, this is one of the few Q&A-flavored rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. still standing.
The thing most people get wrong
- Don’t mark up your own FAQ as QAPage to dodge the FAQPage deprecation. Google reserves QAPage for genuinely user-submitted answers.
- Valid markup ≠ guaranteed rich result. It makes the page eligible; Google still decides whether to show it.
- Only mark up what’s really on the page — the question and answer text in your code has to match what a visitor actually sees.
Want the full version — required vs. recommended properties, the QAPage-vs- DiscussionForumPosting line, a worked JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. example, and the content policies that disqualify a page? Switch to the Advanced tab.
Evidence for this claim Schema.org QAPage represents a page focused on one question and its answers. Scope: Schema.org QAPage vocabulary. Confidence: high · Verified: Schema.org: QAPage Evidence for this claim Google's Q&A feature is for pages where users can submit answers to a single question; FAQ and publisher-authored answer pages are not eligible under QAPage guidance. Scope: Current Google Q&A structured-data requirements and content scope. Confidence: high · Verified: Google Search Central: Q&A structured dataTL;DR —
schema.org/QAPagemarkup (JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.) makes a page eligible for Google’s Q&A rich result. It’s aQAPagewhosemainEntityis a singleQuestion(required:name,answerCount, and at least one ofacceptedAnswer/suggestedAnswer); eachAnswerrequirestext, withupvoteCountand a strongly recommendedurlthe fields most guides underweight. The distinction from FAQPage is authorship — FAQPage is a site-owner-authored fixed list, QAPage is one question with community-submitted answers. Google frames QAPage as a special case of DiscussionForumPosting: “Does your forum follow a question and answer pattern? Use Q&A markup instead.” Don’t blanket- apply it across every thread, don’t dress up self-answered content as community Q&A, and keepAnswerdistinct fromComment. The 2026 headline: unlike FAQPage (deprecated May 7, 2026) and HowTo (gone by 2024), QAPage carries no deprecation notice and remains active. Valid markup earns eligibility; Google still decides whether to show the result.
Why QAPage still matters in 2026 — the FAQPage deprecation didn’t touch it
Start here, because it’s the freshest and most misunderstood point. Google has been retiring Q&A-adjacent rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show.:
- HowTo — restricted to desktop-only in 2023, then fully deprecated in 2024.
- FAQPage — Google added a deprecation notice to the FAQPage docs on May 7, 2026, and FAQ rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. stopped appearing in Search that day. Per Search Engine Journal’s coverage, the rollout is phased: rich results stopped May 7, 2026; Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s FAQ search-appearance filter, rich result report, and Rich Results Test support are removed in June 2026; and Search Console APIA set of REST APIs that let you programmatically read and manage Google Search Console data for properties you've verified — Performance data, URL index status, sitemaps, and properties — authorized with OAuth 2.0. support for FAQ data goes in August 2026.
QAPage was not swept up in either change. As of this research (mid-2026), the
QAPage docs
carry no deprecation banner, warning, or “Note:” callout — it’s still documented as
a distinct, supported rich-result type. That contrast is the single most
differentiated thing I can tell you about QAPage right now: FAQPage is dead, QAPage
is not, and the reason one dying doesn’t threaten the other is that they cover
genuinely different content (more on that next). If anything, Google has kept
iterating on QAPage rather than abandoning it — around October 2021 it
removed the author requirement
from suggestedAnswer, which is the opposite of a spec left to rot.
I’ll add the honest caveat: nobody at Google has publicly guaranteed QAPage’s future, and I couldn’t find a named Google rep (Mueller, Illyes, Sullivan) on record specifically about QAPage in this research. The evidence that it’s healthy is the documentation status and the ongoing maintenance, not a promise. “Google hasn’t had to publicly walk QAPage back the way it did FAQPage” is a fair read of the situation.
QAPage vs. FAQPage: the real distinction is who answers
The number of questions on the page is a red herring. The distinction is authorship:
- FAQPage = the site owner authoring a fixed list of question/answer pairs — their own content, their own answers.
- QAPage = a single question with answers submitted by different community members, potentially many answers to the one question.
Google’s eligibility language makes “user-submitted” the load-bearing phrase. The QAPage docs name the valid cases explicitly — “a forum page where users can submit answers to a single question” and “a product support page where users can submit answers to a single question” — and name the invalid ones just as explicitly: FAQ pages with no user-submission capability, pages with multiple questions, how-to guides, and blog posts. Practically, the test isn’t just who happens to have answered so far — it’s whether the page structurally lets different users submit alternative answers. A support thread where you, the site owner, wrote every reply that exists today still fits QAPage if other users can add competing answers to it; a page where only you can ever answer does not, no matter how it’s currently worded. So the temptation to relabel your own FAQ as QAPage to sidestep the FAQPage deprecation doesn’t work — it’s the exact content type QAPage forbids.
QAPage vs. DiscussionForumPosting: Google’s own dividing line
If the site owner writes a fixed list of questions and answers, use FAQPage, whose Google rich result is retired. If a community submits answers to one question, use QAPage, which remains active. If a community is holding a general discussion rather than following a one-question answer pattern, use DiscussionForumPosting, which is also active. Do not relabel an owner-authored FAQ as community Q&A.
© Patrick Stox LLC · CC BY 4.0 ·
If you run a forum, you’ve got a second, subtler decision: is a given thread a Q&A page or a discussion? Google answers this directly in its Discussion Forum docs: “Note that for most of Google’s use cases, a Q&A page is considered a special case of a discussion forum page. If the structure of the forum website is primarily questions with answers, we recommend that you use Q&A markup instead. If the structure is more general and isn’t usually question and answer content, DiscussionForumPosting would be a better choice.” The same doc gives the practical one-line test: “Does your forum follow a question and answer pattern? Use Q&A markup instead.”
So the mental model is a hierarchy: DiscussionForumPosting is the general case, and QAPage is the special case you reach for only when the structure is genuinely one question plus answers. A Reddit AMA-style “ask me anything” thread leans Q&A; a general subreddit comment thread is discussion, and belongs under DiscussionForumPosting.
Answer vs. Comment — a distinction Google actually draws
Inside a QAPage, not every reply is an Answer. Google separates:
Answer— a genuine answer to the question. These are whatacceptedAnswerandsuggestedAnswerpoint at.Comment— a clarifying remark on the question or on an existing answer. Google documentsCommentas an optional type and is explicit that it is not the same as anAnswer.
Marking every comment on an answer as another Answer inflates your answer count and
misrepresents the page — and content-mismatch is exactly the kind of thing that
attracts a structured-data manual action (below). Google’s properties mirror this
split: answerCount counts answers, commentCount counts comments, and both are
recommended on the Question (and on individual Answer/Comment objects) so the
two totals can be reconciled separately rather than lumped into one number.
Required and recommended properties
The structure is three nested types: a QAPage, its mainEntity (one Question),
and the Answer(s) hanging off that question.
QAPage level
| Property | Status | Notes |
|---|---|---|
mainEntity | Required | Must be a single Question |
Question level (mainEntity)
| Property | Status | Notes |
|---|---|---|
name | Required | ”The full text of the question in its short form” — the question title |
answerCount | Required | Total number of answers; 0 represents an unanswered question, but that question isn’t eligible for the rich result until it has at least one acceptedAnswer or suggestedAnswer |
acceptedAnswer | Required (one of) | An Answer marked as accepted; can repeat |
suggestedAnswer | Required (one of) | An Answer not marked accepted; can repeat, and can coexist with acceptedAnswer |
author, author.url | Recommended | Who asked; Google recommends marking up the author’s own page with ProfilePage structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. to help uniquely identify them |
text | Recommended | Longer-form body of the question |
upvoteCount | Recommended | Net votes on the question |
datePublished / dateModified | Recommended | When asked / last edited |
comment, commentCount | Recommended | Clarifying Comments on the question, and how many exist |
Answer level (acceptedAnswer / suggestedAnswer)
| Property | Status | Notes |
|---|---|---|
text | Required | The complete answer content |
url | Strongly recommended | Anchor link to the specific answer on the page — matters on long threads |
upvoteCount | Recommended | Votes on the answer |
author, author.url | Recommended | Who answered; same ProfilePage recommendation as the question’s author |
datePublished | Recommended | When answered |
comment, commentCount | Recommended | Clarifying Comments on this answer, and how many exist |
Three things most implementation guides get wrong or blur together. First, separate
the valid-representation rule from the eligibility rule: answerCount: 0 is a
legitimate way to represent a question nobody has answered yet, but Google’s docs are
explicit that “questions without answers aren’t eligible for the rich result” — 0
is valid markup, not valid eligibility. Second, acceptedAnswer and suggestedAnswer
are not mutually exclusive — “one of” means you need at least one, not only
one. A real page commonly has both an accepted answer and several suggested ones, and
each property can repeat (Google’s tables allow “zero or more” of each). Don’t read
the requirement as forcing a choice between them. Third, Answer.url is strongly
recommended for a reason: on a page with dozens of answers, it lets Google (and
users) deep-link straight to a specific answer rather than the top of the thread. If
you template QAPage and skip the answer anchors, you’re leaving that on the table.
Author identity. Beyond naming who asked or answered, Google recommends pointing
author.url at that person’s own page and marking that page up with ProfilePage
structured data, so the identity is unambiguous. Like every other recommended
property here, this is a recommendation, not a guarantee — it doesn’t promise a
ranking or display effect, only that Google has an easier time resolving who’s who.
Content policies and what gets a page disqualified
Valid markup isn’t the whole bar. The QAPage docs and Google’s general structured-data rules add content constraints:
- Not for FAQ pages, and not for multiple-questions-per-page. One question per QAPage. A page listing several distinct questions doesn’t qualify.
- Don’t blanket-apply across every thread. The docs are explicit: “Don’t apply
QAPagemarkup to all pages on a site or forum if not all the content is eligible.” This is the trap for forum software — dropping the same schema block on every thread URL regardless of whether that thread is actually a one-question, community-answered page. Template it conditionally, only where the page fits. - Content-visibility parity. The question and answer text in your markup must match what a human visitor sees. This is the same rule every Google rich result carries, applied here.
- Prohibited content. Obscene, sexually explicit, graphically violent, or hateful language makes the page ineligible even if the markup is technically valid.
- Manual actions. Google’s troubleshooting note: “If you received a structured
data manual action against your page, the structured data on the page will be
ignored (although the page can still appear in Google Search results).” The most
common real-world trigger for a Q&A-type structured-data manual action isn’t
QAPage-specific — it’s the general “don’t mark up content a user can’t see” rule
applied to this type (for example, marking up answers that aren’t actually on the
page, or inflating
AnswerwithCommentcontent).
And the eligibility-vs-display point that applies to all structured data: QAPage doesn’t guarantee a rich result or a ranking boost. It isn’t a ranking factor; it makes a page eligible for the Q&A rich result, and Google still decides whether to show it.
How real platforms implement it
The cleanest real-world proof point is Discourse,
the open-source forum platform. When Discourse’s team discussed adopting Google’s
then-new markup for its discourse-solved plugin (the “mark this reply as the
solution” feature), founder Sam Saffron argued for QAPage as the right fit — a major
forum-software maintainer deliberately choosing QAPage over the alternatives for
“solved” threads. That maps QAPage’s structure onto a familiar feature: the solved
reply becomes the acceptedAnswer, the other replies become suggestedAnswers, and
the vote counts become upvoteCount. If you’re building or configuring forum
software, that’s the pattern — wire the markup to the “accepted answer” mechanism you
already have, and emit it only on threads that genuinely follow the Q&A pattern.
QAPage and Education Q&A: not the same feature
One quick disambiguation, because the names collide. Google separately documents
Education Q&A structured data
— a Quiz + Question + Answer markup (with eduQuestionType: Flashcard) that
powers a flashcard-style carousel for educational topics. It’s a different feature
with a different appearance. Its own docs point single-question community pages back
to QAPage: if your page is one question followed by several user-submitted answers,
use QAPage — not Education Q&A.
Validating and testing your markup
Test QAPage markup with the Rich Results Test (which reports Q&A eligibility) and the schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. Schema Markup Validator (for pure syntax). A sane workflow: add the properties → check them against the QAPage guidelines → deploy as JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. → validate. Then, once live, watch Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. for structured-data errors and confirm the enhancement actually appears — remembering that eligibility isn’t a guarantee of display.
A note on Bing
I looked for Bing-specific QAPage documentation and didn’t find any. Bing WebmasterMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. Tools documents general JSON-LD/Microdata/RDFa structured-data support and offers a Schema MarkupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. Validator, but nothing QAPage-specific surfaced. So the honest statement is: Google is the engine with dedicated QAPage guidance and a documented Q&A rich result; Bing’s support here is comparatively undocumented. That’s a gap in what Bing has published, not a claim about how Bing — or any other system that reads schema.org markup — actually parses or displays it. Valid, schema.org-compliant markup doesn’t establish that a particular non-Google consumer uses the type; if you need to know how Bing (or anything else) treats it, that has to be verified directly against Bing’s own results, not inferred from the markup being technically valid.
Where this sits
QAPage lives in the Social & Community corner of structured data, alongside its siblings FAQPage schemaFAQPage schema (schema.org/FAQPage) is structured data for a page's frequently-asked-questions content. It used to make pages eligible for an expandable FAQ rich result in Google Search, but Google fully removed that rich result on May 7, 2026 — the markup itself stays valid schema.org vocabulary, Google says it still reads it for understanding, and Bing has announced no equivalent removal. and DiscussionForumPosting schemaDiscussionForumPosting schema (schema.org/DiscussionForumPosting) is structured data for genuinely user-generated forum and community posts, so Google can identify online discussions and consider them for the Discussions and forums and Perspectives features. It requires author, datePublished, and one of text/image/video. — the three you’ll weigh against each other constantly. For the broader vocabulary and where QAPage fits, see the Structured Data and Schema Markup hubs this article nests under.
AI summary
A condensed take on the Advanced version:
- What it is:
schema.org/QAPagemarkup (JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.) for a page built around one question with community-submitted answers — forum threads, “solved” support pages, Stack Overflow-style pages — making it eligible for Google’s Q&A rich result. - 2026 headline: unlike FAQPage (deprecated May 7, 2026, phased removal through August 2026) and HowTo (gone by 2024), QAPage carries no deprecation notice and remains active. Don’t assume it died with FAQPage; don’t relabel your own FAQ as QAPage to dodge the deprecation.
- QAPage vs. FAQPage = authorship, not question count: FAQPage is a site-owner-authored fixed list; QAPage is one question with different users’ answers. Google disallows QAPage on ordinary FAQ pages.
- QAPage vs. DiscussionForumPosting: Google frames QAPage as a special case of a discussion forum — “Does your forum follow a question and answer pattern? Use Q&A markup instead.” General discussion → DiscussionForumPosting.
- Structure & required properties: a
QAPagewhosemainEntityis oneQuestion(name,answerCount, and at least one ofacceptedAnswer/suggestedAnswer— not “only one”; both can coexist and each can repeat); eachAnswerneedstext, withurlstrongly recommended (deep-link to a specific answer) andupvoteCountrecommended.answerCount: 0validly represents an unanswered question, but that question isn’t eligible for the rich result until it has an answer. Answer≠Comment: answers are genuine responses; comments are clarifications — don’t mark comments up as answers.answerCountandcommentCountare tracked and reconciled separately.- Author identity:
author.urlon the question/answer author, plus ProfilePage markup on that author’s own page, is recommended for identity — not a ranking or display guarantee. - Content policies: one question per page; don’t blanket-apply across every thread when not all are eligible; markup must match visible content; no obscene/hateful/violent content; content-mismatch risks a structured-data manual action.
- Eligibility ≠ display: not a ranking factor; valid markup only makes the page eligible, Google decides whether to show it.
- Platform example: Discourse’s
discourse-solvedplugin (accepted reply →acceptedAnswer). - Bing: no dedicated QAPage documentation foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. — Google is the engine with a documented Q&A rich result.
Official documentation
Primary-source documentation from the search engines.
- Schema for Q&A Pages (QAPage) structured data — the authoritative reference: required/recommended properties, valid/invalid use cases, the “don’t apply to all pages” scoping rule, and content policies.
- Discussion forum (DiscussionForumPosting) structured data — the QAPage-vs-DiscussionForumPosting dividing line (“special case,” “is your forum primarily Q&A?”).
- Education Q&A structured data — the separate flashcard/quiz carousel feature that redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. single-question pages back to QAPage.
- Mark up FAQs with FAQPage structured data — now carrying the 2026 deprecation notice; useful for the contrast.
- Rich Results Test — validate the markup and check Q&A eligibility.
Schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor.
Bing / Microsoft
- Marking up your site with structured data — Bing’s general structured-data support (schema.org, JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. recommended).
Quotes from the source
On-the-record statements from Google’s documentation and from a forum-software maintainer who adopted QAPage. Where a source page exposes the text, the link is a deep link that jumps to the quoted passage.
Google docs — QAPage scope and rules
- On the required
Question.name: “The full text of the question in its short form.” — Google Search Central, QAPage docs. Jump to quote - On not templating it everywhere: “Don’t apply
QAPagemarkup to all pages on a site or forum if not all the content is eligible.” Jump to quote - On manual actions: “If you received a structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results).” Jump to quote
Google docs — QAPage vs. DiscussionForumPosting (the dividing line)
- “Note that for most of Google’s use cases, a Q&A page is considered a special case of a discussion forum page. If the structure of the forum website is primarily questions with answers, we recommend that you use Q&A markup instead. If the structure is more general and isn’t usually question and answer content, DiscussionForumPosting would be a better choice.” — Google Search Central, Discussion Forum docs. Jump to quote
- “Does your forum follow a question and answer pattern? Use Q&A markup instead.” Jump to quote
Sam Saffron, Discourse founder (Discourse Meta, forum-software implementation thread)
- Arguing for QAPage as the right markup for the
discourse-solvedplugin: “Introduce QAPage - Schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. Type which is the best anyway.” Read the thread
#:~:text= fragments should be confirmed against the live pages before being treated
as final. The Search Engine Roundtable launch-announcement page (Dec 2018) returned a
403 on direct fetch during this research, so its wording is paraphrased in the body,
not quoted here. No named Google rep (Mueller/Illyes/Sullivan) quote specifically
about QAPage was foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. — I’ve deliberately not manufactured one. QAPage cheat sheet
Which schema for which page
| Your page is… | Use | Not |
|---|---|---|
| One question, you wrote the answers (a fixed FAQ list) | FAQPage (deprecated May 2026) | QAPage |
| One question, different users submit answers | QAPage | FAQPage |
| A forum thread that’s primarily Q&A | QAPage | DiscussionForumPosting |
| A general discussion / comment thread | DiscussionForumPosting | QAPage |
| A flashcard/quiz carousel for education | Education Q&A | QAPage |
The nested structure
QAPage → mainEntity → one Question → acceptedAnswer and/or
suggestedAnswer (each an Answer).
Required properties
| Level | Required |
|---|---|
QAPage | mainEntity (a single Question) |
Question | name, answerCount, one of acceptedAnswer / suggestedAnswer |
Answer | text |
High-value recommended fields
Answer.url— strongly recommended; deep-links to a specific answer.upvoteCount— on the question and each answer.author,datePublished— on question and answers.
Fast facts
- Format: JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. (recommended).
answerCount: 0is valid markup for an unanswered question, but that question isn’t eligible for the rich result until it has an answer. You need at least one ofacceptedAnswer/suggestedAnswer— not “only one”; both can coexist and each can repeat.Answer≠Comment— comments are clarifications, not answers;answerCountandcommentCountare tracked separately.author.url+ ProfilePage markup on that page is recommended for both question and answer authors — an identity aid, not a ranking guarantee.- Don’t blanket-apply QAPage to every thread; only where the page fits.
- Content must match what’s visible; no obscene/hateful/violent content.
- 2026: QAPage is still active; FAQPage (May 2026) and HowTo (2024) are deprecated.
- Valid markup = eligible, not guaranteed to show. Not a ranking factor.
QAPage vs. FAQPage vs. DiscussionForumPosting — which one?
The three Social & Community schema typesSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. get confused constantly. Answer the questions and you’ll land on the right one, using Google’s own dividing lines.
Which schema should I use for my question/answer page?
QAPage myths and mistakes to avoid
Myth: “QAPage got killed along with FAQPage in the May 2026 deprecation.” False. They’re separate features with separate eligibility criteria and separate docs. Only FAQPage (and, earlier, HowTo) were deprecated; QAPage’s documentation carries no deprecation notice and it remains an active rich result.
Myth: “QAPage and FAQPage are interchangeable — pick whichever.” False. Google explicitly disallows QAPage on FAQ pages. The distinguishing test is authorship: single-source curated answers (FAQPage) vs. multiple community-submitted answers (QAPage). Relabeling your own FAQ as QAPage to sidestep the FAQPage deprecation is exactly the content type QAPage forbids.
Myth: “Any forum thread should use QAPage since it’s about Q&A.”
False. QAPage is the special case only when the structure is genuinely one question
with answers. General discussion/commentary threads belong under
DiscussionForumPosting, with clarifications marked as Comment, not Answer.
Mistake: applying QAPage markup site-wide across every thread template.
Explicitly warned against: “Don’t apply QAPage markup to all pages on a site or
forum if not all the content is eligible.” Template it conditionally — only where
the individual page actually qualifies.
Mistake: marking comments on an answer as more answers.
Answer is a genuine response to the question; Comment is a clarification on the
question or an existing answer. Conflating them inflates answerCount, misrepresents
the content, and risks a structured-data manual action for a content mismatch.
Mistake: marking up a multi-question page as one QAPage. QAPage is one question per page. A page listing several distinct questions doesn’t qualify — that’s neither QAPage nor (post-deprecation) FAQPage.
Mistake: markup that doesn’t match the visible page. The question and answer text in your JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. must match what a visitor sees. Marking up answers that aren’t on the page is the classic trigger for a structured-data manual action, after which Google ignores the page’s structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. entirely.
Myth: “QAPage guarantees a rich result or a ranking boost.” Overstated. Like all structured data, it makes a page eligible for the Q&A rich result; it isn’t a ranking factor, and eligibility is further limited by content-quality and language restrictions (no obscene/hateful/violent content).
Clean vs. broken QAPage JSON-LD
A clean QAPage (one question, an accepted answer, and a suggested answer)
Single question as mainEntity, a correct answerCount, one acceptedAnswer and
one suggestedAnswer, with upvoteCount and the strongly-recommended Answer.url
on each. (Simplified for clarity.)
{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "How do I redirect an old URL to a new one without losing rankings?",
"text": "We're consolidating two blog posts. What's the right redirect to keep the rankings?",
"answerCount": 2,
"author": { "@type": "Person", "name": "Dana R." },
"datePublished": "2026-05-20T09:12:00-05:00",
"upvoteCount": 8,
"acceptedAnswer": {
"@type": "Answer",
"text": "Use a 301 permanent redirect from the old URL to the new one — it passes signals and tells Google the move is permanent.",
"url": "https://example.com/community/redirect-question#answer-341",
"upvoteCount": 27,
"author": { "@type": "Person", "name": "Marcus T." },
"datePublished": "2026-05-20T10:03:00-05:00"
},
"suggestedAnswer": {
"@type": "Answer",
"text": "A rel=canonical can work if both pages stay live, but for an actual move a 301 is the clearer instruction.",
"url": "https://example.com/community/redirect-question#answer-352",
"upvoteCount": 5,
"author": { "@type": "Person", "name": "Priya S." },
"datePublished": "2026-05-20T11:40:00-05:00"
}
}
}The same page, broken
Every flagged line below is a real, common mistake:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": {
"@type": "Question",
"name": "How do I redirect an old URL to a new one?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Use a 301 redirect."
},
"suggestedAnswer": {
"@type": "Comment",
"text": "Thanks, that worked!"
}
}
}What’s wrong:
"@type": "FAQPage"on community-submitted answers — this is a QAPage; using FAQPage here is both the wrong type and now a deprecated one.- No
answerCount— it’s required on theQuestion. suggestedAnsweris aComment, not anAnswer— and “Thanks, that worked!” is a clarification, not an answer.suggestedAnswermust point at anAnswer.- No
upvoteCountand noAnswer.url—urlis strongly recommended so Google can deep-link to a specific answer on a long thread. - Nothing wrong with omitting
authoronsuggestedAnswerby itself — Google dropped that requirement in 2021 — but the missinganswerCountand the Comment-as-Answer are hard errors.
Applying it to a forum’s “solved” feature
Map the schema onto a feature you already have (the pattern Discourse’s
discourse-solved plugin follows):
- The reply marked as the solution →
acceptedAnswer. - Every other reply that answers the question → a
suggestedAnswer. - Replies that are just clarifications (“did you try X?”, “thanks!”) →
Comment, notAnswer. - The thread’s vote counts →
upvoteCounton the question and each answer. - Emit the block only on threads that follow the Q&A pattern — not on every forum URL.
Test yourself: QAPage Schema
Five quick questions on QAPage — what it’s for, how it differs from its siblings, and its required properties. Pick an answer for each, then check.
Resources worth your time
My writing on this topic
I haven’t published a standalone QAPage guide of my own, so rather than point you at something that doesn’t exist, the honest move is to send you to the primary sources below and to the related structured-data work on this site. For the broader vocabulary and where QAPage fits, see the Structured DataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. and Schema MarkupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. hubs; QAPage’s closest neighbors are the FAQPage schemaFAQPage schema (schema.org/FAQPage) is structured data for a page's frequently-asked-questions content. It used to make pages eligible for an expandable FAQ rich result in Google Search, but Google fully removed that rich result on May 7, 2026 — the markup itself stays valid schema.org vocabulary, Google says it still reads it for understanding, and Bing has announced no equivalent removal. and DiscussionForumPosting schemaDiscussionForumPosting schema (schema.org/DiscussionForumPosting) is structured data for genuinely user-generated forum and community posts, so Google can identify online discussions and consider them for the Discussions and forums and Perspectives features. It requires author, datePublished, and one of text/image/video. articles in this same Social & Community sub-cluster. For the AI angle, Schema Markup for AISchema markup (structured data) is machine-readable code — usually JSON-LD — that labels what your content means using the schema.org vocabulary. For AI search it's infrastructure for entity disambiguation, not a direct citation lever: controlled studies found no meaningful uplift in AI citations from adding it..
From around the industry
- Schema for Q&A Pages (QAPage) structured data (Google Search Central) — the authoritative reference for properties, valid/invalid uses, and content policies.
- Discussion forum structured data (Google) — the QAPage-vs-DiscussionForumPosting dividing line, quoted verbatim in the Quotes tab.
- Education Q&A structured data (Google) — the separate flashcard-carousel feature, and why single-question pages go back to QAPage.
- Google Drops FAQ Rich Results From Search (Search Engine Journal) — the 2026 FAQPage deprecation and its phased May–August timeline, which is what makes QAPage’s survival newsworthy.
- Google Changes More Structured Data Requirements (Search Engine Journal, Roger Montti, Oct 2021) — coverage of Google removing the
suggestedAnswer.authorrequirement, evidence QAPage is actively maintained. - Google launches Q&A structured data for Question & Answer pages (Search Engine Land) — the original QAPage launch coverage.
- Support schema.org QAPage and Google rich results (Discourse Meta) — a real forum-software team deliberately adopting QAPage for its
discourse-solvedplugin. - r/TechSEO — the community for structured-data and rich-result debugging.
QAPage Schema
QAPage schema (schema.org/QAPage) is structured data for a page built around a single question with community-submitted answers — like a forum's solved thread or a Stack Overflow page — so Google can show it as a Q&A rich result. It's distinct from FAQPage (which is site-owner-authored) and, unlike FAQPage, remains an active, supported rich result as of mid-2026.
Related: Structured Data, FAQPage Schema, DiscussionForumPosting Schema
QAPage Schema
QAPage schema is the schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor./QAPage structured-data vocabulary you add to a page focused on one question and its answers — usually as JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. — so search engines can read the Question (its name, answerCount, and either an acceptedAnswer and/or suggestedAnswer) and each Answer (its text, plus recommended upvoteCount, url, author, and dates). It’s built as a QAPage whose mainEntity is a single Question. Google uses it to power the Q&A rich result on community pages like forum threads and product-support “solved” pages.
The load-bearing distinction is authorship. QAPage is for pages where different users submit answers to a single question. That’s what separates it from FAQPage — where the site owner writes a fixed list of question-and-answer pairs — and it’s why Google explicitly disallows QAPage on ordinary FAQ pages. Google also frames QAPage as a special case of a discussion forum page: if a forum’s structure is primarily question-and-answer, use QAPage; if it’s more general discussion, use DiscussionForumPosting instead.
One fact makes QAPage worth revisiting in 2026: unlike FAQPage (deprecated May 7, 2026) and HowTo (removed by 2024), QAPage’s documentation carries no deprecation notice and remains an active, supported rich-result type. Valid markup only makes a page eligible; Google still decides whether to show the enhancement, and content must be genuinely user-submitted, match what visitors see, and stay clear of prohibited categories.
Related: Structured Data, FAQPage Schema, DiscussionForumPosting Schema
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 20, 2026.
Editorial summary and recorded change details.Summary
Corrected this article's own sourceUrl to the social-community subsubcluster path used by the current structured-data taxonomy.
Change details
-
Updated sourceUrl to https://patrickstox.com/technical-seo/on-page/structured-data/social-community/qapage-schema/ to match the current taxonomy.
Full comparison unavailable — no prior snapshot was archived for this revision.
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Fixed an eligibility/coexistence ambiguity in the required-properties section (answerCount: 0 vs. rich-result eligibility, and acceptedAnswer/suggestedAnswer being additive rather than either-or), added the author.url/ProfilePage and commentCount recommendations, and removed an unsupported "can't hurt on Bing" / cross-provider-parity claim, all verified live against Google's current QAPage docs.
Change details
-
Clarified that answerCount: 0 is valid markup for an unanswered question but that question is not eligible for the Q&A rich result until it has at least one acceptedAnswer or suggestedAnswer, per Google's docs ("Questions without answers aren't eligible for the rich result").
-
Corrected ambiguous wording that could be read as acceptedAnswer and suggestedAnswer being mutually exclusive — both can coexist and each can repeat.
-
Added Google's author.url + ProfilePage recommendation for question/answer authors, and the commentCount property for reconciling comments separately from answers.
-
Removed the unsupported "it can't hurt on Bing" framing and generalized the caveat to cover cross-provider/AI-parsing parity, since valid markup doesn't establish that a non-Google consumer displays anything from it.
- Before
Previously implied acceptedAnswer/suggestedAnswer were an either-or choice and didn't separate answerCount: 0's validity from rich-result eligibility.AfterNow separates valid unanswered markup from rich-result eligibility and states that acceptedAnswer and suggestedAnswer may coexist and repeat.
Full comparison unavailable — no prior snapshot was archived for this revision.