Mecanismos de busca agora impedidos de indexar páginas não canônicas

:warning: Importante

Após investigação adicional, decidimos deixar a indexação não canônica ativada, veja mais detalhes em: Search engines now blocked from indexing non-canonical pages - #30 by sam

anúncio original

O Discourse agora responderá com um cabeçalho X-Robots-Tag: noindex quando a página solicitada não for a página canônica de um recurso.

Embora o Discourse use um design de rolagem automática para listas de tópicos e tópicos, isso não é o que mostramos aos rastreadores de mecanismos de busca, como o GoogleBot. Os mecanismos de busca veem tópicos paginados, com 20 posts em cada página. No entanto, como os usuários podem vincular a posts específicos em seus próprios posts e o farão usando o formato de URL /t/title/topic_id/post_id, esses serão capturados pelos rastreadores e adicionarão conteúdo duplicado aos resultados de pesquisa do seu site e desperdiçarão o precioso e limitado orçamento de rastreamento que seu domínio possui.

Para aliviar esse problema, nossa comunidade de usuários sugeriu adicionar o X-Robots-Tag: noindex a URLs como URLs específicas de posts, o que conseguimos expandir para todos os URLs não canônicos no Discourse. Isso foi lançado como uma configuração de site oculta e desativado por padrão há 3 meses, durante os quais experimentamos ter este cabeçalho ativado em sites da comunidade, bem como em meta.discourse.org.

Como os resultados deste período estão parecendo bons até agora, acabamos de ativar essa configuração para que ela tenha efeito por padrão.

Se, por algum motivo, você não quiser esse comportamento em sua instância, ainda poderá habilitar a indexação de páginas não canônicas executando docker exec -i app rails runner \"SiteSetting.allow_indexing_non_canonical_urls = true\" em seu servidor.

Não espere mudanças drásticas nos rastreamentos e resultados de pesquisa da noite para o dia, mas nos próximos meses você deverá ver uma diminuição nos rastreamentos e resultados de pesquisa em páginas específicas de posts, o que resultará em mais tempo de rastreamento gasto nos novos tópicos do seu site e em conteúdo que ainda não foi indexado devido a restrições de orçamento de rastreamento em seu domínio.

32 curtidas

TL;DR: Não bloqueie páginas não canônicas - apenas aponte-as para uma URL correta via \u003clink rel=\"canonical\" … \u003e - é para isso que ela serve.


Este recurso pode prejudicar a construção de links de SEO a longo prazo:
Todos os deep-links para respostas dentro de tópicos estão em páginas noindex agora! O Google gosta disso?

Na verdade, uma tag canonical sempre apontando para a URL do tópico - mesmo para páginas de deep-linking em uma resposta - deve fazer o trabalho perfeitamente - sem adicionar X-Robots-Tag: noindex:
Na primeira rastreagem de uma página de resposta de deep-linking, o Google reconhece que a URL da página (resposta dentro do tópico) não corresponde à URL canônica e, em seguida, decide rastrear apenas a URL canônica (tópico).


Podemos adicionar \u003ca rel=\"nofollow\" …\u003e a todos os links que fazem esse deep-linking de tópico-resposta? Edição: não, veja Search engines now blocked from indexing non-canonical pages - #9 by j127
Com isso, podemos economizar ainda mais desse precioso e limitado orçamento de rastreamento dos mecanismos de busca:
o mecanismo de busca nem extrairia o link em primeiro lugar nem faria uma chamada para a URL. Como chamar a URL resulta em uma resposta com um cabeçalho http X-Robots-Tag: noindex causando a ‘descartar’ da resposta adicionando a URL à lista interna de ‘noindex’ dos mecanismos de busca.

Mais algumas economias no orçamento de rastreamento com nofollow adicionado às URLs do feed RSS:

5 curtidas

Concordo totalmente com as sugestões de @rrit.

Seria melhor apontar subpáginas/posts dentro do tópico para seu original canônico em vez de bloqueá-los.

Em vez de adicionar noindex, podemos adicionar a tag nofollow a cada resposta dentro do tópico.

1 curtida

É exatamente assim que funciona, então não tenho certeza se entendi.

Então você sugere que precisamos atualizar a URL aqui

para usar uma URL canônica com o número da página e uma âncora de post?

Esses já estão bloqueados via robots.txt, mas é uma boa ideia!

Parece uma boa ideia também!

4 curtidas

Você está certo, peço desculpas. Às vezes me perco em meus próprios pensamentos. :slight_smile:

Pergunta rápida, presumo que este recurso já esteja disponível por padrão, desde que atualizemos o Discourse para a v2.9?

4 curtidas

Acho que o recurso não deveria vir ativado por padrão. É perigoso do ponto de vista do tráfego, mesmo que fique ativado por um curto período, então qualquer pessoa que atualizar agora pode ter uma surpresa desagradável.

A tag canonical é a maneira que o Google recomenda para lidar com esse problema, e já parece estar funcionando. Fazer coisas estranhas com tags canônicas pode levar a problemas estranhos com o Google, e um erro de noindex pode ser difícil de recuperar.

2 curtidas

Concordo com a primeira parte da sua postagem, mas não acho que o nofollow interno seja ideal. Links internos ajudam a dizer aos motores de busca quais páginas do site são importantes. O Google não seguirá todos os links que vê, porque sabe que já os viu antes. Se eles virem uma URL como example.com/t/1234/5, mas já a rastrearam e sabem que sua URL canônica é example.com/t/1234, provavelmente não desperdiçarão seus recursos computacionais visitando a versão não canônica várias vezes.

3 curtidas

Remover ‘noindex’ para URLs vinculadas por sites externos

Desculpe, por “respostas” eu quero dizer “posts” em um tópico:
Todos os deep-links de domínios externos para posts (por exemplo, forum.example.com/t/example-topic/5/11) agora têm um cabeçalho http X-Robots-Tag: noindex! Sugiro remover este cabeçalho http novamente.

Sugiro que para <link rel="canonical" … > nunca se use um URL com uma âncora de post (o último número em …/t/example-topic/1234/5) em lugar nenhum. URLs canônicos devem sempre apontar para o próprio URL do tópico (…/t/example-topic/1234). Acho que já está implementado assim.


Reescrever links para mecanismos de busca se o URL de destino for “redirecionado” por <link rel="canonical" … >

Muito bom ponto, é melhor não adicionar rel="nofollow" aqui.

O Discourse tem uma visualização especial para rastreadores. Nova sugestão apenas para a visualização do rastreador:
Converta todos os links internos que apontam para um URL de post (example.com/t/1234/5) para apontar para o URL do tópico correspondente (example.com/t/1234) em vez disso.
Intenção: Não anunciar URLs extras para mecanismos de busca quando esses URLs extras são “redirecionados” por <link rel="canonical" … > de qualquer maneira.

Locais onde tais links para posts são encontrados:

  • links adicionados manualmente no conteúdo do usuário
  • links gerados automaticamente em
    • citações
    • primeiro post do tópico: “links rastreados de entrada” de outros tópicos
    • primeiro post do tópico: “resposta selecionada”
    • primeiro post do tópico - mapa do tópico aberto: “links de tópico” / “links curtidos”

Excursus: Onde o Google encontra todos esses URLs?


“links rastreados de entrada” para mecanismos de busca

Exatamente por esse motivo, os “links rastreados de entrada de outros tópicos” gerados automaticamente no primeiro post de um tópico também devem ser visíveis pelos mecanismos de busca.
Atualmente, esses “links rastreados de entrada” estão faltando na visualização do rastreador. Editar: Eles já estão na visualização do rastreador.

Mas apontando para o URL do post em vez do URL do tópico (ver código fonte html)
<div class="crawler-linkback-list" itemscope="" itemtype="http://schema.org/ItemList">
      <div itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
        <a href="https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648/26" itemscope="" itemtype="http://schema.org/DiscussionForumPosting" itemprop="item">
          <meta itemprop="url" content="https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648/26">
          <span itemprop="name">Removendo os links /2, /3, /4, etc. para cada resposta dentro de um URL de tópico</span>
        </a>
        <meta itemprop="position" content="2">
      </div>
</div>
3 curtidas

Este é um ponto crucial. É uma coisa ter todas as suas páginas indexadas e outra coisa é obter uma classificação relevante para elas. Na minha experiência (com sites de grandes publicadores), a ligação interna inteligente é a chave para conseguir isso.

1 curtida

Atualizei esta manhã, você recomenda ativar a indexação de páginas não canônicas com isso?

Eu não gostaria de piorar minha indexação.

1 curtida

Para quem atualizar seu site após a data de postagem do OP.

Temos dados que mostram que o novo cabeçalho reduz o tempo de rastreamento nessas páginas, e elas sempre tiveram o canônico definido.

Mas essas páginas não devem ser rastreadas de qualquer maneira. Os metadados com o URL são definidos no nível do tópico, não queremos que o Google rastreie o nível do post, pois é conteúdo duplicado.

Legal, então nada precisa mudar aqui.

Fazer isso em tempo de execução pode ser muito caro em termos de CPU, e salvar duas versões de cada post será caro em termos de disco.

