Rudra Kasturi Inc.

Article · Forums

Discussion forum markup: how community sites tell Google which posts are user-generated

SUMMARY

Google's discussion forum documentation (last updated 8 September 2026) says to use DiscussionForumPosting only for user-generated posts, include the entire text of each post and comment on the page, nest comments under their post, and use Q&A markup instead when the forum is mostly questions with answers. The checklist is ours.

Forum posts carry first-hand experience, which is why they appear in many answers. Google’s documentation (last updated 8 September 2026 as we read it) says how a community site should describe its posts.

Best for: forum owners, community platforms and product teams with user discussion pages.

Forum markup: user-generated posts only, include the full text, nest comments, choose the right type

What Google says

  • Discussion forum markup is for forum-style sites where people share first-hand perspectives. It helps Google identify online discussions.
  • Use DiscussionForumPosting only for a user-generated post. Do not use it for content mainly written by the site’s publishers or their agents, such as an article with comments or user reviews of a product.
  • A generic social platform can use SocialMediaPosting, its parent type, with the same requirements.
  • If the forum is mostly questions with answers, Google recommends Q&A markup instead. For general discussion, DiscussionForumPosting is better.
  • Each post must include its entire text, and each Comment must include the entire text of the response if it is on that page.
  • Nest comments under the post they relate to. On multi-page threads, ideally later pages include the original post with the main page URL. If a URL is mainly about one post, use mainEntity or mainEntityOfPage.
  • Required: author (a person or organisation) and datePublished, plus one of text, image or video. headline should not duplicate or truncate the text if there is no separate title.
  • The optional digitalSourceType property distinguishes human from machine-generated content. Google supports TrainedAlgorithmicMediaDigitalSource (for example an LLM) and AlgorithmicMediaDigitalSource (for example an automatic reply bot), and assumes content is human-generated if the property is missing.
  • Google recommends Microdata or RDFa where possible, to avoid repeating large text blocks, though JSON-LD is fully supported.

What to do: step by step

StepOwnerTimeHow to checkDone when
1. Classify your page typesProduct, SEO45 minThread page, category page, question pageEach type has a markup choice
2. Use the right type per pageSEO30 minMostly Q and A? Use Q&A. Mixed? Use forum markupTypes are documented
3. Check text completenessDeveloper45 minCompare visible post text with markup textNo truncated text
4. Nest the commentsDeveloper1 to 2 hoursInspect the tree against the pageReplies sit under their posts
5. Handle multi-page threadsDeveloper1 hourPage 2 of a long threadThe original post is referenced
6. Test five thread pagesSEO30 minRich Results Test and URL InspectionRequired fields valid
7. Mark machine-generated postsCommunity lead, developer30 minDoes the platform set digitalSourceType for LLM or bot posts?Generated posts carry the right value

Common mistakes

  • Marking up a blog post written by your team as a forum post.
  • Marking up product reviews as forum posts.
  • Putting a clipped excerpt of the post in the markup.
  • Keeping spam threads indexed. See control what you share for the noindex options.

Related: author and profile pages. Markup does not guarantee that a thread appears in any feature.

Sources