Removendo os links /2, /3, /4, etc., de cada resposta dentro de uma URL de tópico

Estou imaginando se existe uma maneira de remover completamente os links canônicos de um fórum Discourse.

Refiro-me às extensões /2, /3, /4, etc. que aparecem para cada URL de tópico à medida que o usuário rola a página. Eu gostaria que cada resposta dentro de um tópico se referisse simplesmente ao URL original (sem redirecionar os visitantes para o URL original, mas removendo esses caminhos completamente, para que não existam).

Originalmente, pensei que essa era uma característica interessante do Discourse, mas como tenho executado um fórum semelhante em meu site por um ano com o NodeBB (que usa o mesmo recurso de link canônico para cada resposta), descobrimos que essa funcionalidade pode ser catastrófica para o SEO de um fórum público.

Por quê? Porque, embora esses URLs /2, /3, /4 sejam links canônicos, o Google eventualmente rastreará e indexará todos eles. Isso significa que cada nova resposta dentro de um tópico pode aparecer nos resultados de pesquisa do Google e, como são basicamente versões duplicadas do URL do tópico original, essas páginas extras indexadas raramente recebem visitas e, quando recebem, os visitantes não ficam no site por mais de alguns segundos.

Quando o Google indexa muitas páginas extras e essas páginas não recebem muita atividade, isso diz ao Google que o domínio como um todo tem muitos URLs de baixa qualidade e isso prejudica a saúde do domínio como um todo (como aconteceu em nosso caso). Perdemos cerca de 40% do nosso tráfego desde o lançamento do nosso fórum público, e um grande fator contribuinte foram esses URLs adicionais (mais de 30.000 URLs de baixa qualidade foram adicionados ao nosso sitemap ao longo de 12 meses, simplesmente por causa das respostas deixadas em cada tópico).

Agora, se você está executando um fórum privado, nada disso importa, porque um fórum privado não se beneficia de nenhum tipo de SEO, já que todo o fórum está oculto da internet de qualquer maneira. Mas se você ESTÁ tentando executar um fórum público e seu objetivo é obter tráfego de pesquisa orgânica, essas strings de URL adicionais podem ter um enorme impacto prejudicial na saúde geral do seu site.

Então, estou imaginando, existe alguma maneira concebível de ajustar as configurações ou criar um plugin que diga a um fórum Discourse para NÃO criar esses URLs adicionais para cada resposta dentro de um tópico?

Estou considerando migrar nosso fórum do NodeBB para o Discourse, mas isso só fará sentido se houver uma maneira de fazer com que nosso fórum Discourse não crie esses URLs adicionais.

3 curtidas

Isso surgiu um pouco antes: Google indexing same page multiple times: Issue with canonicals

como você conseguiu determinar que essa foi uma contribuição significativa? muitos posts de SEO feitos aqui têm sido bastante especulativos, então algumas evidências ajudam muito!

Não tenho experiência com este plugin e não posso recomendá-lo pessoalmente, mas alguém já tentou desativar completamente os links canônicos com um plugin antes: Remove Canonical Link Plugin

7 curtidas

Isso surgiu um pouco antes: Google indexando a mesma página várias vezes: Problema com canônicas

Se estou acompanhando esta conversa corretamente, isso parece se referir a um problema ligeiramente diferente do que estou falando acima. Não é um problema criar vários URLs canônicos para um tópico se eles forem agrupados em blocos de 20 respostas e tiverem meta descrições exclusivas (página=2, página=3, etc.). O problema é quando um novo URL é criado para cada resposta individual dentro de um tópico (/2, /3, /4, etc.).

Para um tópico com 100 respostas, o primeiro resultaria em 5 URLs por tópico (100 respostas agrupadas em múltiplos de 20). O segundo resultaria em 100 URLs por tópico (um URL novo e individual para cada resposta), o que cria um grande problema de SEO.

como você conseguiu determinar que isso era um contribuinte significativo? muitos posts de SEO feitos aqui têm sido bastante especulativos, então algumas evidências ajudam muito!

Com ferramentas como Google Search Console, SEMrush e Ahrefs. Todos eles destacaram avisos e erros resultantes do grande número de URLs em nosso site que estavam sendo criados por essas respostas de tópicos de fórum, todos os quais estavam sendo indexados pelo Google sem fornecer conteúdo novo substancial. As pontuações de saúde estavam na casa dos 30 e 40 quando nosso fórum era público. Assim que bloqueamos todo o nosso fórum e o tornamos privado (para que o Google não pudesse vê-lo) e reexecutamos os testes, nossa pontuação de saúde subiu para os 80 apenas com essa mudança.

Não tenho experiência com este plugin e não posso recomendá-lo pessoalmente, mas alguém tentou desativar completamente os links canônicos com um plugin antes: Plugin Remove Canonical Link

Encontrei isso também. Infelizmente, este plugin na verdade piora a situação, pois ele apenas remove as tags canônicas completamente, mantendo as páginas /2, /3, etc., então esses URLs adicionais ainda são vistos como conteúdo duplicado de baixa qualidade.

