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 curtidas

Why? What problem does this solve?

2 curtidas

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 curtida

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 curtidas

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 curtidas

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 curtidas

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 curtidas

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.

https://github.com/discourse/discourse/commit/2c12336c6b7c8223d4fa00b2e928e276224f05a5

8 curtidas

pr-welcome tag added

1 curtida

Sei que este é um tópico muito antigo, mas queria apenas expressar meu apoio a essa abordagem. Farei um acompanhamento com canais/recomendações mais oficiais no futuro, mas queria apenas dar um toque aqui porque foi sua própria ideia.

Meu nome é Ryan Levering e eu cuido da ingestão de dados estruturados no Google (este cara). O Discourse é uma espécie de caso isolado, pois é um dos únicos motores de fórum que usa DFPs no nível raiz para cada comentário no tópico. Isso torna mais difícil para nós descobrirmos o tipo da página E detectarmos com autoridade a postagem principal na página.

Recomendaremos que todos usem DiscussionForumPosting para o OP e, em seguida, anexem o restante das respostas à postagem original como comment - Schema.org Property, exatamente como recomendado no OP aqui. Outras marcações também seriam boas (como mais estatísticas de interação do usuário, por exemplo), mas essa reestruturação faria um longo caminho para facilitar a inclusão de fóruns do Discourse em nossos recursos.

13 curtidas

Olá Ryan,

Obrigado por nos informar. Faremos as alterações necessárias o mais rápido possível.

5 curtidas

Esta PR implementará o comportamento recomendado acima.

10 curtidas

Não tenho certeza do quanto isso está relacionado ao que você está fazendo, mas o Google está tendo problemas para detectar postagens/tópicos no meu site. Os URLs canônicos podem ter algum efeito sobre como você determina a postagem principal exata na página.

Acabei de receber um Alerta do Google de que um URL de postagem como este está indexado:

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

O Google Search Console confirma que o URL exato está indexado em “no Google”.

Mas o URL canônico que o Google buscou é diferente:

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

Com a forma como o Discourse está configurado no momento, esses URLs de postagem não deveriam ser indexados porque os URLs canônicos apontam todos para o tópico.

Se você quiser ver esse tipo de URL sendo indexado, configure um Alerta do Google para algo como site:meta.discourse.org e “todos os resultados à medida que acontecem”.

Não sou um especialista em canonicalização, por isso não deveria dizer algo errado aqui. Mas tenho quase certeza de que é irrelevante. O markup não é usado em nada na canonicalização, até onde sei. E embora eu possa imaginar que seja possível confundir sistemas tendo uma URL não canônica com algum markup que dissesse mainEntityOfPage: <url-canônica> (para que parecesse que o markup estava afirmando que era a postagem principal de uma página diferente), eu ainda não vi isso acontecer.

Enquanto estamos nesse assunto, o Discourse atualmente afirma que cada comentário/postagem não-primeira é a mainEntityOfPage: . Acredito que isso será verdade após a correção também. Isso também confunde a detecção (e significa que teremos que descartar essa afirmação completamente). Acho que com a correção teremos sinal suficiente para evitar problemas agora, mas provavelmente é melhor usar isso apenas na primeira postagem.

6 curtidas

Isso está em processo de ser resolvido agora:

@rrlevering Se você tiver tempo livre, realmente apreciaria algum feedback sobre isso:

3 curtidas