---
title: "Sites de baixo envolvimento: geração estática e cache HTML"
locale: pt
category: knowledge_base
category_name: "Base de Conhecimento"
translation_status: reviewed
license: cc_by
author: "injoys"
source_url: https://injoys.com/en/articles/low-involvement-web-static-generation-html-cache
published_at: 2026-11-05T07:45:55+09:00
---

# Sites de baixo envolvimento: geração estática e cache HTML

> No projeto técnico de sites de baixo envolvimento, é preciso verificar tanto o conteúdo principal presente no HTML inicial quanto o cache de HTML da CDN. O TTFB de 0.8 segundo é um valor de referência para melhorar o desempenho, e o escopo de aplicação do cache e sua atualização após alterações também devem ser planejados.

## Key Points

- Incluir o conteúdo principal no HTML inicial pode reduzir a dependência da execução de JavaScript.
- Como o Google executa JavaScript, não é possível concluir que houve falha no rastreamento apenas pelo uso de React.
- Um TTFB de no máximo 0.8 segundo é um valor de referência para melhorar o desempenho e não representa o tempo de carregamento da página inteira.
- A CDN do Cloudflare não armazena HTML em cache por padrão, por isso é necessário verificar as regras de cache das páginas públicas.
- O cache de HTML exige a exclusão das páginas de login e uma política de atualização após alterações no conteúdo.

Para facilitar o rastreamento de sites de baixo envolvimento pelos mecanismos de busca, o conteúdo principal deve estar no HTML inicial. Para conteúdos públicos, a geração estática e o cache de HTML na CDN são úteis. Porém, atingir um TTFB de 0.8 segundo não garante visibilidade nos resultados de busca.

A referência para o valor de TTFB é a documentação do web.dev atualizada em 18 de novembro de 2025.

## Condições técnicas a verificar primeiro em sites de baixo envolvimento

Neste artigo, sites de baixo envolvimento são aqueles usados para consultar rapidamente as informações necessárias. A renderização e a velocidade de entrega são itens de verificação técnica desses sites. Porém, esses dois itens não explicam todas as diferenças de visibilidade nos resultados de busca.

