What Is Discussion Forum Schema?
The primary type is DiscussionForumPosting, a subtype of SocialMediaPosting. It fits forum-style pages where users collectively share first-hand perspectives. The original post is the main entity, and replies can be nested as Comment nodes that preserve the visible conversation structure.
This markup is not for publisher-authored articles, product reviews or pages that merely allow comments. It describes genuine user-generated discussion. It cannot verify that a post is true, make a community trustworthy or guarantee placement in a discussion feature.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Element | Represents | Evidence source |
|---|---|---|
| DiscussionForumPosting | Original user post | Visible thread opener |
| author | Post creator | Platform account |
| datePublished | Creation time | Moderation or post record |
| text | Complete post text | Rendered discussion |
| comment | Direct reply | Visible reply tree |
| interactionStatistic | Likes or shares on platform | Event ledger |
| url | Canonical discussion URL | Thread routing |
| isPartOf | Forum or group context | Community taxonomy |
| sharedContent | Referenced external or platform content | Visible share or quote |
- Use it only for user-generated posts.
- Represent the complete visible conversation.
- Source identities and counts from platform records.
Primary specification: Google Search discussion-forum structured data documentation.
DiscussionForumPosting schema models a real user-created conversation, not publisher content with a comment section.
How Does DiscussionForumPosting Schema Work?
A parser reads the canonical post, author, timestamp, text or media and interaction data. Direct replies can sit beneath the post; replies to comments can be nested below the relevant Comment. Stable URLs or fragments allow individual contributions to resolve to their visible location.
JSON-LD is supported, while Microdata or RDFa can reduce duplication when long user text already exists in the HTML. Regardless of format, the delivered markup must contain the same complete content. Syntax validation cannot detect moderation state, deleted content or fabricated counts.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Stage | Graph action | Failure example |
|---|---|---|
| Identify | Select original UGC post | Publisher article marked as forum |
| Attribute | Connect platform author | Site owner replaces username |
| Publish | Use real creation date | Latest comment date used as post date |
| Nest | Attach comments to correct parent | Flat list loses reply tree |
| Count | Use platform interaction ledger | External likes copied |
| Canonicalize | Set thread URL | Every pagination page claims new discussion |
| Moderate | Reflect visible approved state | Removed spam remains in graph |
- Confirm the page is a user-created discussion.
- Map the original post and author.
- Preserve comment hierarchy.
- Attach platform interaction data.
- Validate rendered and moderation states.
The graph works when it preserves the real author, content, order, nesting and canonical location of the rendered discussion.
DiscussionForumPosting vs QAPage
A thread debating SEO workflow choices is a general discussion. A page asking one technical question and accepting competing answers is closer to QAPage. A publisher-written FAQ uses neither discussion type merely because it contains questions.
Some communities mix formats. Classify each page template rather than the entire domain. If a question thread includes comments on answers, model the Q&A structure honestly instead of forcing every response into a flat forum post. Avoid using both primary types for the same entity unless the page genuinely supports a coherent relationship.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Page pattern | Best-fit type | Reason |
|---|---|---|
| Open community discussion | DiscussionForumPosting | Conversation is not one answered question |
| Experience-sharing thread | DiscussionForumPosting | First-hand perspectives |
| One question with user answers | QAPage | Answer model is primary |
| Support question accepting alternatives | QAPage | Users contribute answers |
| Publisher FAQ page | FAQPage when justified | Publisher controls multiple answers |
| Publisher blog with comments | Article | Main content is publisher-authored |
| Product review list | Review or product context | Reviews are not forum posts |
| Social feed post | SocialMediaPosting when suitable | Broader social platform context |
- Inspect the page’s primary interaction.
- Separate questions, discussions and reviews.
- Apply the type per template or content object.
Use forum markup for general UGC discussion and QAPage for one user-answerable question, never based on desired appearance alone.
Which Discussion Forum Properties Matter Most?
A text post should include the complete text found on the page. Media-first posts can rely on supported ImageObject or VideoObject relationships when the visible media is the primary content. The URL should resolve to the canonical discussion, and multi-page threads should maintain a deliberate thread-level identity.
Author nodes can link to creator profiles described with ProfilePage schema. Interaction counts should represent likes, shares or other supported actions on the hosting platform. Do not import unrelated social totals or estimated engagement.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Property | Priority | Audit question |
|---|---|---|
| author | Required for supported use | Does it identify the real platform creator? |
| datePublished | Required for supported use | Is it the original posting time? |
| text or media | Required content representation | Is the full visible post represented? |
| url | High | Does it resolve to the canonical discussion? |
| headline | Useful | Does it match the visible thread title? |
| comment | Useful | Are visible replies nested correctly? |
| interactionStatistic | Optional | Can every count be reproduced? |
| isPartOf | Optional | Does it identify the actual forum or group? |
| sharedContent | Situational | Is the referenced content visible? |
- Map the original author and time.
- Represent complete visible content.
- Set a stable discussion URL.
- Nest approved replies accurately.
- Add only reproducible platform counts.
Prioritize complete content, real authorship, timestamps and canonical identity before optional engagement enrichment.
How Should Comments and Threading Be Marked Up?
A flat chronological list loses meaning when users reply to one another. Use nested Comment relationships for threads and keep display order consistent with the interface. If the platform supports multiple sort modes, structured output should follow a stable canonical representation rather than changing identities with every sort parameter.
Deleted, hidden, quarantined and pending comments need explicit editorial rules. Do not expose private or removed text in JSON-LD. If a moderation placeholder remains visible, the graph should not secretly contain the original prohibited content.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Thread case | Markup approach | Quality check |
|---|---|---|
| Direct reply to post | Comment under original post | Parent relationship matches UI |
| Reply to comment | Nested Comment | Correct ancestor preserved |
| Deep thread | Continue tree where visible and practical | No orphan replies |
| Collapsed comment | Include only if content remains accessible | User can reveal full text |
| Deleted comment | Omit private original content | No data leak |
| Pending moderation | Do not publish as public contribution | Visibility state respected |
| Alternate sort | Keep stable canonical representation | IDs do not change by sort |
| Permalinked reply | Use stable URL or fragment | Link opens contribution |
- Preserve parent-child reply relationships.
- Respect moderation and privacy state.
- Use stable contribution permalinks.
Comment markup should reproduce the public conversation tree without leaking moderated, private or alternate-sort content.
How Should Authors and Interaction Counts Be Modeled?
A handle can change, so retain an internal identifier and stable profile URL where policy allows. Deleted or anonymous accounts require a consistent representation that does not expose private identity. Organizations can be authors when the account genuinely belongs to and speaks for that organization.
Like, share, follow and write counts need the correct InteractionCounter type and event source. Do not sum views, likes and comments into one engagement number. Bot-filtering, deleted reactions and asynchronous counters need a documented source of truth so the page and graph remain consistent.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Identity or count | Correct source | Avoid |
|---|---|---|
| Display name | Current public account record | Parsing post text |
| Identifier | Stable internal public-safe ID | Email address |
| Profile URL | Canonical public profile | Session-specific URL |
| Anonymous author | Platform’s truthful anonymous state | Deanonymization |
| Like count | Approved reaction ledger | Visible count copied before refresh |
| Share count | Hosting-platform share events | External social estimate |
| Follower count | Hosting-platform profile statistic | Totals from other networks |
| Write count | Published contribution ledger | Including drafts or spam blindly |
- Resolve stable public account identity.
- Protect private and deleted-user data.
- Define each interaction event.
- Compute counts from authoritative ledgers.
- Synchronize visible and structured totals.
Stable creator IDs and source-backed interaction counters preserve accountability without inventing popularity or exposing private users.
How Do Pagination, Canonicals and Indexing Affect Forums?
Long threads may span several URLs. Each page needs accessible navigation and a deliberate indexing strategy. The discussion’s structured URL can represent the first or canonical thread page, while comments on later pages still need crawlable paths if they are intended for discovery.
Do not canonicalize every paginated page to page one if that makes unique later content effectively disappear from discovery. Infinite-scroll interfaces need real paginated URLs or another crawlable architecture. Sort-order and tracking parameters should not generate independent forum entities.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| URL situation | SEO handling | Schema handling |
|---|---|---|
| Single-page thread | Self-canonical URL | One discussion node |
| Paginated long thread | Crawlable page series with deliberate canonicals | Stable thread identity and visible comments |
| Sort parameter | Canonical to preferred order | No new discussion ID |
| Tracking parameter | Canonical clean URL | Ignore tracking value |
| Infinite scroll | Provide crawlable paginated state | Rendered content remains discoverable |
| Comment permalink | Resolve to visible contribution | Stable comment URL |
| Merged duplicate thread | Redirect or canonical by policy | Consolidate identity |
| Deleted thread | Truthful status and user experience | Do not keep active post markup |
- Make important replies crawlable.
- Consolidate sort and tracking variants.
- Keep thread and contribution IDs stable.
A sound forum architecture preserves crawlable contribution URLs and one stable discussion identity without hiding valuable paginated content.
What Discussion Forum Schema Mistakes Are Common?
Large communities often have several renderers: desktop, mobile, app previews and cached versions. If each produces different comments or counts, the structured graph drifts. Third-party forum plugins can also duplicate custom JSON-LD or omit full text to save payload size.
Markup should not become a path around moderation. Spam, harassment, illegal content and private data remain unacceptable merely because users submitted them. Search eligibility is secondary to user safety and platform integrity.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Mistake | Risk | Correction |
|---|---|---|
| Publisher article labeled forum post | Wrong content origin | Use Article |
| Q&A thread labeled general forum | Wrong interaction model | Use QAPage |
| Replies flattened | Conversation meaning lost | Preserve nesting |
| Removed text remains in JSON-LD | Privacy or safety leak | Sync moderation output |
| Partial post text only | Incomplete content representation | Include full visible text |
| External likes copied | Unsupported interaction evidence | Use platform ledger |
| Parameter creates new @id | Identity fragmentation | Canonicalize variants |
| Duplicate plugin markup | Conflicting thread facts | Assign one graph owner |
- Classify content origin and interaction model.
- Compare public text and reply structure.
- Test moderation state leakage.
- Reconcile counters and author IDs.
- Consolidate canonical thread URLs.
Forum markup quality depends on truthful UGC classification, conversation structure, moderation integrity and stable URL identity.