DiscussionForumPosting Schema

How to implement DiscussionForumPosting structured data for forum and community content — the required properties, why Google recommends Microdata over JSON-LD here, how it differs from QAPage and FAQPage, the digitalSourceType AI-disclosure property, and whether it's still worth doing given the 2025-2026 UGC visibility pullback.

First published: Jul 1, 2026 · Last updated: Jul 20, 2026 · Advanced
demand #36 in Structured Data#66 in On-Page#285 in Technical SEO#381 on the site
1 evidence signal on this page

DiscussionForumPosting schema (schema.org/DiscussionForumPosting) is the markup you add to genuinely user-generated forum and community posts so Google can identify online discussions and consider them for the Discussions and forums and Perspectives features. Google launched it on November 27, 2023 alongside ProfilePage. It requires author, author.name, datePublished, and at least one of text/image/video on both the post and every nested Comment. Two things make it unusual: Google recommends Microdata or RDFa over JSON-LD for this specific type (to avoid duplicating large text blocks) — the opposite of its usual JSON-LD preference — and it's strictly for user-generated content, not site-authored articles or product reviews. If your forum is question-and-answer structured, Google says use Q&A markup instead. Markup only makes content considered for the features, never guaranteed. Bing has no dedicated guidance for this type. And the honest 2026 question is whether it's worth it at all, given the core-update UGC/forum visibility pullback — my answer is nuanced.

TL;DR — DiscussionForumPosting (schema.org/DiscussionForumPosting, a subtype of SocialMediaPosting) marks up genuinely user-generated forum posts so Google can identify online discussions and consider them for Discussions and forums and Perspectives. Google launched it on Nov 27, 2023 alongside ProfilePage. Required on both the post and every nested Comment: author, author.name, datePublished, and one of text/image/video. Two real outliers: Google recommends Microdata/RDFa over 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 this type specifically (to avoid duplicating large text blocks), and it’s strictly for user-generated content — not site-authored articles or product reviews. Q&A-structured forums should use Q&A markup instead. digitalSourceType discloses AI vs. human content; if omitted, Google assumes human-generated. Markup = eligibility, never guaranteed appearance. 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. added a dedicated Discussion Forum performance filter on July 8, 2025. Bing has no dedicated guidance for this type. And the honest 2026 question is whether the implementation cost is justified by your forum’s actual search visibility; markup alone cannot answer that.

Evidence for this claim Schema.org DiscussionForumPosting is a SocialMediaPosting subtype for forum discussions. Scope: Schema.org vocabulary, distinct from Google feature eligibility. Confidence: high · Verified: Schema.org: DiscussionForumPosting Evidence for this claim Google's discussion-forum feature has page-type, nesting, author, and interaction requirements and is not intended for publisher-authored articles with comments. Scope: Current Google discussion forum structured-data guidance. Confidence: high · Verified: Google Search Central: Discussion forum structured data

My general stance on schema hasn’t changed: I’m a fan of markup as long as it earns you a genuine search feature. DiscussionForumPosting is an interesting case because it does map to a real feature (Discussions and forums), but it lands in a year where the underlying content type — user-generated forum content — is under visible pressure in Google’s rankings. So this is worth doing precisely, and worth being honest about what it does and doesn’t buy you.

What it is, and why Google built it

Google announced support on Monday, November 27, 2023, in a Search Central blog post by Thomas Han. It launched two types at once — DiscussionForumPosting and its companion ProfilePage — both designed, in Google’s words, to work with “Google Search features that are designed to show first-person perspectives from social media platforms, forums, and other communities.” The point was to help Google “better identify forum sites and online discussions across the web” and feed the Perspectives and “Discussions and forums” features.

The type sits at schema.org/DiscussionForumPosting, with the hierarchy Thing > CreativeWork > Article > SocialMediaPosting > DiscussionForumPosting. If your site is more of a generic social platform than a forum, Google says the direct parent — SocialMediaPosting — can be used instead, with the same requirements.

Required properties

Google’s discussion forum structured-data documentation requires the same small set on both the top-level DiscussionForumPosting and each nested Comment:

  • author (Person or Organization) — information about who wrote the post. Google recommends following its author markup best practices so it can understand authors across features.
  • author.name (Text) — the author’s name.
  • datePublished (DateTime) — when the post was made, in ISO 8601.
  • One of text, image, or video — to represent the content of the post. The one exception: you can skip this if you’re representing a post that lives on another page via an external url (as on later pages of a paginated thread or on category pages).

