Renderização

Como o Web Rendering Service do Google executa JavaScript para montar a página indexada, além das opções de renderização — CSR, SSR, SSG, hidratação, ISR, edge e dinâmica — e suas contrapartidas de SEO.

Publicado pela primeira vez: 23 de jun. de 2026 · Última atualização: 22 de ago. de 2026 · Avançado
Idiomas
1 sinal de evidência nesta página

Renderização é a etapa em que o Google executa JavaScript em um Chrome headless sempre atualizado — o Web Rendering Service — para montar o DOM que será indexado. Isso ocorre com praticamente todas as páginas, em geral em segundos ou minutos; por isso, o antigo modelo de duas ondas de indexação está em grande parte ultrapassado, e não existe orçamento de renderização por página. O renderizador não mantém estado, não interage com a página e usa cache agressivamente. A opção de renderização determina o risco de SEO: SSR, renderização estática, pré-renderização e hidratação são seguras; CSR integral é a alternativa arriscada; renderização dinâmica é uma solução provisória.

TL;DR — O Google renderiza o JavaScript em um Chromium headless sempre atualizado — o Web Rendering Service — para montar o DOM que será indexado. Isso acontece com praticamente todas as páginas, em geral em segundos ou minutos; por isso, o modelo de “duas ondas de indexação” está em grande parte ultrapassado, e não existe orçamento de renderização por página. O WRS não mantém estado, recusa solicitações de permissão, não interage com a página e usa cache agressivamente. A opção de renderização determina o risco de SEO: SSR, renderização estática, pré-renderização e hidratação têm baixo risco; CSR integral é a alternativa arriscada; e a renderização dinâmica é uma solução provisória desaconselhada pelo Google. Para os problemas práticos de JavaScript decorrentes disso, consulte SEO para JavaScript.

Onde a renderização se encaixa

O Google afirma explicitamente que aplicativos JavaScript passam por três fases: “Google processes JavaScript web apps in three main phases: 1. Crawling 2. Rendering 3. Indexing.” (tradução) «O Google processa aplicativos JavaScript em três fases principais: 1. Rastreamento, 2. Renderização, 3. Indexação.» Evidence for this claim Google documents crawling, rendering, and indexing as the three main phases for processing JavaScript web apps. Scope: Google Search processing of JavaScript web applications; the phases can overlap operationally. Confidence: high · Verified: Google Search Central: Understand the JavaScript SEO basics A renderização é a ponte. O rastreamento busca o HTML bruto; a renderização executa o JavaScript para montar o DOM final; a indexação lê esse DOM renderizado; e todos os novos links encontrados pelo renderizador voltam para o rastreamento. Nas palavras do Google: “During the crawl, Google renders the page and runs any JavaScript it finds using a recent version of Chrome, similar to how your browser renders pages you visit.” (tradução) «Durante o rastreamento, o Google renderiza a página e executa todo JavaScript encontrado usando uma versão recente do Chrome, de maneira semelhante à que seu navegador usa para renderizar as páginas visitadas.»

Rendering is the bridge between fetching a URL and indexing its finished DOM; parity, interaction, state, and timing can break that bridge. Fonte: JavaScript SEO

Google crawls a URL, renders its JavaScript to build the DOM, and indexes the result. Four practical failure modes branch from rendering: parity when the rendered DOM differs from expectations, interaction when content requires a scroll or click, state when content relies on cleared cookies or storage, and timing when content is deferred behind slow JavaScript.

© Patrick Stox LLC · CC BY 4.0 ·

O Web Rendering Service

O Google renderiza no Web Rendering Service (WRS), um Chrome headless evergreen: “While Google Search runs JavaScript with an evergreen version of Chromium…” (tradução) «Enquanto a Pesquisa Google executa JavaScript com uma versão sempre atualizada do Chromium…». Ele acompanha o Chrome atual, portanto os recursos modernos de JavaScript e CSS funcionam.

A ressalva é que o WRS é um navegador peculiar, e suas particularidades causam a maioria dos problemas reais:

  • Ele não mantém estado. Como escrevi no meu guia de SEO para JavaScript, “Google loads each page stateless like it’s a fresh load.” (tradução) «O Google carrega cada página sem estado, como se fosse um acesso novo.» A documentação do Google detalha isso: “Local Storage and Session Storage data are cleared across page loads” (tradução) «Os dados de Local Storage e Session Storage são apagados entre carregamentos de página» e “HTTP Cookies are cleared across page loads.” (tradução) «Os cookies HTTP são apagados entre carregamentos de página.» Não dependa de nada persistido no cliente para entregar conteúdo.
  • Ele recusa permissões. “Expect Googlebot to decline user permission requests.” (tradução) «Espere que o Googlebot recuse solicitações de permissão do usuário.» Conteúdo bloqueado por uma solicitação de geolocalização, notificação ou câmera não será renderizado.
  • Ele não interage. Não há rolagem, clique ou passagem do mouse; por padrão, conteúdo carregado apenas após um desses eventos fica invisível. Essa é a origem da maioria dos problemas de lazy loading e rolagem infinita; as correções estão na página de SEO para JavaScript.
  • Ele usa cache agressivamente. “Googlebot caches aggressively in order to reduce network requests and resource usage. WRS may ignore caching headers.” (tradução) «O Googlebot usa cache agressivamente para reduzir solicitações de rede e consumo de recursos. O WRS pode ignorar cabeçalhos de cache.» Isso significa que o Google pode executar uma versão desatualizada do JavaScript ou CSS. Corrija com fingerprinting de arquivos: versione os nomes (app.4f2a9c.js) para que uma mudança de conteúdo force uma nova busca.

