Google structured data for forums and profile pages

Google just announced a new way for forum sites to tag their content as “structured data” for SEO purposes.

New in structured data: discussion forum and profile page markup

Monday, November 27, 2023

Today we’re announcing support for profile page and discussion forum structured data for use in Google Search, including new reports in Search Console. This markup works with Google Search features that are designed to show first-person perspectives from social media platforms, forums, and other communities. Implementing this structured data will help ensure what Search shows in these features is as accurate and complete as possible.

It would be great if Discourse were to add support for these. (They support JSON-LD and microdata.)


That’s cool (this is more confusing than the forums)

1 Like

@Falco Given this update where Google identifies members, wouldn’t it be ideal to have member profiles without noindex in the discourse?


Discourse definitely should support this!

1 Like

I would also love to see this one!

Ain’t we using that already for many years?

Is the new thing here only the profile part?

Kind of yes. It has tailored a bit better suitable for social medias, I reckon.

Y’all can check your Google Search Console report, but when I go to and check my forum, I see this:

Why items are invalid:

  • Either “text”, “image”, or “video” should be specified
  • Missing field “datePublished”
  • Missing field “author”

Improve item appearance

  • Missing field “url”
  • Missing field “text” (in “comment”)

So there does appear to be more work to do here.


1. itemprop="text"

Just always add itemprop="text" here, as articleBody is not specified (anymore?) for DiscussionForumPosting.

2. mainEntityOfPage

mainEntityOfPage must only be set once for DiscussionForumPosting and never for the multiple Comment:
e.g. check for post.is_first_post

3. itemprop="url"

Add itemprop="url" to the itemscope of DiscussionForumPosting.
This ensures that comments on subpages (…?page=2) are bound to the main topic page.

<link itemprop="url" href="???">

post.topic.url is not set here. Is there something like @topic_view.url?

Important: the itemprop url must point to the first page of the topic in crawler view:

  • e.g.
  • not

See DiscussionForumPosting → Recommended properties → url

url: The canonical URL of the discussion. In multi-page threads, set this property to th first page URL. For a single discussion, this is usually the current URL.

1 Like

Which version of Discourse are you running?

Distinct marking of DiscussionForumPosting and Comment was implemented with Discourse v3.1.0 released August ’ 23.

I’m running the CDCK hosted version, always latest. The Discourse team can repro this by checking Google Search Console for

I think @techAPJ is looking into a related request here:


Thanks all. I’m hoping this gets some attention at the start of the new year here. Very interested in optimizing everything as possible for Google SEO; let me know if I can help.

Let’s keep the discussion happening in this topic where we’re trying to figure out a solution for all the structured data related issues.