Nossos padrões são sempre o que recomendamos. No entanto, mantemos e anunciamos as configurações do site para que as pessoas possam escolher de outra forma se sentirem que um padrão não é ideal para o seu site.

5 curtidas

Perfeito, então deixarei como recomendado.
Obrigado

2 curtidas

Última coisa e então não incomodo mais :sweat_smile:

Então, pode haver problemas com sitemap_recent.xml que contém links como este?
https://meta.discourse.org/t/category-moderator-improvements/158628?page=2

1 curtida

Esse exemplo é uma página canônica, portanto não é afetado de forma alguma pelas alterações descritas no OP.

2 curtidas

Vejo uma grande diferença quando há um link externo para uma URL de post.

# A:
Domínio Externo
|
|--(link juice)---> URL do post
                   |
                   |__/ rastreamento:      \---> URL do post não indexada e
                      \ cabeçalho noindex /     link-juice em grande parte perdido

# B:
Domínio Externo
|
|--(link juice)---> URL do post
                   |
                   |__/ rastreamento:        \__|---> URL do post não indexada
                      \ resposta canônica /  |---> URL do tópico indexada (de qualquer forma)
                                                 com transferência de link-juice

Devemos discutir isso em

1 curtida

Para neófitos como eu em SEO, isso implica que é uma melhoria de SEO que poderia potencialmente levar a um leve aumento/benefício nos resultados de pesquisa do Google?

3 curtidas

Sim, esse é o objetivo!

Testamos a mudança em uma comunidade de notícias de tecnologia por alguns meses e vimos um grande aumento de ponta a ponta nas visualizações de página anônimas. Nosso objetivo final é sempre tornar todas as comunidades Discourse mais saudáveis em todas as frentes.

6 curtidas

Esse efeito é visível no relatório do Google Search Console ‘Configurações’ → ‘Rastreamento’ → ‘Estatísticas de rastreamento’?

1 curtida

Levando em consideração …

A. Diminuir rastreamentos

B. Não ter duas versões de conteúdo

C. Usar tag canonical

D. Sem nofollow

E. Sem noindex

… e ter links internos em …

… sugiro a seguinte implementação para obter o melhor compromisso:

  1. Não adicione o http-header X-Robots-Tag: noindex.
    – levando em conta [E] –
  2. Mantenha as tags canonical sempre apontando para o url do tópico.
    – diminuindo rastreamentos [A] e considerando [C] –
  3. Apenas para visualização do rastreador: Converta links gerados automaticamente para sempre apontar para o url do tópico em vez do url do post - para todos os links no primeiro post do tópico “links rastreados de entrada de outros tópicos” e “mapa do tópico aberto: links de tópico/links curtidos”.
    – diminuindo rastreamentos [A] e considerando [D], mas desconsiderando intencionalmente [B] –
    Em [B]: as despesas de CPU são apenas para visitas do rastreador e consistem em fazer uma substituição de regex para cortar o último número de urls internos que terminam em dois números, por exemplo, …/t/exemplo-topico/1234/5…/t/exemplo-topico/1234 nas fronteiras confinadas do primeiro post do tópico “links rastreados de entrada de outros tópicos” e “mapa do tópico aberto” apenas.
  4. Para todas as visualizações: adicione nofollow interno a citações e links adicionados manualmente no conteúdo do usuário.
    – diminuindo rastreamentos [A] e considerando [B], mas desconsiderando ligeiramente [D] –
    Em [D]: links importantes já são duplicados automaticamente para o primeiro tópico na seção “mapa do tópico aberto: links de tópico/links curtidos” [ver 3.] e a maioria das citações permanece dentro do próprio tópico de qualquer maneira.

Algumas ideias sobre links internos

O Google diz How to Specify a Canonical with rel="canonical" and Other Methods | Google Search Central  |  Documentation  |  Google for Developers

E o Google diz SEO Link Best Practices for Google | Google Search Central  |  Documentation  |  Google for Developers

Portanto, o Discourse pode definir links internos assim:

<a href="/t/exemplo-topico/1234" routerLink="/t/exemplo-topico/1234/5">…</a>

Para o Google, o link vai direto para o url canônico do tópico …/1234 - e o Google não fica sabendo sobre o url do post …/1234/5 a partir desta sintaxe de link.

Para a navegação do usuário, um JavaScript adicional no aplicativo Ember fará o truque:
por exemplo, substitua href por routerLink.

2 curtidas

Parece uma ótima melhoria! Obrigado por tornar isso realidade, @Falco e equipe Discourse!

3 curtidas