Encontrar e desbloquear gargalos tem mais potencial do que qualquer outra parte do SEO.

Bartosz Góralewicz

JavaScript e SEO

O crescimento da área de desenvolvimento de interface (front-end) nesses últimos anos e a proliferação de novas tecnologias JavaScript como frameworks (AngularJS, Vue.js, etc.), bibliotecas (jQuery, React, etc.) e softwares (Node.js), criaram novas problemáticas e oportunidades de SEO.

O JavaScript veio para ficar, ele é uma ótima opção para tornar as páginas do seu site mais interativas e menos entediantes.

Contudo, é também uma ótima maneira de acabar com o desempenho SEO de um site quando implementado de forma errada e até o Google admite e alerta oficialmente que: “o lado do servidor ou a pré-renderização ainda é uma ótima ideia porque torna seu site mais rápido para usuários e rastreadores, e nem todos os bots podem executar JavaScript”.

E quando se trata de um portal de notícias por exemplo, ele vai até além, dizendo que: “As páginas dos seus artigos devem usar o formato HTML e o corpo do texto não estar incorporado em JavaScript” e que “O Googlebot-News tem mais capacidade de rastrear links HTML”.

“JavaScript SEO” é um conceito relativamente novo. Ele começou a ficar popular por volta de 2016, quando foram publicados os primeiros experimentos que demostraram que o Google tinha dificuldades em renderizar o JavaScript e indexar conteúdo gerado por ele. Ele engloba tudo o que você precisa fazer para que um site baseado em JavaScript tenha um bom desempenho nos mecanismos de pesquisa e é uma especialização dentro do SEO técnico.

Apesar da complexidade, quando os desenvolvedores e SEOs colaboram de forma aberta e produtiva, sites baseados em JavaScript podem funcionar muito bem na pesquisa.

Googlebot e JavaScript

Antes de tudo, você precisa entender dois pontos em relação ao robô do Google.

O primeiro é que ele não interage com seu conteúdo, como um usuário humano faria. Por exemplo, ele não tem a capacidade de clicar em botões para expandir ou recolher o conteúdo (botões, abas, acordeões), ele só consegue enxergar o conteúdo disponível no HTML sem qualquer interação adicional. Ele também não rola através das páginas. Portanto, se o seu conteúdo estiver “escondido” atrás de uma quantidade infinita de rolagens, o Google não irá enxergá-lo.

O segundo é que o renderizador do Google tem limites de tempo. Se demorar muito para processar seu script, o Google pode simplesmente ignorá-lo.

O Googlebot processa sites e aplicativos em JavaScript em várias fases:

Processo de rastreamento, renderização e indexação do Googlebot
  1. Fila de rastreamento: Ele mantém o controle de cada URL que precisa ser rastreado e é atualizado continuamente;
  2. Rastreador: Quando o rastreador recebe URLs da fila de rastreamento, ele solicita seu HTML;
  3. Processamento: O HTML é analisado e podem acontecer várias coisas nessa fase (volta para fila de rastreamento, é indexada, vai para a fila de renderização, URLs são canônicos);
  4. Fila de renderização: mantém o controle de cada URL que precisa ser renderizado e é atualizado continuamente;
  5. Renderizador: quando o Web Rendering Services (ou WRS) recebe URLs, ele os renderiza e envia de volta o HTML renderizado para processamento;
  6. Índice: analisa o conteúdo para determinar a relevância, os dados estruturados e os links, e (re) calcula o PageRank e o layout.

E finalmente, depois desse processo todo, vem a classificação: o algoritmo de classificação extrai informações do índice para fornecer aos usuários do Google os resultados mais relevantes.

Boas práticas

É por todas essas razões e para evitar má surpresas em termos de tráfego e receita que um consultor de SEO precisa verificar a conformidade do seu desenvolvimento JavaScript com os robôs dos mecanismos de pesquisa.

