Aller au contenu
Fundamentos de SEO

JavaScript e SEO: renderização e indexação

9 min

O Google pode renderizar o JavaScript, mas com um atraso que pode ir de alguns segundos a várias semanas consoante a autoridade do site. Os conteúdos críticos (texto principal, links, dados estruturados) não devem depender do JavaScript para serem visíveis. O Server-Side Rendering (SSR) ou o prerendering são as soluções recomendadas.

Os frameworks JavaScript modernos (React, Vue, Angular, Next.js) dominam o desenvolvimento web. Mas a sua relação com o SEO continua complexa: se o Google progrediu na renderização JS, os riscos de indexação parcial ou atrasada são reais e dispendiosos.

Como o Google trata o JavaScript

O Googlebot descarrega o HTML inicial da página e coloca em seguida a renderização JavaScript numa fila de espera (WRS — Web Rendering Service). A renderização completa pode ocorrer segundos, dias ou até semanas depois consoante a popularidade do site e a carga do motor.

Este atraso de renderização significa que o conteúdo JS-only é sistematicamente indexado mais tarde do que o conteúdo HTML estático. Num site de baixa autoridade, alguns conteúdos podem nunca ser corretamente renderizados.

Os riscos concretos para a indexação

O conteúdo exibido apenas após uma interação do utilizador (clique, scroll, separador) nunca é visto pelo Googlebot. Os acordeões de FAQ, os separadores de conteúdo e os conteúdos em hover são os casos mais comuns.

Os links gerados dinamicamente por JavaScript nem sempre são seguidos pelo Googlebot. Se a sua estrutura de ligações internas assenta em links criados após o carregamento da página, uma parte da sua arquitetura permanece invisível ao crawler.

  • Conteúdo por trás de um evento de clique ou hover: não indexado.
  • Links num menu hamburger JS puro sem fallback HTML: potencialmente ignorados.
  • Dados estruturados JSON-LD injetados via JS: renderização diferida, elegibilidade para rich results atrasada.
  • Meta tags geradas do lado do cliente: title e description potencialmente ausentes no primeiro crawl.
  • Texto de paginação carregado via AJAX sem URL dedicado: conteúdo invisível.

As soluções recomendadas

O Server-Side Rendering (SSR) gera o HTML completo no servidor antes de o enviar ao navegador. O Googlebot recebe um HTML rico logo no primeiro crawl, sem aguardar a renderização JavaScript. O Next.js, o Nuxt.js e o SvelteKit propõem SSR nativamente.

O Static Site Generation (SSG) pré-gera as páginas a cada build. Ainda mais rápido do que o SSR, mas adequado apenas para conteúdos pouco frequentemente atualizados.

Se uma refonte em SSR não for viável, o prerendering através de um serviço como o Rendertron ou o Prerender.io deteta o Googlebot e serve-lhe uma versão HTML estática pré-renderizada da página.

Os sites que migram de uma arquitetura SPA (Single Page Application) para SSR observam em média uma melhoria de 20 a 50 % do número de páginas indexadas nos 60 dias seguintes à migração.

Estudos sectoriais 2025-2026 sobre migrações SSR e indexação

Diagnosticar os problemas de renderização JS no seu site

A ferramenta de inspeção de URL da Search Console propõe uma captura de ecrã da página tal como o Googlebot a vê. Compare esta captura com a visualização real no seu navegador: qualquer diferença revela um problema de renderização.

Teste também desativando o JavaScript no Chrome (DevTools > Settings > Debugger > Disable JavaScript): se a sua página não exibir nada ou perder os seus links de navegação, tem um problema SEO crítico a resolver.

FAQ

O Google consegue indexar corretamente uma SPA (Single Page Application)?

Sim, mas com limitações e atrasos. O conteúdo das SPAs é indexado após renderização JavaScript, o que pode demorar várias semanas. Em sites competitivos, este atraso é uma desvantagem real. O SSR ou o prerendering continua a ser a solução mais fiável.

O Next.js é uma boa escolha para SEO?

Sim, é um dos frameworks mais SEO-friendly do mercado. Propõe SSR, SSG e ISR (Incremental Static Regeneration) nativamente. As balizas meta, o sitemap e os dados estruturados podem ser gerados do lado do servidor sem configuração complexa.

Os conteúdos em separadores ou acordeões são indexados?

O Google afirma que o conteúdo ocultado por CSS (display:none ou visibility:hidden) pode ser indexado mas com uma ponderação reduzida. O conteúdo por trás de uma interação JavaScript é mais problemático. Para FAQ ou informações-chave, prefira uma exibição HTML nativa com details/summary ou certifique-se de que o conteúdo está presente no HTML inicial.

É necessário tornar o JavaScript compatível para todos os bots, ou apenas o Google?

O Google é o único motor a renderizar ativamente o JavaScript. O Bing está a progredir mas continua atrás. Se a sua audiência vem principalmente do Google, concentre os seus esforços na compatibilidade com o Googlebot. Uma arquitetura SSR beneficia automaticamente todos os bots.