Experimento de 2026: cinco segundos não são um limite rígido de execução

Um experimento independente com o WRS, divulgado em julho de 2026, testou JavaScript e atividade de rede com atrasos, em vez de presumir um timeout de cinco segundos. O renderizador observado usou um relógio virtual e concluiu solicitações atrasadas que levaram aproximadamente de 6 a 12 segundos em tempo real. O resultado útil é restrito: ele contradiz a regra de auditoria comum de que tudo que ocorre depois de exatamente cinco segundos fica automaticamente invisível para o Google. Não prova que toda dependência atrasada será concluída, que o Google espera por tempo indefinido nem que a entrega lenta no cliente seja segura.

Considere o experimento e sua metodologia como evidência independente, ao lado da declaração oficial do Google de que não existe atraso fixo publicado para a fila de renderização. Na prática, teste o DOM final e os recursos solicitados. Uma resposta de API ausente, uma exigência de interação, um script bloqueado ou uma dependência de estado continuam sendo falhas reais de renderização, mesmo que a “regra dos cinco segundos” baseada no cronômetro não seja válida.

As “duas ondas de indexação” ainda existem?

Durante anos, o modelo mental foi o de “duas ondas de indexação”: primeiro o Google indexaria o HTML bruto e, dias ou semanas depois, voltaria para renderizar e indexar o conteúdo JavaScript. Esse modelo hoje está em grande parte ultrapassado. Martin Splitt afirmou que a ideia das duas ondas desempenha um papel cada vez menor, que muitas páginas passam pela fase de renderização mesmo sem depender de JavaScript e que rastreamento, renderização e indexação estão convergindo com o tempo.

Na prática, a renderização ocorre com praticamente todas as páginas e costuma ser rápida. A documentação atual do Google diz que uma página rastreada “may stay on this queue for a few seconds, but it can take longer than that” (tradução) «pode permanecer nessa fila por alguns segundos, mas pode levar mais tempo»; não há atraso fixo ou timeout publicado. Evidence for this claim Google says a crawled page may stay on the rendering queue for a few seconds, but it can take longer than that. Scope: Google's rendering queue for a page that returns a 200 status and is eligible for rendering. The source gives a variable duration, not a fixed timeout or service-level guarantee. Confidence: high · Verified: Google Search Central: rendering-queue duration Supports: A page may remain on the rendering queue for a few seconds or longer. Como dado histórico, profissionais do Google (Martin Splitt e Tom Greenaway) já situaram a mediana em cerca de cinco segundos, com o 90º percentil em minutos — não nas “semanas” sugeridas pelo receio antigo. Cito esse número no meu guia de SEO para JavaScript, mas ele deve ser tratado como dado antigo de conferência, e não como métrica publicada atual: o Google não o republicou como número contínuo, e a citação sobre a fila acima é o enquadramento oficial vigente.

Também não existe orçamento de renderização como muitas pessoas imaginam. O Google não mantém, por página, uma pontuação de “quanto custou renderizar” que precise ser economizada. A renderização é barata na escala do Google; otimize para usuários e desempenho, não para um orçamento de renderização imaginário.

As opções de renderização

“Onde o HTML é montado?” é a pergunta que determina o risco de SEO. Estas são as opções:

The useful distinction is where initial HTML is produced and what work remains for the browser. Fonte: Rendering

Static generation produces HTML at build time. Server-side rendering produces it per request. Client-side rendering relies on browser JavaScript. Hydration attaches client behavior to server or static HTML. Dynamic rendering varies output by requester and is treated as a workaround.