3 curtidas

Vale notar que está em nosso roteiro adicionar um cabeçalho X-Robots-Tag: noindex à carga útil de resposta dessas páginas.

10 curtidas

Bom saber. Parece um grande passo na direção certa.

Para constar, na verdade vimos algumas instâncias em nosso fórum atual (quando ainda era público) onde adicionamos o arquivo robots.txt a certas subpastas do nosso fórum, e o Google estava rastreando-as de qualquer maneira. Acredito que isso seja altamente irregular… mas descobrimos que há alguns casos em que o Google não segue essa diretiva. A única maneira de ter 100% de certeza de que uma página não será indexada é se a página estiver oculta atrás de uma tela de login ou se a página não existir.

Do ponto de vista de um observador externo, parece simples dizer ao Discourse para não passar pelo trabalho extra de criar esses URLs adicionais para cada resposta. O software estaria fazendo menos trabalho e criando menos complexidade dessa forma, não estaria?

Seria bom ter um recurso nas configurações de administrador para simplesmente desativar esses URLs extras completamente.

1 curtida

Sim, dessa forma usaremos a tag de cabeçalho em vez de colocá-las no arquivo robots.txt.

3 curtidas

Não tenho certeza se entendi o que está acontecendo aqui.

Porque o Discourse está fazendo a primeira opção: ele cria meta tags de URL canônico ?page=X para grupos de 20 respostas. E como você pode ver aqui, os números das postagens nunca são adicionados aos URLs do sitemap, apenas os URLs ?page=X são.

Então eu ia te dizer que não há problema.

Mas então eu fiz uma pesquisa no Google por um tópico com muitas respostas e embora a página 2 desses resultados de pesquisa esteja cheia de links ?page=X, alguns dos principais resultados estão, na verdade, linkando para essas respostas numeradas.

Mas por que isso está acontecendo? Essa página tem um URL canônico correto.

rgj@labgate:~$ wget -q -O - "https://meta.discourse.org/t/babble-a-chat-plugin/87297/418"|grep -e "<title" -e canonical
<title>Babble - A Chat Plugin - #418 by HAWK - broken-plugin - Discourse Meta</title>
<link rel="canonical" href="https://meta.discourse.org/t/babble-a-chat-plugin/87297?page=20" />

3 curtidas

Eu não sei.

Minha suposição mais ousada é que esses links aparecem em outros lugares na internet, então são esses que são indexados?

1 curtida

O canônico está lá para impedir que isso aconteça. Pelo menos - em teoria.

4 curtidas

I had a lengthy discussion about this with a blog-centric community here in Brazil that uses Discourse, and it’s what pushed me to try this new approach by sending the noindex header for those post specific pages. I should be able to cleanup and merge the PR for that next week and we can start experimenting with it.

7 curtidas

Mas por que isso está acontecendo? Essa página tem um URL canônico correto.

Exatamente. Não deveria estar acontecendo (em teoria), mas acontece, e como experimentamos com nosso site, isso realmente causa danos à pontuação de saúde de um domínio, o que pode acabar tendo um grande impacto negativo nos rankings de pesquisa de todo o domínio.

Em relação ao que @pfaffman disse,

Minha suposição selvagem é que esses links aparecem em outros lugares por aí, então são esses que são indexados?

Esse também teria sido o meu pensamento… mas vimos que dezenas de milhares dessas respostas individuais em nosso site estavam sendo indexadas pelo Google, mesmo que absolutamente nada estivesse linkando para elas. É bastante bizarro e não posso fingir entender por que/como isso está acontecendo, mas isso reforça a necessidade de um administrador de fórum simplesmente ter a capacidade de desativar esses URLs /2, /3, /4, etc. para cada resposta, se assim o desejar.

Estou curioso, é difícil dar essa capacidade ao Discourse? Da minha perspectiva de não programador, parece que isso deveria ser fácil, já que é apenas dizer ao software para não fazer tanto trabalho… mas talvez haja algo mais nisso que eu não entendo?

2 curtidas

Não tenho certeza, mas usar noindex nelas pode ser prejudicial. O Discourse já está lidando com isso corretamente usando URLs canônicas.

Se você usar noindex nelas, há uma chance de que a página inteira seja indexada (porque todas são a mesma URL canônica), o que seria desastroso. Não sei ao certo o que acontecerá, mas eu seria extremamente cuidadoso, pois o Google costuma lidar com casos extremos de forma imprevisível, e a forma como ele lida com eles pode mudar com as atualizações. Já vi coisas estranhas acontecerem com tags canônicas.

Não se sabe exatamente como o algoritmo de classificação funciona, e ele muda com o tempo, mas outra coisa a considerar é que as classificações são resultado de links de entrada. Se um site externo linkar para uma URL /number, e essa URL retornar o cabeçalho noindex, é concebível que o Google não transfira o “link juice” de entrada para a URL canônica, o que poderia ser prejudicial para as classificações de pesquisa dos sites do Discourse.

