Renderização de JavaScript e indexação
JavaScript Rendering é o processo pelo qual um bot de busca executa os scripts de uma página para ver conteúdo que não está presente no HTML original. O Google consegue fazer isso, mas em duas etapas e não de forma instantânea; outros bots e parsers nem sempre têm essa capacidade.
Como acontece
- O bot baixa o HTML original e indexa imediatamente o que está presente nele.
- A página entra em uma fila de renderização.
- Quando chega ao início da fila, os scripts são executados e o índice é atualizado.
Entre a primeira e a terceira etapa, podem se passar de horas a semanas. Para notícias e páginas que mudam rapidamente, isso é crítico; para as demais, é tolerável.
Quando surgem problemas
| Situação | Risco |
|---|---|
| Todo o conteúdo é carregado por um script | Atraso na indexação, às vezes perda de parte do texto |
| Os links são feitos não com a tag a, mas com um manipulador de clique | O bot não os segue: as páginas não são encontradas |
| O conteúdo aparece após uma ação do usuário | O bot não o verá: ele não clica |
| Os scripts estão bloqueados no robots.txt | A renderização é impossível |
| O script falha em uma conexão lenta | A página é indexada como vazia |
Como verificar sua página
A forma mais simples é desativar o JavaScript no navegador e abrir a página: o que sobrar é o que o bot vê de imediato e com certeza. A segunda forma é comparar o código original da página com a árvore renderizada nas ferramentas de desenvolvedor. Se textos e links críticos estiverem apenas na segunda, vale investigar.
O que fazer
Não abandone o JavaScript, mas mantenha os elementos principais no HTML original: texto, títulos, links internos e metadados. Todo o resto pode ser carregado de qualquer forma. Para sites grandes, geralmente se aplica renderização no servidor ou pré-geração de páginas.
Outros bots têm menos capacidade
O bot do Google renderiza páginas, mas muitos outros, como crawlers de redes sociais, coletores de prévia de links e alguns agentes de IA, leem apenas o HTML original. Se o title e a description aparecem na página por meio de um script, o link para o seu site em um mensageiro aparecerá como um card vazio.