Marketing digital!
tipo netflix!
Se torne especialista em marketing digital com nosso incrível combo de cursos!
Saiba maisfechar
SEO e JavaScript para aplicações web

SEO e JavaScript para aplicações web

Se você está desenvolvendo uma aplicação web usando JavaScript ou migrando seu site, você vai precisar tomar alguns cuidados para garantir que todo o seu conteúdo esteja sendo rastreado e indexado pelo Google.Mas, calma! O Google dá suporte a JavaScript. Além disso, desde maio de 2019 passou a usar uma versão contínua do Chromium[1], na qual trouxe mais de 1.000 novos recursos para o Googlebot. Aliás, o que é Googlebot?

Googlebot
(Créditos: Google)

O Googlebot é o rastreador que visita as páginas da web para incluí-las no índice da pesquisa do Google. Com o avanço da tecnologia, o Google teve que atualizar seu rastreamento para executar a renderização das aplicações web em JavaScript.O JavaScript continua sendo a linguagem de programação mais utilizada, de acordo com a pesquisa Stack Overflow[2], realizada com mais de 32 mil desenvolvedores. O JavaScript apresenta 69% de uso, ou 39% quando os desenvolvedores foram solicitados a especificar sua "linguagem de programação primária". Curiosidades no resultado da pesquisa: Java caiu para 35,35% e Python subiu para 48,2%.

Resultados da pesquisa Stack Overflow sobre as linguagens de programação mais utilizadas
(Créditos: The Register)

Considerando a evolução e crescimento do uso de JavaScript, o grande desafio do Google é entender o conteúdo que não foi encontrado no primeiro rastreamento, ou seja, os conteúdos dinâmicos que são carregados muitas das vezes após uma interação do usuário como: cliques, rolagem e etc.No passado, os rastreadores do Google só enxergavam o HTML estático, mas isso é diferente hoje. Com todas essas mudanças, o Google consegue rastrear JavaScript, porém é um trabalho extra. Observe, na imagem abaixo, como o Googlebot processa os sites em três fases principais:

  • Rastreamento;
  • Renderização;
  • Indexação.

Imagem explicando como o Googlebot processa os sites em três fases principais (rastreamento, renderização e indexação).
(Créditos: Google)

Confira também no vídeo:

O Googlebot rastreia, renderiza e indexa as páginas, mas essa segunda onda pode demorar um tempo e indexar informações desatualizadas do seu site.Neste sentido, o ponto principal seria disponibilizar pelo menos os conteúdos e links principais diretamente no html.A conexão do profissional de SEO com a equipe técnica é muito importante. Os desenvolvedores, frequentemente, precisam tomar decisões a respeito de arquitetura e renderização para as aplicações web. Às vezes são decisões difíceis, considerando que temos várias formas diferentes para desenvolver um site.O caminho ideal nessa conexão é levar em consideração o impacto no SEO ao escolher uma estratégia de renderização na web. Encorajo os desenvolvedores a considerar a renderização do servidor ou a renderização estática ao invés de uma abordagem de reidratação completa.Para entender melhor tudo isso, precisamos conhecer cada abordagem e as diferenças entre elas, olhando sempre para a performance e a rastreabilidade.

Renderização

  • SSR - Server-Side Rendering: Renderização do lado do servidor - renderizando um aplicativo do lado do cliente ou universal para HTML no servidor.
  • CSR - Client-Side Rendering: Renderização do lado do cliente - renderização de um aplicativo em um navegador, geralmente usando o DOM.
  • Reidratação: “inicializando” visualizações JavaScript no cliente de forma que eles reutilizem a árvore e os dados DOM do HTML renderizado pelo servidor.
  • Pré-renderização: executando um aplicativo do lado do cliente no momento da construção para capturar seu estado inicial como HTML estático.