Acho que seria muito mais seguro entrar em contato com alguém do Google Search e informá-los que a tag canônica não está funcionando para um CMS amplamente utilizado do que tentar encontrar uma solução alternativa que pode não ser tratada da mesma forma que o Google faz mais atualizações.

6 curtidas

Não, isso ressalta a necessidade de consertar as coisas. Como engenheiro de software, acho muito difícil remover funcionalidades porque elas não estão funcionando 100% corretamente. Vamos ver se podemos ajudar e chegar ao fundo disso em vez disso.

Tem certeza disso? Nunca vi um número de postagem em um mapa do site.

3 curtidas

É por isso que estará sob uma configuração do site.

5 curtidas

Obrigado por questionar isso. “Sitemap” provavelmente foi a palavra errada a usar. O que eu quis dizer foi que essas postagens numeradas estavam sendo rastreadas e indexadas pelo Google e aparecendo como páginas individuais no Google Analytics e Search Console, resultando em MUITAS páginas de baixa qualidade em nosso domínio.

Se esses números simplesmente não fossem adicionados a cada resposta, o Google só conseguiria ver o URL da postagem original.

2 curtidas

Sim, e se o Google estivesse honrando essas meta tags rel="canonical" (que eles inventaram!) que foram colocadas lá especificamente para impedir o Google de fazer isso, não seria um problema e ainda poderíamos vincular a uma postagem específica ao mesmo tempo.

7 curtidas

Parece bom. Seria ideal se estivesse desativado por padrão, pois não é inconcebível que possa fazer com que as páginas de tópicos desapareçam do Google ou de outros motores de busca.

Não tenho certeza se já foi mencionado, mas outra forma de corrigir isso sem noindex pode ser usar fragmentos de URL para as postagens, já que estes não devem ser contados como páginas separadas.

/t/slug/id#13
5 curtidas

Obrigado pela sugestão. Gostaria de pensar que isso funcionaria… mas vendo que o método “correto” original nem está funcionando, fico cético de que qualquer coisa resolverá o problema além de simplesmente eliminar as respostas numeradas.

Claro, não estou dizendo que TODOS os usuários do Discourse deveriam parar de usá-los. Puxa, se não fosse pelo Google ser burro (e/ou se pretendêssemos que nosso fórum fosse privado e não público), eu seria totalmente a favor… mas apenas ter a opção de desativar a numeração automática de respostas seria uma grande ajuda para aqueles que administram fóruns públicos e se preocupam com a saúde geral de SEO de seu domínio.

1 curtida

Isso removeria a capacidade de vincular a postagens específicas. Não haveria como vincular à postagem nº 789 em um tópico de 1.000 postagens, e seria irritante para os usuários terem que rolar tanto.

É estranho. Pesquisei no Google para ver se os URLs de ID de postagem estavam sendo indexados nos meus fóruns, e apenas os URLs canônicos estão aparecendo em todos os tópicos que verifiquei.

Eu vejo isso em outro site grande do Discourse. Também aparece neste tópico. [Consulta do Google]

Executei uma comparação entre as duas respostas assim:

curl -s https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648 > 1.html
curl -s https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648/8 > 2.html
nvim -d 1.html 2.html

Uma diferença que se destaca é que o article:published_time é diferente, embora provavelmente devessem ser o mesmo, pois as páginas são, de resto, quase idênticas. Eu me pergunto se esse metatag poderia fazer o Google ignorar o URL canônico. Um funcionário do Google diz que os URLs canônicos podem ser ignorados em certos casos aqui.

<meta property="article:published_time" content="2021-11-19T15:57:21+00:00" />
<meta property="article:published_time" content="2021-11-20T06:48:06+00:00" />

Além disso, a tag ignore_canonical é exclusiva do Discourse ou há uma chance de o Google estar seguindo-a? Eu a vi no HTML.

<meta property="og:ignore_canonical" content="true" />
3 curtidas

Poderia ser um pouco mais irritante, mas se os URLs page=2, page=3, etc. ainda funcionassem (o que não cria um problema de SEO como as respostas numeradas fazem), você poderia pelo menos vincular uma pessoa à página correta dentro de uma conversa. Isso a levaria a maior parte do caminho, desde que ela esteja disposta a rolar um pouco.

Um fórum que funciona dessa maneira é o BiggerPockets. Suas respostas não têm URLs numerados individualmente, mas os tópicos têm páginas numeradas, como esta: Kids throwing rocks at windows nearly everyday. Won't stop. (preste atenção ao URL enquanto você rola por cada tópico e página).

O fórum deles sempre foi um componente principal do que torna o site tão especial e bem-sucedido do ponto de vista de SEO, então é um bom exemplo do que funciona.

Interessante. Não tenho ideia se isso está causando o problema ou não, mas posso ver como a inconsistência pode confundir o Google a ignorar o URL canônico.

Mesmo assim, com a natureza de como os fóruns funcionam, a menos que você quisesse remover completamente as datas e linhas do tempo de cada tópico, você não poderia eliminar isso, poderia? Levar em conta as datas e horários de cada postagem e resposta é, de certa forma, uma parte integral de como os fóruns funcionam.

1 curtida