Tenho tentado fazer o Discourse servir totalmente o aplicativo JS para o Googlebot - estou muito perto.
Por cortesia de @pfaffman e executando o código abaixo (no console do rails), consegui fazer o aplicativo JS aparecer ao usar o Chrome e falsificar o user agent para googlebot ou googlebot smartphone.
No entanto, quando testo com a ferramenta mobile-friendly do Google (ou inspeção de URL no Google Search Console), ele me dá uma captura de tela em branco com o HTML abaixo.
O Bing é semelhante, mas com eles, ele mostra o conteúdo. Acho que o Bing mostra o conteúdo porque seu crawler não é “mobile”. Postagem relevante aqui por @sam
Minha teoria é que, como o Googlebot é notório por não baixar todos os recursos ao acessar uma página, aquele JS específico (que tem a detecção de recursos e causa o revert) não é carregado e, portanto, a página fica boa.
Então, em conclusão, como alguém desabilitaria a detecção de recursos para o Googlebot (ou, se for mais fácil, para todos os crawlers/bots)?
Editar Só por garantia, se eu estiver usando a terminologia errada, quando “detecção de recursos” é mencionado no meta, isso se refere à detecção de navegador? (talvez com arquivos como browser-detect.js e outras dependências)
Ou “detecção de recursos” é uma frase ampla para o que o Discourse faz quando tenta entender a tecnologia que está tentando acessar o aplicativo?
Existe algum motivo para você querer servir a versão JS para o Googlebot? O Google provavelmente não conseguirá encontrar visualizações de lista paginadas, incluindo a página inicial paginada e tópicos que têm mais do que um certo número de postagens. Na visualização do bot, as listas de tópicos são rastreáveis, mas o Googlebot provavelmente não acionará a rolagem infinita.
Tivemos uma atualização de site muito desleixada por volta de setembro/outubro de 2019, o site principal despencou naquele momento.
Nunca nos recuperamos. O site nunca esteve melhor em termos de SEO. Claro, não é perfeito, mas estamos a anos-luz de alguns concorrentes. Sites que usam nossas imagens e textos de muitos anos nos superam em páginas. Estamos na 3ª e eles talvez estejam no topo da 2ª página.
Já passei por inúmeros blogs, vídeos, posts de SEO e até tive algumas trocas com John Mueller (no Reddit).
O máximo que consegui dele foi que poderiam ser “problemas de qualidade”. Melhoramos drasticamente o site principal desde 1º de janeiro deste ano. Nem um pingo no tráfego orgânico.
Discourse: Instalei em 2013 e esqueci. Mal verificava seu tráfego.
Se você olhar as análises do site principal, verá uma queda acentuada no final do gráfico. Foi quando comecei a trabalhar no Discourse.
Ao tentar o prerender.io no discourse, a classificação do site principal ficava uma bagunça. Às vezes, subindo 10-15 posições durante a noite, depois voltando. (Desde então parei o prerender, pois eles não conseguiam renderizar o menu principal, login, etc.)
Pelo que li online, isso é um sinal de que o Google não sabe onde te colocar. Dizem que falta só um “pouquinho” e você está do lado bom do algoritmo.
Nada do que fizemos nos últimos 3 anos desencadeou essas flutuações nos SERPs.
(Mexendo na ferramenta de desautorização do Google, limpando código, URLs limpas, estrutura do site, links internos, social, conteúdo, etc.)
Você pode argumentar, por que o Google não me penalizou em 2018? (você já tinha o discourse no subdomínio então também)
Bem, acho que foi uma multiplicidade de fatores únicos do site, sua história, perfil de links. que o fizeram despencar no final de 2019. Parece que o Google reorganizou a classificação do site e talvez tenha dado mais peso aos URLs do discourse do que anteriormente.
E o detalhe é… eu amo o Discourse. Especialmente agora que tenho passado mais tempo no meta, todos esses plugins e recursos legais que eu nem imaginava que existiam. Wiki, pagamentos por assinatura, índice, e agora o chat!!
Então, sair do discourse não é realmente uma opção, muito investido neste ponto.
Considerei isso e estou disposto a arriscar. Sei que não será perfeito, mas pelo que li e assisti, o Google se tornou muito bom em entender JS ultimamente.
Então o plano é servir o aplicativo para o Google, fazer o meu melhor para corrigir quaisquer problemas de SEO que possam surgir e aproveitar o pico de tráfego.
Posso então relatar os resultados no meta e defender que o Discourse considere otimizar o JS para o Google.
Antes mesmo de enviar a versão em JS para o Google, eu estava mexendo nela.
Testei o envio da versão em JS para o Google por volta do início de abril, mais ou menos. Lembro que ele retornava um resultado na maioria das vezes (mesmo que parecesse quebrado). Usando a ferramenta mobile do Google.
Pensei que pudesse ser este commit - fiz as edições no código, reiniciei e o mesmo comportamento.
Talvez alguém se lembre de um PR ou commit nos últimos meses que possa ter alterado a detecção de navegador e/ou crawler?
Edição Desculpem por todas as atualizações, quanto mais informação, melhor, certo?
Enquanto tentava o prerender no mês passado, o Google acabou adicionando 2000 URLs à cobertura do fórum. (principalmente estes URLs)
Todos foram servidos em 0,005 segundos, o prerender tinha os URLs em cache e prontos para o googlebot acessar. Então ele pegou todos rapidamente.
O ponto é que, talvez o crawler tenha se “acostumado muito” com o sem JS e alocado recursos para obter essas 2k páginas.
Então agora ele está acessando o site dessa maneira até que descubra as coisas (e precise acessar com mais JS), é apenas uma teoria.
Você estava trabalhando em algo que mudou a forma como o Discourse é rastreado, como tentar usar o prerender nele então?
Se você verificar seu relatório de páginas de destino no GA, ele fornece alguma pista sobre qual parte do site foi afetada?
Para o site principal, se John Muller sugeriu que há problemas de qualidade, eu revisaria a documentação de qualidade deles e me perguntaria se alguma delas se aplica.
Um candidato a uma penalidade súbita é que os URLs do site de 2019 têm 6 redirecionamentos, mas o Google diz para mantê-los “abaixo de 5” ou eles podem não seguir os redirecionamentos. Isso pode ter feito parecer ao Google que as páginas antigas desapareceram da Web.
Boa observação e, embora mal executado, levando muitos meses, o Google parece ter descoberto quais páginas significam o quê.
Em outras palavras, eventualmente, comecei a ver cada vez mais as páginas para as quais fiz 301 para as palavras-chave usadas nas páginas antigas.
Isso faz muito sentido e verei como posso implementar isso. Atualmente, o Search Console não mostra o rastreador chegando a 301 com frequência. Parece que quando a classificação melhora, eles seguem mais 301. Causalidade sem correlação, talvez.
Não é de forma alguma uma crítica ao Discourse - simplesmente não me convenço facilmente com “milhares de usuários do Discourse têm ótimo tráfego orgânico”.
O Google também não vai nos dizer.
Devemos sempre lembrar que o Google é um algoritmo, eles não estão olhando para isso com olhos humanos.
Embora ambas as versões compartilhem conteúdo semelhante, e o Google saiba que não é cloaking malicioso, eles ainda precisam ajustar a classificação.
Uma versão parece muito melhor, funciona melhor e dá alguma noção de estrutura de links internos. A outra é um feed RSS glorificado.
O Google não tem ideia de que tenho este fórum sofisticado que funciona em todos os dispositivos [modernos], realmente incentiva a discussão e é uma das coisas mais legais que a internet já criou.
Sempre gosto de usar o link do-follow “Powered by discourse” na versão do rastreador. (apenas porque é fácil)
Novamente, sei que não é malicioso, mas você deve olhar para isso através dos olhos do Google. Você, FlyNumber (não https://community.cloudflare.com/), está nos dando esta versão do rastreador com um link externo que você não mostra aos navegadores normais.
Eu poderia totalmente ver o algoritmo percebendo o que está acontecendo e ignorando o link externo para o domínio cloudflare (já que é uma autoridade tão grande)
Não é como se o que o Google aplica ao Cloudflare se aplicasse a mim.
Alguém pagou a você por este link externo que você mostra aos bots (mas não quer mostrar aos usuários normais?) é mais sobre como eles podem olhar para o site. Não estou dizendo que é isso - mas é uma possibilidade que você vai querer eliminar.
Em termos mais simples, a versão do rastreador não tem um menu ou qualquer estrutura real.
Esse é o conteúdo que o algoritmo acha que você quer servir aos usuários finais.
De uma perspectiva muito geral, não consigo ver o algoritmo recompensando isso.
Talvez seja hora de começarmos a considerar uma reforma completa da versão do rastreador. Pelo menos adicione o menu principal e os tópicos sugeridos na parte inferior.
Atualização interessante: O Google adicionou “JSON” aos “tipos de arquivo” nas estatísticas de rastreamento da minha instância do Discourse. “Javascript” é um “tipo de arquivo” separado.
Estou começando a pensar que minha lógica estava falha desde o início. Isso explicaria por que ninguém respondeu - talvez não haja nada de errado.
Aqui está um novo artigo sobre como é normal o Google mostrar uma página em branco na captura de tela
Agora consigo ver o HTML “rastreado” da página inicial, esta é a versão indexada, não do “Teste ao vivo” - mostra a página completa. Tenha em mente que o Google descobriu isso enquanto servia o aplicativo JS completo para eles.
O interessante é que eles desceram até cerca de 27 posts na página inicial em termos de indexação. Portanto, a coisa da rolagem infinita é algo que o Google entende.
Não sei se ajudou, mas desmarquei a configuração ajax nas configurações de administrador. Isso fez com que o Google encontrasse URLs como a abaixo (e servisse a versão do rastreador) - desmarquei, e agora esse URL mostrará a versão JS
Então, depois de pelo menos um mês servindo a versão SPA (versão Full JS) do Discourse, voltei para a versão crawler.
Você pode consultar meu histórico de postagens, mas eu estava argumentando que o Google poderia entender a versão JS e classificá-la melhor do que a versão crawler. Eu estava errado.
Ei @j127, você estava certo! (Vou te enviar uma mensagem privada, meu bom senhor)
Parece que o Google descobriu o site, mas apenas o classificou mais ou menos da mesma forma (se não ligeiramente inferior).
A versão crawler também foi atualizada em abril/maio em relação às cores dos links, formato, etc., então isso é uma boa ajuda.
Na minha humilde opinião, se adicionássemos um menu simples e os “tópicos sugeridos” à versão crawler, faria uma boa diferença para o SEO de todos.
Fora isso, eu só queria divulgar isso caso alguém estivesse curioso.