O rastreamento é o processo em que um robô busca uma página. A indexação é o processo de preparar o conteúdo obtido para que possa aparecer nas buscas. O Google explica que nem todas as páginas rastreadas são incluídas no índice. [Guia do Google sobre orçamento de rastreamento](https://developers.google.com/crawling/docs/crawl-budget)

| Item de verificação | O que verificar | Problema a resolver |
| --- | --- | --- |
| HTML inicial | Se o título e o conteúdo principal estão incluídos na resposta | Dependência de execução adicional para ler o conteúdo |
| Renderização | Se o conteúdo aparece corretamente após a execução do JavaScript | Ausências causadas por erros de execução ou bloqueios |
| TTFB | Tempo até a chegada da primeira resposta | Atrasos na conexão e na resposta do servidor |
| Cache de HTML | Se os documentos públicos são reutilizados na CDN | Custo de solicitações repetidas ao servidor de origem |
| Status de indexação | Como o Google processou a URL | Confusão entre rastreamento bem-sucedido e inclusão na busca |

## Por que páginas React podem parecer um HTML vazio

O HTML inicial de uma página React varia conforme a implementação. A abordagem que gera o conteúdo no navegador é chamada de CSR. Nela, a primeira resposta pode conter apenas o código de execução, sem o conteúdo.

O Google usa o Chromium para executar JavaScript. Após o rastreamento, a página pode ficar aguardando a renderização. Páginas ou arquivos bloqueados podem ser excluídos da renderização. Além disso, nem todos os robôs executam JavaScript. [Guia básico do Google sobre SEO para JavaScript](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)

Portanto, não avalie o status do rastreamento apenas porque a página aparece corretamente na tela. Primeiro, verifique se o conteúdo está na resposta inicial. O resultado renderizado pelo Google pode ser conferido na inspeção de URL do Search Console.

## Comparação entre geração estática e renderização no servidor

A forma de gerar o HTML pode ser escolhida conforme a maneira de atualizar o conteúdo público. A geração estática cria o HTML antes da solicitação. A renderização no servidor cria o HTML no servidor quando a solicitação é recebida. Essas abordagens também podem ser usadas com React. [Guia do web.dev sobre formas de renderização](https://web.dev/articles/rendering-on-the-web)

| Abordagem | Quando o HTML é gerado | Situações em que vale considerá-la | Pontos operacionais a verificar |
| --- | --- | --- | --- |
| Renderização no cliente CSR | Quando o JavaScript é executado no navegador | Telas com muita interação do usuário | Execução e solicitações necessárias até a exibição do conteúdo |
| Geração estática SSG | Durante o build ou a criação do conteúdo | Documentos públicos que mostram o mesmo conteúdo aos visitantes | Nova geração e implantação após alterações |
| Renderização no servidor SSR | Durante o processamento da solicitação da página | Telas que montam conteúdo atualizado a cada solicitação | Tempo de consulta de dados e geração do HTML |
| Pré-renderização | Quando o aplicativo é executado antes da implantação para obter o HTML | Quando se deseja fornecer antecipadamente o conteúdo inicial de um aplicativo existente | JavaScript necessário para as funcionalidades posteriores |

A geração estática e a CDN têm funções diferentes. A geração estática é uma escolha sobre quando criar o HTML. A CDN é uma estrutura para entregar e reutilizar conteúdo. O HTML gerado no servidor também pode ser armazenado em cache na CDN, se atender às condições.

## O que significa um TTFB de 0.8 segundo?

TTFB é o tempo entre o início da navegação para uma página e o recebimento do primeiro byte da resposta. O web.dev sugere **no máximo 0.8 segundo** como meta aproximada para a maioria dos sites. Isso é diferente do tempo necessário para exibir a página inteira. O TTFB também não faz parte das Core Web Vitals. [Explicação do web.dev sobre TTFB](https://web.dev/articles/ttfb)

O TTFB inclui atrasos além do processamento interno do servidor. A consulta DNS é o processo de encontrar o endereço de conexão de um domínio. As conexões TCP e TLS também podem levar tempo. Redirecionamentos para outro endereço também têm impacto.

- Tempo de consulta DNS e preparação da conexão
- Tempo de trânsito das solicitações e respostas pela rede
- Tempo de consulta de dados e geração do HTML no servidor de origem
- Tempo dos redirecionamentos que ocorrem antes da primeira resposta

O fato de o servidor estar em Seul não basta para concluir que o tempo será de mais de 0.8 segundo. O resultado varia conforme o local de acesso e a reutilização da conexão. Os rastreadores do Google usam principalmente endereços IP dos Estados Unidos. Porém, também podem acessar a partir de endereços IP de outros países. [Características técnicas dos rastreadores do Google](https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers?hl=en)

Atrasos contínuos nas respostas afetam a capacidade de rastreamento do Google. Erros do servidor também podem reduzir o volume de rastreamento. Isso não significa que exista uma regra que interrompa o rastreamento quando o tempo ultrapassa 0.8 segundo uma única vez. A qualidade das páginas e a frequência de atualização também influenciam a demanda de rastreamento. [Guia do Google sobre orçamento de rastreamento](https://developers.google.com/crawling/docs/crawl-budget)

## Por que verificar o cache de HTML na CDN

A CDN da Cloudflare não armazena HTML em cache por padrão. Mesmo que imagens ou CSS estejam em cache, o documento com o conteúdo precisa ser verificado separadamente. Consulte a documentação do serviço para conferir o comportamento padrão de outras CDNs.

> A CDN da Cloudflare não armazena HTML ou JSON em cache por padrão.
>
> Cloudflare, Comportamento padrão do cache

Essa frase significa que HTML e JSON não são armazenados em cache por padrão. É possível incluir HTML público no cache usando Cache Rules. O armazenamento efetivo também depende de condições como cabeçalhos de resposta e cookies. [Comportamento padrão do cache da Cloudflare](https://developers.cloudflare.com/cache/concepts/default-cache-behavior/)

O cache é um recurso que reutiliza respostas armazenadas. Conectar uma CDN não faz com que todos os documentos sejam imediatamente replicados no mundo inteiro. A Cloudflare armazena o conteúdo em cache no centro de dados que processa a solicitação. Solicitações sem conteúdo disponível no cache podem exigir uma consulta ao servidor de origem. [Guia inicial de cache da Cloudflare](https://developers.cloudflare.com/cache/get-started/)

Ao aplicar regras de cache ao HTML público, exclua as páginas personalizadas. A Cloudflare alerta que o cache de HTML dinâmico pode entregar informações de outras pessoas. Não armazene páginas de login ou de conta em cache. [Cuidados com o Cache Everything da Cloudflare](https://developers.cloudflare.com/cache/how-to/cache-rules/examples/cache-everything/)

## Critérios para aplicar cache conforme as condições da página

O ponto de partida para definir o escopo do cache é saber se os visitantes recebem o mesmo conteúdo. Textos explicativos públicos são bons candidatos à reutilização compartilhada. Respostas cujo conteúdo varia conforme o estado de login devem ser tratadas separadamente.

| Condição da página | Configuração a considerar | O que verificar em conjunto |
| --- | --- | --- |
| Mesmo texto explicativo para todos os visitantes | Geração estática e cache de HTML público | Nova geração e atualização do cache após alterações |
| Conteúdo público com valores que mudam com frequência | Separação das formas de atualização do conteúdo e dos dados variáveis | Momento de referência dos valores e exibição em caso de falha |
| Necessidade de informações públicas atualizadas no momento da solicitação | Avaliação de renderização no servidor e cache condicional | Atraso aceitável das informações |
| Telas de login, conta e pagamento | Exclusão do cache compartilhado de HTML | Cookies de autenticação e respostas por usuário |
| Documentos públicos em diferentes idiomas | URLs por idioma e cache de cada documento | Vínculos entre traduções e atualizações por idioma |

Carregar os dados em tempo real posteriormente facilita a manutenção do conteúdo estático. Porém, não deixe para depois todo o conteúdo essencial para a busca. Isso pode contrariar o objetivo de fornecer o HTML inicial.

## Erros comuns e critérios de verificação

Avaliar os resultados apenas pelo nome da tecnologia ou pela tela de configuração facilita que erros passem despercebidos. Verifique tanto o HTML real quanto os cabeçalhos de resposta. Os estados a seguir precisam ser diferenciados.

| Avaliação comum | Critério a verificar |
| --- | --- |
| Robôs de busca não conseguem ler sites React | HTML inicial e resultado da renderização do Google |
| Com TTFB de 0.8 segundo, toda a tela já está exibida | Tempo entre a primeira resposta e a exibição do conteúdo |
| Se a CDN está conectada, o HTML também está em cache | Status de cache da solicitação de HTML |
| Arquivos estáticos sempre têm o conteúdo mais recente | Momento da última geração e conteúdo implantado |
| Uma resposta rápida significa que a inclusão na busca foi concluída | Status do processamento de indexação no Search Console |
| Um único acerto de cache basta para avaliar a velocidade global | Resultados de medição por região de acesso e por ocorrência ou não de acerto de cache |

O `CF-Cache-Status` da Cloudflare é um cabeçalho que mostra o status do cache. `HIT` significa que a resposta foi encontrada no cache. `MISS` significa que ela não estava no cache no momento da solicitação e foi obtida na origem. `DYNAMIC` indica que a resposta não foi tratada como elegível para cache. [Explicação da Cloudflare sobre respostas de cache](https://developers.cloudflare.com/cache/concepts/cache-responses/)

## Atualização do cache após alterações no conteúdo

Ao usar arquivos estáticos e cache na CDN, também é necessário planejar como as alterações serão refletidas. Mesmo que a origem seja alterada, o conteúdo antigo será entregue se o cache anterior permanecer. Se HTML e JSON forem publicados juntos, o conteúdo dos dois formatos também precisa corresponder.

A seguir está a sequência de verificação para manter documentos e arquivos de dados em conjunto.

1. Confirme as alterações nos dados de origem.
2. Gere novamente o HTML e os arquivos de dados a partir da mesma versão alterada.
3. Após implantar os novos arquivos, atualize o cache das URLs alteradas.
4. Solicite cada URL novamente e verifique se as alterações correspondem.

A Cloudflare recomenda a limpeza de cache por URL. Limpar o cache significa remover as respostas armazenadas. Gerar novamente o HTML estático é uma tarefa separada. Por isso, integre a geração dos arquivos e a atualização do cache ao mesmo procedimento de implantação. [Guia da Cloudflare sobre limpeza de cache](https://developers.cloudflare.com/cache/how-to/purge-cache/)

Defina o intervalo de atualização conforme o atraso de informação aceitável para o conteúdo. Não é necessário aplicar o mesmo intervalo a textos explicativos e valores em tempo real. Um prazo curto de validade do cache, por si só, não resolve todos os problemas de atualização.

## Critérios de hreflang para sites multilíngues

`hreflang` é uma informação que conecta os endereços das versões do mesmo conteúdo por idioma e região. Não é um recurso que produz traduções. Ele ajuda o Google a encontrar a versão no idioma adequado para o visitante.

| Local de implementação | Forma de indicação | O que verificar ao escolher |
| --- | --- | --- |
| HTML | Links para idiomas alternativos no `head` do documento | Se é possível gerenciá-los no template de cada página |
| Cabeçalho HTTP | Indicação no cabeçalho `Link` da resposta | Se é possível gerenciar os cabeçalhos no servidor |
| Sitemap | Indicação das relações entre URLs por idioma no sitemap | Se é possível gerenciar a lista de documentos em conjunto |

O Google trata esses métodos de forma equivalente. Portanto, não é obrigatório inserir essas informações apenas no HTML. Cada documento de idioma deve indicar a si mesmo e os documentos em idiomas alternativos. Verifique também os vínculos entre as páginas correspondentes. [Guia do Google sobre páginas multilíngues](https://developers.google.com/search/docs/specialty/international/localized-versions)

## Sequência de verificação dos resultados da implantação

Após a implantação, valide separadamente a entrega do conteúdo e o funcionamento do cache. Registre a região de medição e o status do cache junto com os valores de velocidade. A sequência a seguir facilita a identificação dos pontos com problemas.

1. Verifique a resposta do documento HTML nas ferramentas de desenvolvedor do navegador. Confira se o conteúdo principal está incluído na resposta.
2. Verifique o HTML renderizado na inspeção de URL do Search Console. Confira também, separadamente, o status real do processamento de indexação.
3. Verifique os cabeçalhos de cache da resposta HTML. Na Cloudflare, consulte o `CF-Cache-Status`.
4. Meça o mesmo documento nas principais regiões de acesso. Diferencie as solicitações sem conteúdo no cache daquelas com acerto de cache.
5. Após alterar o conteúdo, confira o resultado da atualização. Verifique também se as páginas de login estão excluídas do cache.

A Cloudflare alerta que o uso excessivo de cache de HTML dinâmico pode prejudicar o funcionamento do login. Não armazene formulários de login nem páginas autenticadas em cache. Após as alterações, verifique também se os cookies de autenticação são mantidos. [Guia da Cloudflare sobre problemas de login](https://developers.cloudflare.com/cache/troubleshooting/dynamic-content-and-login-issues/)

## Requisitos de implementação a passar para a IA na programação

Ao pedir algo à IA, solicite resultados verificáveis junto com os nomes das tecnologias. É útil especificar o conteúdo do HTML inicial e o escopo de exclusão do cache. O texto abaixo é um exemplo de solicitação para criar páginas públicas de conhecimento.

```text
Inclua o conteúdo principal das páginas públicas de conhecimento no HTML inicial.
Priorize a avaliação da geração estática para documentos públicos.
Explique separadamente a forma de atualização dos dados variáveis.
Verifique se o cache de HTML da CDN está sendo aplicado.
Exclua páginas de login, conta e pagamento do cache compartilhado.
Vincule a nova geração dos arquivos estáticos à atualização do cache quando o conteúdo for alterado.
Se houver páginas multilíngues, configure os vínculos de hreflang.
Apresente formas de verificar o HTML inicial, o status do cache e se as alterações foram refletidas.
```

## FAQ

### Sites de baixo envolvimento precisam ser criados com um framework específico?
Não é obrigatório usar um framework específico. Verifique se o conteúdo principal está incluído no HTML inicial. Também é necessário avaliar como o conteúdo público é armazenado em cache e atualizado.

### O Google não executa JavaScript?
O Google executa JavaScript com o Chromium. No entanto, a espera pela renderização e os recursos bloqueados podem afetar o processamento. Incluir o conteúdo principal no HTML inicial reduz a dependência de execuções adicionais.

### Sites criados com React também podem usar geração estática?
Também é possível gerar HTML estático com React. Ele também oferece suporte à geração de HTML no servidor. Não é possível determinar o conteúdo do HTML inicial apenas pelo uso ou não de React.

### Se o TTFB for de no máximo 0.8 segundo, a página já estará totalmente carregada?
TTFB é o tempo até a chegada do primeiro byte da resposta. O download de imagens e a montagem da página na tela podem continuar depois disso. É necessário distingui-lo do tempo de carregamento completo da página.

### Um TTFB acima de 0.8 segundo leva à exclusão da pesquisa do Google?
0.8 segundo é uma meta aproximada de desempenho apresentada pelo web.dev. Não é uma regra que determine a exclusão da pesquisa quando esse valor é ultrapassado. Atrasos persistentes nas respostas e erros do servidor podem afetar a capacidade de rastreamento.

### Usar um servidor na Coreia prejudica um site global?
Visitantes que estão longe podem enfrentar latência de rede. No entanto, não é possível determinar um tempo de resposta específico apenas pela localização. Avalie com base em medições reais nas principais regiões de acesso.

### Ao conectar o Cloudflare, o HTML também é armazenado em cache automaticamente?
A CDN do Cloudflare não armazena HTML nem JSON em cache por padrão. Verifique as Cache Rules a serem aplicadas ao HTML público. Depois de aplicar as regras, confira o estado real do cache pelos cabeçalhos de resposta.

### A primeira solicitação que não está no cache da CDN também é sempre rápida?
Uma solicitação que não está no cache pode precisar buscar a resposta no servidor de origem. Por isso, sua latência pode ser diferente da latência de uma solicitação atendida pelo cache. Meça os dois casos separadamente.

### Também posso aplicar cache de HTML às páginas de login?
Não armazene em cache páginas de login nem HTML de usuários autenticados. O Cloudflare alerta que o uso excessivo de cache pode comprometer o funcionamento do login. Também há o risco de informações específicas de um usuário serem entregues a outros visitantes.

### O que fazer se eu editar um artigo em um site estático, mas o conteúdo anterior continuar aparecendo?
Primeiro, verifique se o novo HTML foi gerado e publicado. Depois, atualize o cache da CDN da URL alterada. Apenas limpar o cache não gera novamente os arquivos estáticos.

### O hreflang deve ser incluído apenas no HTML?
O Google oferece suporte a HTML, cabeçalhos HTTP e sitemaps. Os três métodos são equivalentes do ponto de vista do Google. Escolha o método mais fácil de administrar e mantenha consistentes as associações entre as versões em diferentes idiomas.

### É necessário gerenciar de forma intensiva o orçamento de rastreamento mesmo em sites pequenos?
As orientações do Google sobre orçamento de rastreamento se destinam principalmente a sites grandes e atualizados com frequência. Se o site tiver poucas páginas, comece atualizando o sitemap e verificando os relatórios de indexação. Se houver erros do servidor ou ausência do conteúdo principal, resolva esses problemas primeiro.

## Sources

- [Google Search Central: Entenda os conceitos básicos de SEO para JavaScript](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)
- [web.dev: Renderização na web](https://web.dev/articles/rendering-on-the-web)
- [web.dev: Tempo até o primeiro byte (TTFB), atualizado em 18 de novembro de 2025](https://web.dev/articles/ttfb)
- [Google: Visão geral dos rastreadores e coletores do Google](https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers?hl=en)
- [Google: Otimize seu orçamento de rastreamento](https://developers.google.com/crawling/docs/crawl-budget)
- [Cloudflare: Comportamento padrão do cache](https://developers.cloudflare.com/cache/concepts/default-cache-behavior/)
- [Cloudflare Cache: Primeiros passos](https://developers.cloudflare.com/cache/get-started/)
- [Cloudflare: Nível de cache (Armazenar tudo em cache)](https://developers.cloudflare.com/cache/how-to/cache-rules/examples/cache-everything/)
- [Respostas do cache da Cloudflare](https://developers.cloudflare.com/cache/concepts/cache-responses/)
- [Cloudflare: Limpar o cache](https://developers.cloudflare.com/cache/how-to/purge-cache/)
- [Cloudflare: Conteúdo dinâmico e problemas de login](https://developers.cloudflare.com/cache/troubleshooting/dynamic-content-and-login-issues/)
- [Google Search Central: Informe o Google sobre as versões localizadas da sua página](https://developers.google.com/search/docs/specialty/international/localized-versions)

## Images

![Um homem inspeciona um rack de servidores com cabos roxos organizados em feixes](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzgxNjYsInB1ciI6ImJsb2JfaWQifX0=--3301cc345476b9a82de57f9e5bdbad57a8717225/ai-cace8faa.webp)
![Uma mulher compara páginas web em dois tablets ao lado de um diagrama de atualização de um documento.](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzgxNzIsInB1ciI6ImJsb2JfaWQifX0=--6d794cafac94909fa4ac95705b51dc5bde79c2df/ai-9e2e0147.webp)