Currently we are using schema type DiscussionForumPosting for every post in a topic. So if a topic having 5 posts totally then in same page we rendering DiscussionForumPosting 5 times.
In this case I think it’s better to use DiscussionForumPosting only once for whole topic and Comment schema type for remaining 4 replies like below.
Since we are using DiscussionForumPosting schema for every post Google requiring valid image property for all posts. If we used DiscussionForumPosting only once for topic then we can skip this issue. And I guess this is the correct way to do.
When search “Change the domain name or rename my Discourse?” found the below article but shows the date in google serp search that when article was published 1st time in 2014.
After that there are 7 revision made on that post and last updated date in 09th December 2017.
So is there anyway to set in forum or made any changes for google to pickup “last update date” instead of “date published” ?
I hope everyone understand my doubt. If anyone show tutorial post on google search result but that are showing 4 years backdated then there are less chances to click.
Ah yes, excellent point, we should check the HTML metadata there @vinothkannans to make sure for wiki posts it is using date of last edit and not date of initial posting.
We previously only used created_at date in datePublished schema property. Now if a post is updated then the updated_at date will used in dateModified schema property along with existing datePublished property. I did it for all the posts. Since we now including both the dates it won’t be a issue. Google search already respecting the both.
I know this is a super stale thread, but I just wanted to voice my support for this approach. I’ll follow up with more official channels/recommendations in the future but I wanted to just ping here because it was your own idea.
My name is Ryan Levering and I handle structured data ingestion at Google (this guy). Discourse is sort of a snowflake in that it’s one of the only forum engines that uses DFPs at the root level for each comment in the thread. This makes it harder for us to figure out the type of the page AND to authoritatively detect the main post on the page.
We’re going to be recommending everyone use DiscussionForumPosting for the OP and then attach the rest of the responses to the original post as comment - Schema.org Property, exactly like recommended in the OP here. Other markup would be good as well (like more user interaction stats for instance), but that restructuring would go a long way toward making it easier to include Discourse forums in our features.
I’m not sure how much this is related to what you’re doing, but Google is having trouble with detecting posts/topics on my site. The canonical URLs might have some effect on how you determine the exact main post on the page.
I just got a Google Alert that a post URL like this is indexed:
https://forum.example.com/t/the-slug/123/16
Google Search Console confirms that the exact URL is indexed on “on Google”.
But the canonical URL that Google fetched is different:
With the way Discourse is set up at the moment, those post URLs shouldn’t be indexed because the canonical URLs all point to the topic.
If you want to see those kinds of URLs getting indexed, set a Google Alert for something like site:meta.discourse.org and “all results as they happen”.
I am no canonicalization expert, so I shouldn’t say something that is wrong here. But I’m pretty sure it’s unrelated. Markup is not used at all in canonicalization as far as I know. And while I guess it could be possible to confuse systems by having a non-canonical URL have some markup that said mainEntityOfPage: <canonical-url> (so it looked like the markup was asserting that it was the main post from a different page), I haven’t seen that come up yet.
While we’re on the subject though, Discourse currently asserts that every comment/non-first-post is the mainEntityOfPage: <url>. I believe that will be true after the fix change as well. This also confuses the detection (and means we have to drop that assertion altogether). I think that with the fix it’ll give us enough signal to prevent problems now, but it’s probably better to only use that on the first post.