Estrutura canônica para /u/* causando a indexação de muitos URLs

Inicialmente, escrevi isto para a categoria “Bug”…

… mas não me impeça se alguém achar que isto justifica um PR ou commit :crossed_fingers:

Tenho estudado a estrutura canônica do Discourse com bastante afinco nos últimos 2 meses e, no geral, é ótima.

URLs estranhas com coisas como no_definitions=true ou /search?q= fornecem o canônico correto.

Tudo isto funciona ao servir a versão JS do site para utilizadores e rastreadores.

Mas parece que os URLs /u/* foram esquecidos - eles têm canônicos, mas para URLs que estão a causar a indexação de milhares de URLs extras pelo Google.

O trabalho:

Gostaria que todos os URLs após o nome do utilizador fossem canônicos para a página principal do perfil do utilizador

Portanto, /u/FlyNumber é a página principal do perfil

O seguinte teria um canônico para o acima (em vez do que acontece agora, que é um canônico para si mesmo)

/u/FlyNumber/summary
/u/FlyNumber/activity
/u/FlyNumber/activity/topics
/u/FlyNumber/activity/replies
/u/FlyNumber/activity/likes-given
/u/FlyNumber/badges
1 curtida

Isso é para a sua configuração de indexação personalizada discutida aqui?

Se sim, pode ser útil notar isso para que aqueles que olham o trabalho saibam no que estão se metendo.

Por padrão, os URLs /u/ não são indexados, o que é definido tanto em robots.txt quanto passado na solicitação de cabeçalho inicial na página.

image

4 curtidas

Não, pois deixei de usar o prerender - ele não conseguia renderizar o menu principal, o botão de login, etc.

O bot do Google está recebendo o “app” diretamente.

Tenho a configuração oculta do site do Discourse definida para servir a versão JS aos rastreadores. O Google parece lidar bem com isso. (Mais atualizações sobre isso em breve.)

Bom ponto, /badges também…

Estou usando um arquivo robots editado personalizado.

Estou usando Cloudflare workers para alterar o cabeçalho para 'index'.

/u/FlyNumber/summary
/u/FlyNumber/activity
/u/FlyNumber/activity/topics
/u/FlyNumber/activity/replies
/u/FlyNumber/activity/likes-given
/u/FlyNumber/badges

Gostaria também de ressaltar que remover os canônicos completamente para esses URLs seria um passo na direção certa. (Na minha opinião, meu método é melhor para SEO)

Como afirmado acima, está definido como noindex, então não tenho certeza por que o Discourse gera o canônico.

Talvez alguém conheça uma maneira inteligente de fazer isso com JS e Cloudflare Workers? Dessa forma, evito mexer no código do Discourse.

Posso configurar um “gatilho” em /u/*/summary - (só consigo acionar em /u/*) - e executar algo como isto:

const canonical = document.querySelector('link[rel="canonical"]');
if (canonical !== null) {
  canonical.href = 'NOVO_HREF_VAI_AQUI';
}

O que posso fazer aqui para passar o nome de usuário para NOVO_HREF_VAI_AQUI - e o canônico acabaria sendo /u/* em vez de /u/*/summary.

Qualquer ajuda aqui é muito apreciada.

Editar

Talvez alguém possa indicar as páginas relevantes do GitHub - arriscarei editar o código.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.