
Guia · SEO
SEO para sites em JavaScript: como o Google processa e renderiza
Documentação do Google detalha as fases de rastreamento, renderização e indexação de JavaScript e lista boas práticas para títulos, canônicas, status HTTP e componentes web.
Em 30 segundos
- O Google processa JavaScript em 3 fases: rastreamento, renderização e indexação, com Chromium em versão evergreen.
- URL bloqueada no robots.txt é descartada, e só páginas com status 200 entram na fila de renderização.
- A canônica deve ficar no HTML; se injetada por JavaScript, exige o mesmo valor e uma única tag.
O Google processa JavaScript em três fases: rastreamento, renderização e indexação. A documentação do Google Search Central, atualizada em 4 de março de 2026, lista o que ainda depende da configuração do site.
Rastreamento: URL bloqueada no robots.txt é descartada
A primeira checagem é o robots.txt. Se a URL estiver marcada como bloqueada, o Googlebot não faz a requisição e descarta o endereço.
A documentação afirma que o Google Search não renderiza JavaScript de arquivos bloqueados nem de páginas bloqueadas. Para evitar a descoberta de links, o documento indica o mecanismo nofollow.
Inserir links no DOM via JavaScript é aceitável, desde que siga as boas práticas para links rastreáveis (veja links rastreáveis e texto âncora).
Em sites clássicos ou com renderização no servidor, o HTML da resposta já traz todo o conteúdo. Em parte dos sites JavaScript, o modelo é o de app shell: o HTML inicial não tem o conteúdo real e o Google precisa executar o JavaScript para vê-lo.
Renderização: o status 200 coloca a página na fila
O Googlebot enfileira para renderização todas as páginas com código HTTP 200, tenham JavaScript ou não. A exceção fica para meta tag robots ou cabeçalho que indiquem que a página não deve ser indexada.
A espera pode durar alguns segundos, mas pode ser maior. Quando há recursos disponíveis, um Chromium headless renderiza a página e executa o JavaScript.
O Googlebot então analisa o HTML renderizado em busca de links e enfileira as URLs encontradas para rastreamento. Esse mesmo HTML é usado para indexar a página.
Códigos diferentes de 200, como erros 404, podem levar ao cancelamento da renderização. A documentação ressalta que o Googlebot enfileira páginas para rastreamento e para renderização sem deixar claro, de imediato, em qual das duas filas a página está esperando.
A recomendação da fonte é renderização no servidor ou pré-renderização. Isso deixa o site mais rápido para usuários e rastreadores, e nem todos os bots executam JavaScript.
Canônica: o melhor lugar é o HTML
Títulos únicos e descritivos, junto de meta descriptions, ajudam o usuário a identificar o melhor resultado. A documentação diz que é possível definir ou alterar a meta description e o elemento <title> com JavaScript.
A canônica deve ficar no HTML. Se for necessário usar JavaScript, o valor precisa ser o mesmo já indicado no HTML original. Não se deve usar JavaScript para trocar a canônica por outra URL.
Se a página não tem a canônica no HTML, é possível defini-la com JavaScript. A injeção deve resultar em apenas uma tag canônica na página.
Implementações erradas podem criar tags múltiplas ou alterar a existente, com resultados inesperados. O guia de tag canônica detalha a consolidação de URLs duplicadas.
Código compatível e códigos HTTP com significado
O Google tem limitações sobre quais APIs e recursos de JavaScript suporta; para checar compatibilidade, a documentação remete ao guia de solução de problemas.
A recomendação é usar differential serving e polyfills quando um recurso de navegador necessário não existir. A fonte pede verificar a documentação do polyfill, já que alguns recursos não podem ser preenchidos.
O Googlebot usa o código HTTP para saber se algo deu errado. A orientação é usar códigos com significado — 404 para página inexistente, 401 para conteúdo atrás de login — e indicar com eles quando uma página mudou de URL. O guia de códigos HTTP e erros de rede cobre o efeito de cada faixa no rastreamento.
Soft 404 em aplicações de página única
Em aplicações de página única com renderização e roteamento no cliente, usar códigos HTTP com significado pode ser impossível ou impraticável. Para evitar soft 404, a documentação oferece duas saídas.
- Redirecionar via JavaScript para uma URL em que o servidor responde 404, como
/not-found. - Incluir, via JavaScript, a tag
<meta name="robots" content="noindex">nas páginas de erro.
fetch(`/api/products/${productId}`)
.then(response => response.json())
.then(product => {
if (product.exists) {
showProductDetails(product);
} else {
window.location.href = '/not-found';
}
});
History API em vez de fragmentos
O Google só descobre links que sejam elementos <a> com atributo href. Em aplicações de página única com roteamento no cliente, a documentação recomenda implementar a navegação com a History API.
Nada de fragmentos como #/products para carregar conteúdo diferente. O Googlebot não resolve essas URLs de forma confiável. O exemplo correto da fonte usa window.history.pushState para atualizar a URL e o histórico do navegador.
Meta robots: o noindex pode pular a renderização
A tag <meta name="robots" content="noindex, nofollow"> impede a indexação e o seguimento de links. É possível adicionar ou alterar a tag com JavaScript, por exemplo para marcar como noindex uma página cuja API não retornou conteúdo.
Mas há um alerta: ao encontrar noindex, o Google pode pular a renderização e a execução de JavaScript. Uma alteração posterior via JavaScript pode não funcionar como esperado.
Se a página deve ser indexada, não use noindex no código original. A diferença entre noindex e bloqueio no robots.txt está neste comparativo.
Cache: fingerprint no nome do arquivo resolve
O Googlebot faz cache de forma agressiva para reduzir requisições. O WRS, serviço de renderização usado no rastreamento, pode ignorar cabeçalhos de cache, o que leva a usar versões desatualizadas de JavaScript ou CSS.
A saída indicada é o fingerprint de conteúdo no nome do arquivo, como main.2bb85551.js. Como o nome muda a cada alteração do arquivo, a versão nova é buscada.
Dados estruturados e componentes web
A documentação permite gerar o JSON-LD com JavaScript e injetá-lo na página, com teste da implementação. A introdução a dados estruturados explica o formato.
Componentes web são suportados. Ao renderizar, o Google achata o conteúdo de shadow DOM e light DOM. Só o que estiver visível no HTML renderizado pode ser indexado.
Para conferir, a fonte indica o teste de resultados avançados ou a ferramenta de inspeção de URL, olhando o HTML renderizado. Se o conteúdo não aparece ali, não será indexado.
O uso de um elemento slot é uma forma de exibir light DOM e shadow DOM juntos.
Imagens e carregamento tardio
Imagens pesam em banda e desempenho, e o carregamento tardio (lazy-loading) é uma estratégia indicada para carregá-las quando o usuário estiver perto de vê-las. A implementação precisa seguir as diretrizes de lazy-loading do Google para continuar amigável à Busca.
O que muda na prática
Para sites que dependem de JavaScript, o primeiro passo é conferir, na inspeção de URL, se o conteúdo aparece no HTML renderizado — é isso que o Google usa para indexar. Vale também verificar se o robots.txt não bloqueia arquivos necessários e se a URL canônica está no HTML, e não apenas gerada no cliente.
Checagem das afirmações
- Fato
O Google processa aplicações JavaScript em três fases: rastreamento, renderização e indexação.
- Fato
O Google Search executa JavaScript com uma versão evergreen do Chromium.
- Fato
Todas as páginas com código HTTP 200 entram na fila de renderização, com ou sem JavaScript; códigos diferentes de 200 podem ter a renderização pulada.
- Fato
O Google Search não renderiza JavaScript de arquivos bloqueados nem de páginas bloqueadas no robots.txt.
- Fato
A melhor forma de definir a URL canônica é no HTML; se for necessário usar JavaScript, o valor deve ser o mesmo do HTML original e gerar uma única tag.
- Fato
Ao renderizar, o Google achata o conteúdo de shadow DOM e light DOM e só pode indexar o que estiver visível no HTML renderizado.
Fontes
Primárias
- Understand JavaScript SEO Basics | Google Search Central | Google for Developers — Google, acessado em 6 de novembro de 2026