Different schema type for Topics and Posts

Continuing the discussion from Invalid Article Schema:

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.

<div itemscope itemtype="http://schema.org/DiscussionForumPosting">

   <span itemprop="datePublished">10/05/2017</span>
	<span itemprop="headline">Sample Topic Title</span>
	<span itemprop="image">https://meta.discourse.org/image-url9.png</span>
	<div itemprop="articleBody">Topic's First Post Content</div>
    <span itemprop="author">User 1</span>
    
 	<div itemprop="comment" itemscope itemtype="http://schema.org/Comment">
    	<span itemprop="author">User 2</span>
    	<div itemprop="text">Second Post Content</div>
 	</div>
 
 	<div itemprop="comment" itemscope itemtype="http://schema.org/Comment">
    	<span itemprop="author">User 3</span>
    	<div itemprop="text">Third <b>Post</b> Content</div>
 	</div>
 
</div>
3 лайка

Why? What problem does this solve?

2 лайка

It won’t solve any big issue :slight_smile:

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.

1 лайк

Currently i have not seen above schema method in discourse.

Is this method are in work in progress?

I have found one image error in schema testing tool as below.

Also, I want to hide “datePublished” items from google serp. Can anyone guide me how to do that?

No. Currently I am not sure about this change 100%. I’m unable to find any resource that recommending Comment schema type for reply posts.

Not error. It is just a warning. Google recommending the image field if available.

It is a required field.

2 лайка

I am looking to hide published date shown from google search only.

I search “Different schema type for Topics and Posts” on google and found below post.

Discourse%20Date%20Snapshot%202

It is not recommended. You have to override the show.html.erb template file with a plugin to achieve it.

6 лайков

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” ?

Google%20Structured%20Data%20Snapshot%202

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.

6 лайков

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.

7 лайков

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.

8 лайков

Добавлен тег pr-welcome

1 лайк

Я знаю, что эта тема давно неактивна, но я просто хотел выразить поддержку этому подходу. В будущем я свяжусь с вами через более официальные каналы и дам рекомендации, но сейчас хотел написать здесь, так как это была ваша собственная идея.

Меня зовут Райан Левринг, я отвечаю за обработку структурированных данных в Google (этот человек). Discourse — своего рода уникальный случай, поскольку это один из немногих движков форумов, который использует DFP на корневом уровне для каждого комментария в теме. Это затрудняет нам определение типа страницы и авторитетное выявление основного поста на странице.

Мы будем рекомендовать всем использовать DiscussionForumPosting для основного поста (OP), а затем прикреплять остальные ответы к оригинальному посту как comment - Schema.org Property, точно так же, как рекомендуется в основном посте здесь. Другая разметка также была бы полезна (например, больше статистики взаимодействия пользователей), но такая перестройка значительно упростит включение форумов Discourse в наши функции.

13 лайков

Привет, Райан,

Спасибо, что сообщили нам. Мы внесем необходимые изменения как можно скорее.

5 лайков

Этот PR реализует поведение, рекомендованное выше.

10 лайков

Не уверен, насколько это связано с тем, что вы делаете, но у Google возникают проблемы с определением постов/тем на моём сайте. Канонические URL-адреса могут влиять на то, как вы определяете точный основной пост на странице.

Я только что получил уведомление Google Alert о том, что проиндексирован URL поста, например:

  • https://forum.example.com/t/the-slug/123/16

Google Search Console подтверждает, что точный URL проиндексирован в «Google».

Однако канонический URL, который получил Google, отличается:

<link rel="canonical" href="https://forum.example.com/t/the-slug/123" />

При текущей настройке Discourse такие URL постов не должны индексироваться, поскольку все канонические URL указывают на тему.

Если вы хотите отслеживать индексацию подобных URL, настройте Google Alert для чего-то вроде site:meta.discourse.org с опцией «все результаты по мере появления».

Я не эксперт в области канонизации, поэтому не должен говорить здесь ничего ошибочного. Но я почти уверен, что это не связано. Насколько мне известно, разметка вообще не используется в процессе канонизации. И хотя, возможно, можно запутать системы, сделав неканонический URL с разметкой, утверждающей mainEntityOfPage: <канонический-URL> (так что казалось бы, что разметка утверждает, что это основной пост с другой страницы), я пока не сталкивался с подобным.

Кстати, раз уж мы заговорили об этом, Discourse сейчас утверждает, что каждый комментарий/не первый пост является mainEntityOfPage: <url>. Я считаю, что после внесения исправления это также будет верно. Это также сбивает с толку механизм обнаружения (и означает, что нам придется полностью отказаться от этого утверждения). Мне кажется, что с этим исправлением у нас будет достаточно сигнала, чтобы предотвратить проблемы сейчас, но, вероятно, лучше использовать это только для первого поста.

6 лайков

В данный момент это решается:

@rrlevering Если у вас найдётся время, я был бы очень признателен за вашу обратную связь по следующим вопросам:

3 лайка