© Patrick Stox LLC · CC BY 4.0 ·

  • Renderização no lado do cliente (CSR). O servidor envia uma estrutura quase vazia; o navegador — ou o WRS — executa JavaScript para montar tudo. É “the most problematic one … full client-side rendering where all of the rendering happens in the browser.” (tradução) «a opção mais problemática… renderização integral no lado do cliente, em que toda a renderização acontece no navegador». Pode funcionar, mas tudo depende do sucesso da renderização, e é a opção mais lenta para ser indexada.
  • Renderização no lado do servidor (SSR). O servidor monta o HTML completo a cada solicitação. O conteúdo está no HTML bruto, portanto o risco para busca é baixo.
  • Geração de site estático (SSG) / pré-renderização. O HTML é montado uma vez, durante o deploy. É a opção de menor risco: o conteúdo está no HTML bruto e carrega rapidamente.
  • Hidratação (isomórfica / universal). A primeira exibição vem de SSR ou SSG; depois, o JavaScript “hidrata” a página no navegador para adicionar interatividade. É o que a maioria dos frameworks modernos faz e traz pouco risco ao conteúdo; apenas monitore divergências de hidratação que apaguem ou substituam conteúdo.
  • Regeneração estática incremental (ISR). Páginas estáticas são regeneradas em intervalos ou sob demanda. É semelhante à SSG, mas com conteúdo mais recente, e funciona bem para catálogos grandes.
  • Renderização na edge. SSR executada nos nós de borda da CDN: mesmo baixo risco da SSR, com time to first byte menor para um público global.
  • SSR com streaming. O HTML é transmitido ao navegador em partes, conforme fica pronto. O risco é baixo, mas o conteúdo indexável não deve ficar preso apenas em uma parte tardia ou adiada.

Minha conclusão no guia de SEO para JavaScript é: “Any kind of SSR, static rendering, and prerendering setup is going to be fine for search engines. Gatsby, Next, Nuxt, etc., are all great.” (tradução) «Qualquer configuração de SSR, renderização estática e pré-renderização funcionará bem para os mecanismos de busca. Gatsby, Next, Nuxt etc. são todos ótimos.» O framework importa menos do que o modo de renderização entregue: o mesmo aplicativo Next.js pode ser seguro ou arriscado, dependendo de servir SSR/SSG ou CSR integral.

Renderização dinâmica: solução provisória, não estratégia

Renderização dinâmica significa detectar robôs e entregar a eles uma versão pré-renderizada, sem JavaScript, enquanto usuários recebem a versão renderizada no cliente. Hoje o Google é direto: “Dynamic rendering was a workaround and not a long-term solution for problems with JavaScript-generated content in search engines,” (tradução) «A renderização dinâmica era uma solução provisória, e não uma solução de longo prazo para problemas com conteúdo gerado por JavaScript nos mecanismos de busca», e “Dynamic rendering is a workaround and not a recommended solution, because it creates additional complexities and resource requirements.” (tradução) «A renderização dinâmica é uma solução provisória e não recomendada, porque cria complexidades e exigências adicionais de recursos.» Evidence for this claim Google describes dynamic rendering as a workaround and does not recommend it as a long-term solution. Scope: Google Search guidance for JavaScript-generated content; server-side rendering, static rendering, or hydration are the recommended alternatives. Confidence: high · Verified: Google Search Central: Dynamic rendering as a workaround Eu concordo e sempre concordei: para ser franco, nunca a recomendei, e fico satisfeito que o Google também a desaconselhe hoje. Servir conteúdo diferente para robôs e usuários chega muito perto de cloaking. Prefira SSR, renderização estática ou hidratação.

Há uma ressalva: o Bing ainda sugere renderização dinâmica. A Microsoft afirma que “bingbot is generally able to render JavaScript” (tradução) «o bingbot geralmente consegue renderizar JavaScript», mas que fazer isso em escala é difícil; por isso, “we recommend dynamic rendering as a great alternative for websites relying heavily on JavaScript.” (tradução) «recomendamos a renderização dinâmica como ótima alternativa para sites que dependem muito de JavaScript.» A conclusão prática é que SSR/SSG satisfaz os dois mecanismos e evita toda a discussão.

O que isso significa para seu conteúdo

A renderização determina se o Google chegará a ver o conteúdo JavaScript, mas enxergá-lo é apenas metade do trabalho. Depois que a página é renderizada, as preocupações práticas são links <a href> reais, paridade específica por campo entre HTML bruto e renderizado, ordem das etapas das diretivas de robôs, conteúdo lazy, rolagem infinita e soft-404s. Tudo isso está na página de SEO para JavaScript, junto com o fluxo de teste — HTML renderizado, captura de tela e console da Inspeção de URL.

Esta é a etapa de renderização do pipeline de busca. Para as etapas ao redor, consulte rastreamento — como as páginas são buscadas — e indexação — o que ocorre em seguida com a página renderizada — ou o hub Como a busca funciona para ver o percurso completo.

Uma regra de auditoria merece ser mantida: renderizado é um estado, não um vencedor universal. Para conteúdo do corpo e links rastreáveis, o DOM renderizado mostra o que o JavaScript executado adicionou ou removeu. Para títulos e descrições, ele mostra entradas adicionais, mas o Google ainda pode gerar um link de título ou snippet a partir de outras fontes. No caso de diretivas de robôs, um noindex no HTML bruto pode impedir a renderização, portanto a remoção por JavaScript é assimétrica. Para canonical, o Google recomenda usar uma única fonte ou um único valor definido por JavaScript, em vez de alterar um valor existente. E o JavaScript não pode mudar o status da resposta HTTP já recebida. Mantenha essas colunas separadas nas evidências e use as orientações atuais do Google sobre SEO para JavaScript para o comportamento específico de cada campo.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.