Requirements by context

The floor above isn’t one flat checklist — it changes slightly depending on what you’re marking up and where:

Contextauthor + author.namedatePublishedtext/image/video
Root post, on its own discussion pageRequiredRequiredRequired
Nested Comment (evaluated the same way per reply)RequiredRequiredRequired
Post represented via an external url (later pages of a multi-page thread, category/list pages)RequiredRequiredWaived — the content-representation requirement doesn’t apply when the full post lives on the linked page instead

The exception in that third row is narrow: it applies to representing a post on another page, not to skipping content on the post’s own canonical page. Don’t generalize it into “text is optional” — on the page that’s actually the post’s home, you still need one of text, image, or video.

A minimal, valid 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 — even though, as I’ll get to, Google would rather you used Microdata here:

{
  "@context": "https://schema.org/",
  "@type": "DiscussionForumPosting",
  "headline": "How do you verify Googlebot without an IP list?",
  "author": {
    "@type": "Person",
    "name": "haecceity123",
    "url": "https://forum.example.com/users/haecceity123"
  },
  "datePublished": "2026-06-30T09:12:00-05:00",
  "text": "The full text of the original post, exactly as it appears on the page…",
  "comment": {
    "@type": "Comment",
    "author": { "@type": "Person", "name": "seonerd" },
    "datePublished": "2026-06-30T10:04:00-05:00",
    "text": "The full text of the reply, exactly as it appears on the page…"
  }
}

Eligibility comes from the required set, but the richness comes from the recommended one:

  • comment (Comment) — a response to the post. Mark up comments in the order they appear on the page.
  • commentCount (Integer) — especially useful when not every comment is present in the markup.
  • interactionStatistic (InteractionCounter) — Google supports LikeAction (upvotes), DislikeAction (downvotes), ViewAction (views), CommentAction / ReplyAction (reply count), and ShareAction (reshares). This is how you surface the engagement signals that make forum threads look alive.
  • dateModified (DateTime) — the edit timestamp. Google says if nothing has changed, there’s no need to duplicate the publish date here.
  • creativeWorkStatus (Text) — set to Deleted when a post has been removed but is kept for threading/context.
  • headline (Text) — the post title. Google’s guidance: if there isn’t a separate title, don’t duplicate or truncate the text into a headline — it says that’s not recommended for a SocialMediaPosting.
  • image / video — inline media only. Explicitly: if there aren’t any images, don’t stuff default, icon, placeholder, or author avatars into the image field.
  • isPartOf (CreativeWork or URL) — the subforum or group the post belongs to.
  • sharedContent (a CreativeWork subtype) — the primary shared, linked, or quoted content (a WebPage, ImageObject, VideoObject, or a referenced DiscussionForumPosting / Comment for quoted/reposted content).
  • author.url — a link to the author’s profile page. Google recommends marking that page up 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. — the companion type from the same launch.
  • url (URL) — the canonical URLHow search engines pick one canonical URL among duplicates and consolidate signals onto it.. In multi-page threads, set this to the first page’s URL.

Don’t try to mark up the entire schema.org spec

Because DiscussionForumPosting inherits from Article and CreativeWork, 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. spec technically allows dozens of properties Google neither documents nor uses — articleBody, wordCount, license, copyrightHolder, aggregateRating, and so on. Follow Google’s required-plus-recommended subset for SEO purposes, not the full schema.org property list. Marking up more doesn’t earn you anything here.

The digitalSourceType property: disclosing AI vs. human content

This one is newer and, I think, the property most likely to matter more over time, not less. digitalSourceType (an IPTCDigitalSourceEnumeration) is “particularly relevant for distinguishing between human and AI or other machine-generated content.” Google supports:

  • TrainedAlgorithmicMediaDigitalSource — content created by an LLMA large language model (LLM) is a deep-learning model trained on massive text corpora to predict the next token and generate human-like text. LLMs use the transformer architecture and power AI search features like Google's AI Overviews (Gemini) and Bing Copilot (GPT-4)..
  • AlgorithmicMediaDigitalSource — content from a simpler botA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. or automated reply.

The default is the important part: “If this property is not specified, Google will assume the content is human-generated.” That’s what Google documents: the default assumption and the two supported algorithmic values. It doesn’t spell out what happens beyond that — no stated moderation policy, ranking effect, or enforcement consequence for omitting it. My own read, not Google’s: as machine-authored forum content becomes more common, disclosing it here is the honest move regardless of whether Google currently does anything with the signal. If your platform generates or allows machine-authored posts, this is the honest way to label them.

Threading and nesting: marking up replies correctly

Google gives explicit patterns, and getting the structure right is most of the job:

  • Threaded (tree-structured) forums. Nest comments under the post they reply to. If the forum has its own threading structure, mirror it with a tree of comments.
  • Linear / flat forums. Nest all replies under the original post as comments. Ideally, later pages of a multi-page thread still include the original post with the main page URL.
  • Multi-page threads. Set url to the first page’s URL, and use isPartOf to point at the subforum. On later pages, you can represent posts by external url (which is the case where the one-of-text/image/video requirement is waived).

mainEntity vs. mainEntityOfPage: single-post pages vs. list pages

For a page that’s primarily about one post (a thread’s own page), use mainEntity (or mainEntityOfPage) to identify the primary DiscussionForumPosting. Google’s explicit warning: don’t mark one post as the main entity if the page isn’t actually a discussion page for that post. For list, category, or profile pages that show many posts, attach them to a Collection or ItemList instead — not a single main entity.

Why Google recommends Microdata/RDFa over JSON-LD here

This is the genuine outlier, and it catches experienced people out. For almost every other structured-data type, Google’s stated preference is JSON-LD. For this one, it says the opposite: “Unlike our general structured data preference, we recommend providing the DiscussionForumPosting markup in Microdata (or RDFa) if possible. This prevents you from needing to duplicate large text blocks inside markup. However, this is just a recommendation, and JSON-LD is still fully supported.”

The reasoning is practical: JSON-LD lives in a separate script block, so all that post and comment text has to be duplicated — once in the visible HTML, once in the JSON. For a busy thread with hundreds of long comments, that’s a lot of repeated bytes. Microdata and RDFa annotate the existing HTML in place, so there’s no duplication.

Here’s my honest read: this is a legitimate, documented Google preference and worth knowing — but I’m not telling you to rip JSON-LD out of your site. This recommendation is scoped to this type, for the specific reason of text duplication, and Google is clear that JSON-LD is still fully supported. In practice, plenty of implementers ship this type as JSON-LD anyway because their platform already emits everything else that way, and it works. So: prefer Microdata/RDFa for large forum threads if you can do it cleanly; use JSON-LD if that’s what your stack does and the duplication isn’t a real problem. Don’t overreact to the outlier by changing your whole site’s approach.

Content eligibility: what counts as “genuinely user-generated”

This is the gate. Google: “Only use DiscussionForumPosting markup to describe a user-generated post on a website. Don’t use this markup for content that’s primarily authored by the publishers of the website or their agents.”

Valid use cases from the docs: a community forum where users talk about a game; a generic forum platform hosting varied subforum content; a social platform where users post and reply.

Invalid use cases, named explicitly: “An article or blog written directly by an agent for the website (even with comments)” and “User reviews about a product.” A blog post with a comment section is still a blog post — not a discussion forum. And product reviews belong in review markupReview schema (schema.org/Review) is structured data for a single critic's or user's evaluation of one specific thing — one author, one itemReviewed, one reviewRating — distinct from AggregateRating, which summarizes many reviews into an average., not here.

One more requirement people skip: completeness. Google wants “the entire text of the post” and “the entire text of the response” for each comment present on the page — not a summary or a truncation.

Distinguishing it from QAPage and FAQPage

Three sibling types get confused constantly, and the decision matters:

  • DiscussionForumPosting — general, open-ended forum and community discussion. No single “correct” answer structure.
  • QAPage — for pages built around a question with user-submitted answers (think a Stack Overflow-style thread). Google’s decision rule is direct: if your forum is structured by a question followed by answers, use Q&A markup instead. Google actually updated its Q&A documentation at the same time it launched this type, specifically to align the two.
  • FAQPage — for a list of questions and answers about a single entity, authored by the site itself (an official FAQ), not user discussion.

The one-line version: user discussion → DiscussionForumPosting; user Q&A → QAPage; your own official FAQ → FAQPage. And don’t stack DiscussionForumPosting and QAPage on the same page. The Decision Trees tab walks a mixed-forum case where different subforums call for different types.

Choose from the authorship and page shape: owner FAQ, one-question community Q&A, or general community discussion. Source: /technical-seo/on-page/structured-data/social-community/qapage-schema/

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 ·

Perspectives, Discussions and forums — and “considered for,” not guaranteed

Here’s the expectation-setting that matters most. From the launch post: “Forums with this markup are considered for having their content appear in the Perspective and ‘Discussions and forums’ features. However, the use of the markup does not guarantee appearance.”

Read that literally. Correct, complete markup makes your content eligible — it’s in the running for those features. It does not force inclusion, and it is not a ranking signal for ordinary web results. If someone sells you on “add this schema and your forum will show up in Discussions and forums,” that’s the myth Google’s own wording rules out.

Measuring it: the Search Console filter

The most concrete, measurable payoff arrived on July 8, 2025, when Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. added “Discussion Forum” as its own distinct search-appearance filter in the Performance reportThe Google Search Console report that shows how your site actually performed in Google Search, built from real impressions and clicks. It reports four metrics — clicks, impressions, average CTR, and average position — and keeps the most recent 16 months of data. — previously this content was lumped into generic rich-results/web buckets. As Search Engine Journal put it, the update “isn’t about new search capabilities, it’s about measurement.” Forum structured data had been supported for a while; now publishers finally have a way to monitor how that content actually performs.

Google also provides a Discussion forum rich-result report in Search Console (errors/warnings/valid items) and supports the type in the 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. Test and URL Inspection tool. If you’re implementing this, that Performance filter is the honest answer to “how will I know it did anything.”

Does Bing support this?

Short and honest: no dedicated Bing guidance exists for this type. Bing Webmaster Tools documents general structured-data support (JSON-LD, Microdata, RDFa, and more) via its Marking Up Your Site with Structured Data help page and its Markup Validator, and Bing doesn’t prefer one format over another. But there’s no Bing help article, blog post, or announcement that names DiscussionForumPosting or a “Discussions and forums”-equivalent feature. Bing will parse valid markup without erroring — there’s just no Bing rich-result surface built around this type the way Google built one. Don’t assume parity; this is a Google-only feature today.

Is it still worth doing in 2026?

I want to be straight with you here, because almost nobody writing about this schema type engages with the elephant in the room: user-generated and forum content has been losing search visibility in Google’s 2025–2026 core updates. In Amsive’s analysis of the March 2026 core update, Lily Ray’s team documented that Reddit, Instagram, and X — the platforms that drove the UGC and social explosion in the SERPs from roughly 2023 through 2025 — all posted significant losses with that update, and that Quora and other Q&A/forum platforms declined after a couple of years of steady growth. (I’m relaying that finding rather than quoting it word-for-word; read the source for the exact figures.)

So does implementing DiscussionForumPosting still matter if Google is simultaneously de-prioritizing UGC visibility broadly? My honest take:

  • The markup is not why UGC is losing ground, and it won’t reverse it. Core-update visibility shifts are about content quality, helpfulness, and Google’s evolving weighting of source types — not whether you added the right schema. Don’t expect this markup to fight a core update.
  • But the measurable payoff is real and separable. The Search Console Discussion Forum performance filter gives you actual measurement of how your forum content performs, independent of whether the Discussions and forums feature includes you. That’s worth having if you run a genuine community.
  • Structured data still helps machines parse your content’s structure — that’s a mechanical benefit independent of whether any one search or AI feature ends up using it. Clean, honest markup (with digitalSourceType where relevant) is table stakes for being machine-readable, even in a tougher visibility climate. I don’t have evidence that this specific schema type feeds AI answer engines or citation systems — treat that as a plausible adjacent benefit, not a documented one.

Net: if you run a genuine user-generated community, mark it up correctly — it’s cheap, it’s honest, and it earns you real measurement. Just don’t sell it internally as a traffic lever that will beat the broader UGC pullback, because it won’t.

Where this sits

DiscussionForumPosting is one type in the broader structured data family this article lives under, alongside the commerce-focused Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two., ProductGroup schema, and JobPosting schemaJobPosting schema is the schema.org/JSON-LD vocabulary you add to a single job-listing page so Google (and Bing) can read the role, employer, location, salary, and dates — making the page eligible for Google for Jobs. It requires title, description, datePosted, hiringOrganization, and jobLocation (or applicantLocationRequirements for fully remote roles). work, and the neighboring QAPage and FAQPage types it’s most often confused with. The same discipline applies to all of them: use the type that maps to a confirmed feature, keep the markup in parity with the visible page content, use only genuinely applicable properties, and validate before you ship. Its companion ProfilePage (from the same 2023 launch) is the natural partner — it’s the recommended target for author.url.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.