Atuação

  • TTFB - Time to First Byte: Tempo até o primeiro byte - visto como o tempo entre clicar em um link e o primeiro bit de conteúdo que chega.
  • FP - First Paint: First Paint: a primeira vez que qualquer pixel fica visível para o usuário.
  • FCP - First Contentful Paint: o momento em que o conteúdo solicitado (corpo do artigo, etc.) se torna visível.
  • TTI - Time To Interactive: o momento em que uma página se torna interativa (eventos conectados, etc).

Resumidamente, a renderização do lado do cliente e servidor podem funcionar, mas os testes manuais na ferramenta Mobile Friendly Test são extremamente importantes para garantir que a abordagem escolhida permite o rastreamento do seu conteúdo.

Interface da ferramenta Mobile Friendly Test
(Créditos: Google)

A ferramenta mostra uma visualização de como a página aparece para o rastreador do Google, o conteúdo HTML encontrado (após a execução do JavaScript) e todos os erros encontrados durante a renderização.Bom, ao decidir sobre sua abordagem de renderização, meça e entenda quais são seus gargalos. O importante é garantir que a renderização estática ou a renderização do servidor entregue uma experiência incrível para os usuários e rastreadores da web. Lembrando, é normal enviar HTML com o mínimo de JavaScript para obter uma experiência interativa.Vejam o infográfico mostrando na ótica cliente (browser/navegador e renderizadores para telas em geral)/servidor:

Interação browser e servidor
(Créditos: Google)

Mas, Diego, mesmo com todas as evoluções, por que muitos profissionais de SEO ficam nervosos quando o assunto é implementação de sites usando JavaScript?A resposta do próprio Google é simples: "as coisas podem dar errado[4], existem vários aspectos a considerar no ponto de vista de SEO ao criar ou alterar sua aplicação web".Até por acidente você pode impedir o Googlebot de rastrear o seu site. Por exemplo:

  • Páginas com meta tag noindex;
  • Impedir rastreador de ler os arquivos em JavaScript;
  • Configurar servidor erroneamente e que impeça o rastreador acessar o site e os conteúdos;
  • Bloquear no robots.txt.

Esses problemas podem acontecer em qualquer tipo de site, com JS ou não. Eu já passei por situações de deixar os “cabelos brancos”. Você acordar e ver que as URLs que estavam indexadas começaram a desaparecer da SERP ou começaram a indexar URLs indesejadas é muito tenso.Eu tive um problema, no qual o desenvolvedor incluiu, sem querer, um bloqueio “no robots” e um site com mais de 2 milhões de URLs indexadas começou a despencar. Começamos, desesperadamente, a analisar para entender o que estava acontecendo e depois de muita correria descobrimos uma implementação errônea “no robots”.O segundo problema foi que nós tínhamos um bloqueio para todas as URLs com parâmetros indesejados e essas URLs sempre tiveram o mesmo parâmetro, por exemplo:

O robots.txt sempre foi assim: Disallow: /*?filtroDe repente, foram alterados os parâmetros das URLs para: ?filter

Homem espantado e código fonte ao fundo

E não avisaram a equipe de SEO, depois de alguns dias percebemos um pico grande no Google Console com aumento de URLs indexadas. Resumindo, foram indexadas mais de 100 mil URLs porque o Google não tinha esse bloqueio no robots.txtTudo isso pode ser evitado, principalmente quando a equipe de SEO trabalha bem próxima da equipe de desenvolvimento front e back-end.Aqui, na DiTi Performance, nós utilizamos uma metodologia de SEO que desenvolvemos ao longo desses últimos 15 anos, na qual toda parte técnica é orientada e acompanhada por profissionais e guides de SEO. Estamos à sua disposição para falar sobre seus desafios e pra finalizar, eu vou deixar aqui 10 dicas para você corrigir problemas de JavaScript que impactam o SEO.[5]Ah, e se ainda ficou com dúvidas, não hesite em comentar aqui.

Fontes:

Leia também: