What Is DiscussionForumPosting Schema? The Complete Guide (2026)

Saar Twito9 min read
Saar Twito
Saar TwitoFounder & SEO Engineer

Hi, I'm Saar - a software engineer, SEO specialist, and lecturer who loves building tools and teaching tech.

View author profile →

What Is DiscussionForumPosting Schema?

DiscussionForumPosting schema is a type of structured data — defined in the Schema.org DiscussionForumPosting vocabulary — that marks up individual posts on forums, community boards, and discussion platforms. Google uses it to understand user-generated content, enrich search results with engagement signals like upvote and comment counts, and surface relevant discussions in AI Overviews and People Also Ask panels.

TL;DR
  • Required by Google: author (with name), datePublished (ISO 8601), and content (at least one of text, image, or video)
  • Recommended by Google: url, headline (DiscussionForumPosting only — not for SocialMediaPosting), dateModified, interactionStatistic (LikeAction, ViewAction, CommentAction, etc.)
  • Use DiscussionForumPosting for forums; use SocialMediaPosting for social media posts — headline is not recommended on SocialMediaPosting
  • creativeWorkStatus: "Deleted" is the only valid value for that field

Why DiscussionForumPosting Schema Matters

Forum content is among the most heavily cited sources in AI search systems. Research published by Princeton and Georgia Tech (ACM KDD 2024) found that Reddit, StackOverflow, and similar community platforms are cited in AI-generated responses at far higher rates than brand-owned content on equivalent topics. Structured markup helps AI systems correctly attribute, date, and contextualize this content.

Google's Discussion Forum rich results documentation confirms that properly marked-up forum posts can appear with author information, post dates, and engagement counts directly in search results.

DiscussionForumPosting vs. SocialMediaPosting: What Is the Difference?

TypeUse forheadline field
DiscussionForumPostingForum posts on platforms like Reddit, StackOverflow, or custom community boardsRecommended — add the post title
SocialMediaPostingPosts on social media platforms (Twitter/X, LinkedIn, Facebook)Not recommended — remove if present

Greadme warns when headline is present on a SocialMediaPosting schema, and deducts 3 points. It is perfectly valid and recommended on DiscussionForumPosting.

Required Properties

PropertyGreadme rule
authorError if missing. Must include name. Recommended: url linking to author profile page
datePublishedError if missing or invalid ISO 8601. Greadme convention uses full datetime with timezone: YYYY-MM-DDTHH:MM:SS+TZ
text, image, or videoError if all three are missing — at least one must be present

Recommended Properties

PropertyNotes
headlineThe post title. Only for DiscussionForumPosting — not SocialMediaPosting. If no separate title exists, do not duplicate or truncate the post text
dateModifiedISO 8601 datetime. Add when the post has been edited. Greadme warns if missing when text is present
interactionStatisticInteractionCounter array describing engagement metrics. See valid types below
urlRecommended by Google. Greadme warns and deducts points if missing. For multi-page threads, use the first page URL
commentArray of Comment objects. Each comment should have its own author, datePublished, and content
isPartOfLinks to the subforum or group this post belongs to (CreativeWork with url)
creativeWorkStatus"Deleted" is the only valid value — use when a post has been removed but remains visible for context
sharedContentWebPage, ImageObject, or VideoObject representing content shared in the post

interactionStatistic: Valid Types by Context

Greadme validates interactionType values strictly based on context. The two contexts have different allowed types:

ContextPropertyValid interactionType values
Content engagement (on the post)interactionStatisticLikeAction, DislikeAction, ViewAction, CommentAction, ReplyAction, ShareAction
Author activity (on the author object)agentInteractionStatisticFollowAction, LikeAction, WriteAction

Each InteractionCounter must include @type: "InteractionCounter", interactionType, and userInteractionCount. Greadme errors if userInteractionCount is missing.

DiscussionForumPosting Schema Code Example

A complete forum post with interactionStatistic and a nested comment:

{
  "@context": "https://schema.org",
  "@type": "DiscussionForumPosting",
  "url": "https://forum.example.com/post/123",
  "headline": "Best practices for caching API responses?",
  "text": "I'm building a REST API and wondering about caching strategies.",
  "datePublished": "2026-04-10T09:00:00+00:00",
  "dateModified": "2026-04-10T10:30:00+00:00",
  "author": {
    "@type": "Person",
    "name": "dev_jane",
    "url": "https://forum.example.com/user/dev_jane"
  },
  "interactionStatistic": [
    {
      "@type": "InteractionCounter",
      "interactionType": "https://schema.org/LikeAction",
      "userInteractionCount": 142
    },
    {
      "@type": "InteractionCounter",
      "interactionType": "https://schema.org/CommentAction",
      "userInteractionCount": 38
    }
  ],
  "comment": [
    {
      "@type": "Comment",
      "text": "Redis with a TTL strategy works well for most cases.",
      "datePublished": "2026-04-10T09:45:00+00:00",
      "author": {
        "@type": "Person",
        "name": "backend_guru",
        "url": "https://forum.example.com/user/backend_guru"
      }
    }
  ]
}

The Content Guideline: User-Generated Only

DiscussionForumPosting must only be used for genuinely user-generated content. Posts authored by a publisher or their agents — including official company announcements posted on a forum — should not be marked up as DiscussionForumPosting.

Greadme always includes a content-guideline advisory warning to remind you of this requirement. Misuse (e.g., marking up brand-authored content as forum posts) violates Google's structured data guidelines and may result in manual actions.

Common Mistakes to Avoid

  • Missing datePublished time and timezone: Greadme recommends using the full datetime format: "2026-04-10T09:00:00+00:00". A date-only value like "2026-04-10" is valid ISO 8601, but Greadme prefers the full format for maximum precision in time-sensitive content.
  • Using headline on SocialMediaPosting: Greadme warns and deducts 3 points. Social media posts do not have separate titles — do not add a headline.
  • creativeWorkStatus with anything other than "Deleted": This is the only valid value. Any other value triggers a Greadme warning.
  • Missing url on comments: Comment objects should have a url property pointing to an anchor link for that specific comment (e.g., https://forum.example.com/post/123#comment-456).
  • Using FollowAction in content interactionStatistic: FollowAction belongs in agentInteractionStatistic on the author object, not in the post-level interactionStatistic. Greadme warns on invalid type usage.

How Greadme Validates DiscussionForumPosting Schema

Greadme validates both DiscussionForumPosting and SocialMediaPosting schemas with type-aware rules. Score starts at 100:

IssuePoints lost
Missing author−20
Missing author.name−15
Missing datePublished−20
Invalid datePublished format−15
Missing all of text, image, video−25
Missing url (recommended by Google — not required)Warning, −5
Missing headline (DiscussionForumPosting only)−8
headline present on SocialMediaPosting−3
Missing author.url−5

Frequently Asked Questions

Should I add DiscussionForumPosting schema to every post on my forum?

Yes, if your forum platform supports it. Each individual post page should have its own DiscussionForumPosting schema. For category or topic listing pages (showing multiple posts), you can optionally add an ItemList or Collection schema listing post URLs — Greadme and Google treat this as an optional pattern.

What if a post has been deleted?

If the post content is still visible (e.g., showing "This post has been removed") but the post object remains for context, add "creativeWorkStatus": "Deleted". This signals to Google that the content is no longer active. If the page is fully removed (404), remove the schema markup entirely.

Can I use this schema for a Reddit-style platform?

Yes. DiscussionForumPosting is explicitly designed for Reddit-style and StackOverflow-style platforms. Use DiscussionForumPosting for posts and Comment objects for replies. Threaded comments can be nested within the comment array for as many levels as your platform supports.