Isso passa por vários pontos, como por exemplo:

  • Ter links e imagens respeitando e seguindo os padrões web

  • Usar redirecionamentos via servidor e não de JavaScript

  • Incluir o conteúdo, meta dados e diretivas na resposta HTML inicial

  • Usar a renderização do lado servidor e não somente do navegador

  • Remover qualquer bloqueio de renderização JavaScript

Cota de renderização (render budget)

O fato dos sites e páginas com alta dependência de JavaScript precisarem de mais recursos para serem renderizados para que os rastreadores possam entender o conteúdo deles, pode fazer com que essa renderização seja adiada até que o rastreador tenha recursos disponíveis para processar esse conteúdo.

Por isso, é primordial seguir as boas práticas de JavaScript SEO e facilitar o trabalho dos rastreadores.

Porque do mesmo jeito que existe um “crawl-budget” (cota de rastreamento), existe um “render-budget” (cota de renderização) atribuído e nem o Google nem nenhum outro mecanismo de pesquisa tem recursos infinitos para ficar rastreando e renderizando tudo que existe na web.

Consequentemente, o quanto mais você facilitará o trabalho dele, melhor seu site será compreendido e recompensado.

Renderização dinâmica

A renderização dinâmica é uma solução alternativa e recomendada pelo Google para facilitar a leitura e entendimento do conteúdo gerado por JS. Ela é indicada para conteúdo público gerado por JavaScript que é indexável e muda rapidamente ou para conteúdo com recursos de JS incompatíveis com os rastreadores.

Essa opção de renderização significa alternar entre conteúdo renderizado no lado do cliente (navegadores e usuários humanos) e conteúdo pré-renderizado para agentes de usuários específicos (rastreadores de mecanismos de pesquisa).

Ela funciona com o servidor detectando rastreadores num primeiro momento, e em seguida encaminhando as solicitações de rastreadores (Ex: Googlebot) para um renderizador quando solicitações de usuários humanos, elas, são veiculadas de forma normal.

Processo de renderização dinâmica

A ideia aqui é servir conteúdos semelhantes para os dois, para não parecer cloaking, só que facilitando a leitura do conteúdo para os rastreadores dos motores de buscas.

Renderização e SEO

O Google olha para o seu site através de uma perspectiva de arquitetura de busca e renderização otimizada em lote (BOR). Ele define o valor do relógio virtual (cota de renderização) que mede o custo de renderização de um site, para depois escolher quais partes do site serão renderizadas e quais delas, ignoradas.

Analisando como o Google renderiza o layout, enxerga a organização do conteúdo na página, extrai links internos e externos (localizações, atributos, etc.) e as taxas de alteração de entrada, é possível medir sua “carga de relógio virtual” por página e diagnosticar uma indexação parcial.

É importante saber se o seu conteúdo que depende de JavaScript para ser renderizado está de fato sendo indexado.

O Google, por falta de recursos e espaço, pode selecionar e indexar o site do seu concorrente por ele ter um conteúdo de maior qualidade, simplesmente porque a sua leitura e entendimento foram facilitados.

Se você não está indexado, todas as outras atividades de SEO que você está fazendo não importam.

Infográfico

Infográfico SEO JavaScript

SEO JavaScript

Serviços relacionados

Projetos relacionados

Perguntas frequentes

O que é JavaScript?

JavaScript é uma linguagem de programação que permite implementar mecanismos dinâmicos em uma página web e que é geralmente executada no navegador. É a terceira camada de tecnologias padrão da web (depois de HTML e CSS).

Como funciona o JavaScript?

Ele funciona dentro do HTML através da execução de comandos do lado cliente, ou seja, a nível de navegador e não de servidor. O Javascript é fortemente dependente do navegador que chama a página da web na qual o script está embutido.

O Google pode indexar JavaScript?

Depende. A indexação pelo Google nunca é garantida e para indexar conteúdo JavaScript as coisas ficam mais complexas ainda porque o Googlebot precisa analisar, compilar e executar o JavaScript.