Marketing & Growth

Forum Schema Only Counts If Your Users Wrote It

DiscussionForumPosting, ProfilePage and QAPage all gate on authorship, not formatting. What qualifies on a product site, and what quietly does not.

TechLogHub Editorial
September 28, 2026
6 min read
0 views

Share Article

Two-column diagram contrasting user-written forum content that is eligible with publisher-written pages that are not

Forum Schema Only Counts If Your Users Wrote It

Quick answer: Google's three community markup types — DiscussionForumPosting, ProfilePage and QAPage — all gate on authorship, not on formatting. The docs say to use forum markup only for "a user-generated post," and Q&A markup only where "users must be able to submit answers." Your feature-request threads qualify. Your changelog, roadmap and docs pages do not, no matter how many questions they contain.

Most SaaS and directory sites implement community schema backwards. They add markup because the page looks like a discussion, then wonder why nothing appears in search. The eligibility test Google actually applies is who typed the words.

All three docs were last refreshed on 8 September 2026, which makes this a good moment to check what you have shipped against what they now say.

The authorship gate, in Google's words

The discussion forum documentation is unambiguous: "Only use DiscussionForumPosting markup to describe a user-generated post on a website," and don't use it "for content that's primarily authored by the publishers of the website or their agents." The invalid examples it lists are the two things most sites try: an article with a comments section, and user product reviews.

The Q&A documentation applies the same logic to a different surface: pages qualify where "users must be able to submit answers to the question." A support page where you wrote all the answers is not a Q&A page in Google's sense, regardless of the heading structure. And one question per page — a page with several questions is out.

This is the cleanest way to read the whole family: the markup describes a social object, not a content format. If nobody outside your company can add to the page, it is a document, and documents get Article markup.

What you actually have to supply

The required set is small, which is part of why this gets over-applied.

TypeRequiredGate
DiscussionForumPostingauthor + author.name, datePublished, one of text / image / videoUser wrote the post
CommentSame threeNested under its parent post
ProfilePagemainEntity (Person or Organization) with a namePage identifies one person or org
QAPageOne question, at least one acceptedAnswer or suggestedAnswerUsers can submit answers

Two details in the forum doc are worth more attention than the required list. First, nesting: Google asks you to nest comments under the post they relate to, and "if the forum has its own threading structure, use a tree of comments to represent its structure." A flat array of comments throws away the only information your thread structure carries.

Second, author.url should point to "a web page that uniquely identifies the author, most likely a profile page" — and the doc recommends marking that page up with ProfilePage. The two types are designed to be used together, which is also why they were updated on the same day.

Where your upvotes finally belong

If you run a feedback board or a product directory, you have vote counts and you have probably been tempted to express them as an aggregateRating. Don't — we went through why that misuse gets listings in trouble in review stars on software listings.

The forum doc gives votes a legitimate home instead. interactionStatistic supports five interaction types: LikeAction for likes and upvotes, DislikeAction for downvotes, ViewAction for views, CommentAction or ReplyAction for replies, and ShareAction for reshares. An upvote is a LikeAction on a user's post. It was never a star rating of your product.

The doc also supports sharedContent for posts that link out or embed something — a WebPage, ImageObject, VideoObject, or another posting with its own url, date, author and text. For a feedback thread that quotes a GitHub issue, that is the honest representation.

What survived, and what to infer from that

Google's structured data gallery currently documents 31 features. Discussion forum, Profile page and Q&A are all in it. FAQ is not — the removal we covered in what schema is still for after FAQ rich results is visible in the gallery itself now.

That pairing supports a reading. FAQ markup was trivially self-served: any site could write questions and answers about itself and claim the result. Forum, profile and Q&A markup all require a participant who is not you. The features that survived are the ones whose eligibility a publisher cannot manufacture alone; the one that went was the one any site could claim about itself.

Which suggests where the next cut lands, and also what to build: a real community earns markup that a content team cannot manufacture.

Applying this to a product site

Take a typical developer-tool site with docs, a changelog, a roadmap and a feedback board. Here is the honest allocation:

Feedback threads where users post and reply: DiscussionForumPosting with nested Comments, votes as LikeAction, author.url pointing at the user's profile.
User profile pages: ProfilePage with mainEntity, plus dateCreated, dateModified and sameAs.
Changelog and roadmap: you wrote these. Article, not forum.
Docs and support pages: Article or plain content. If users cannot answer, it is not a QAPage.
Category and listing pages: Breadcrumb plus the appropriate item type — a breadcrumb schema generator covers the boring half in a minute.

Note what the ProfilePage doc rules out, because it catches directories specifically: a store's main home page is invalid, and so is "an organization review site (the organization isn't associated with the website)." You cannot mark up your listing for someone else's company as that company's profile page. If you list 500 tools, those are entries in a product directory, not profiles you own.

One last practical note: markup does not rescue a thin page. The thin-pages problem applies here as much as anywhere — a thread with one post and no replies is a thread with one post and no replies, whatever JSON-LD is wrapped around it. If you want a fast sanity check on whether a community page has enough substance to be worth marking up at all, run it through an AI readability score before you write a line of schema.

Verifying it, and the part you cannot verify

Validation is the easy half. The Rich Results Test tells you whether your JSON-LD parses and whether the required properties are present, and Search Console surfaces the structured-data problems Google detects on your pages. Both of those answer a syntax question.

Neither answers the eligibility question, because the authorship gate is not machine-checkable from your markup. A validator cannot tell that the "user" who posted your 400 seeded threads is a member of your content team. That judgement gets made elsewhere, and it is the same judgement that governs whether user-generated sections help or hurt a host domain — which is the same territory as Google's scaled content abuse policy.

One useful negative finding while you scope this: Google's page on regional differences in Search features, updated 18 September 2026, lists the query types and features that are gated to specific regions — the EEA, Turkey, South Africa. Discussions and forums is not among them. So on the evidence of that page, unlike the aggregator units we looked at in aggregator units for directories, this is not a feature you are excluded from by geography. If it is not working for you, geography is not the excuse.

FAQ

Can I use DiscussionForumPosting on a blog post with comments?

No. Google lists articles authored by the site's publishers or their agents as an invalid use, even when they have a comments section. The post itself is an Article; the comments do not convert it into a forum thread.

Is QAPage markup valid for a support page I wrote myself?

No. The doc requires that users be able to submit answers, and limits the page to a single question. A page of questions you answered yourself falls outside both conditions.

How should upvotes be marked up?

As interactionStatistic with an interactionType of https://schema.org/LikeAction on the post or comment they belong to — not as an aggregateRating on your product.

Do I need ProfilePage as well as forum markup?

It is recommended rather than required. The forum doc asks that author.url resolve to a page that uniquely identifies the author, and suggests marking that page up with ProfilePage.

Does forum markup guarantee a rich result?

No. It makes your discussions legible to Google's Discussions and forums feature. Eligibility is not placement, and no structured data type has ever guaranteed an appearance.


The markup describes a community. You cannot mark your way into having one.

Stay Updated

Get the next deep dive in your inbox

Subscribe for product analysis, engineering explainers, and practical guides published on TechLogHub.

See what launched this week

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.