Cache HTTP no site: acelere arquivos sem servir conteúdo desatualizado

A resposta direta: configure cache longo para arquivos estáticos versionados, como imagens, fontes, CSS e JavaScript com nome ou hash novo a cada alteração; para HTML que precisa refletir mudanças, prefira validação curta ou revalidação. Use Cache-Control coerente com o tipo de recurso e teste navegador, CDN e origem. Cache bem planejado evita downloads repetidos e pode reduzir espera, enquanto uma regra genérica para todos os arquivos pode manter conteúdo velho ou expor dados privados.
O cache é uma regra de atualização, não um botão de velocidade
Navegadores e intermediários guardam respostas para reutilizá-las em solicitações futuras. Uma resposta em cache pode evitar a conexão completa com o servidor e reduzir transferência. No entanto, quanto mais tempo uma resposta puder ser usada sem validação, maior a chance de alguém continuar vendo uma versão antiga depois de uma atualização. A estratégia deve responder a duas perguntas: o recurso é público e estável? Como saber que uma nova versão chegou?
O cabeçalho Cache-Control define diretivas como max-age, public, private, no-cache e no-store. Cada termo tem significado específico. No-cache não significa que nada será armazenado; em geral, exige validação antes de reutilizar. No-store é mais restritivo contra armazenamento. Private limita o armazenamento a caches privados do usuário, e public permite que caches compartilhados armazenem respostas quando os demais critérios permitem. Evite copiar cabeçalhos sem avaliar autenticação e personalização.
Arquivos estáticos cujo conteúdo muda pouco podem aproveitar cache mais longo se a URL mudar junto com o conteúdo. Nomes como app com hash ou uma versão única tornam segura a permanência de cópias antigas: quando o CSS muda, a aplicação referencia uma URL nova; o navegador baixa o recurso novo sem precisar adivinhar se a antiga foi atualizada. Essa prática é chamada cache busting e reduz invalidações manuais em vários pontos da rede.
HTML é diferente porque normalmente a URL principal continua igual enquanto o conteúdo muda. Uma política que o mantém fresco por muito tempo pode mostrar uma página antiga depois de uma publicação. Revalidar com ETag ou Last-Modified permite ao navegador perguntar se a representação mudou e receber uma resposta 304 quando não mudou. Isso reduz o corpo transferido, embora continue existindo uma ida ao servidor para validar.
Escolha a política conforme a família do recurso
Para bundles de CSS, JavaScript e fontes com fingerprint imutável, uma política pública com max-age longo e immutable costuma ser adequada se a infraestrutura realmente gera URLs diferentes a cada build. A equipe precisa confirmar que o HTML aponta para arquivos novos durante deploy e que nenhum recurso é sobrescrito no mesmo endereço. Se o sistema mantém nome fixo, cache longo pode prolongar uma combinação incompatível de código e estilo.
Para imagens de conteúdo, pergunte se o endereço muda quando a imagem é substituída. Um identificador único, hash ou revisão pode permitir cache longo. Para logos ou arquivos com nome permanente, cache mais curto e revalidação podem ser mais seguros, a depender do tempo aceitável para atualização. Uma mudança visual urgente não deve depender de limpar cache manualmente de todos os navegadores. Planeje versionamento antes do lançamento.
Para HTML público, páginas de blog ou configurações que mudam, considere no-cache com validadores ou uma política curta que combine com a cadência de publicação. A CDN também pode ter regras próprias. Se a origem responde um Cache-Control e a CDN força outro tempo de permanência, a experiência real pode divergir do esperado. Use ferramentas de rede e cabeçalhos observados na resposta final, e não apenas o código-fonte do servidor.
Para páginas autenticadas, carrinho, painel, resultados pessoais ou respostas que dependem de cookies, revise public e private com cuidado. Um cache compartilhado que armazena conteúdo personalizado pode entregar dados de um usuário a outro se a chave e a regra de cache forem inadequadas. Quando uma resposta não deve ser retida, no-store pode ser apropriado; em outros casos, private e revalidação atendem necessidades distintas. Faça revisão de segurança específica.

ETag, Last-Modified e revalidação
ETag é um validador associado a uma representação. Em uma solicitação posterior, o navegador pode enviar If-None-Match e o servidor responder que a cópia ainda é válida. Last-Modified funciona com uma data e os cabeçalhos If-Modified-Since. A resposta 304 informa que o conteúdo não mudou, então o navegador reutiliza os bytes locais. Esses mecanismos podem economizar transferência sem exigir uma URL nova para cada mudança de HTML.
Não trate validadores como substitutos de uma política de cache. Eles respondem se a representação mudou; Cache-Control também determina por quanto tempo a resposta pode ser reutilizada antes de validar e quem pode armazená-la. Uma configuração coerente descreve os dois. Depois de deploy, confirme que o validador muda quando o conteúdo muda. Se o servidor gera sempre o mesmo ETag ou atualiza incorretamente a data, o usuário pode receber uma cópia obsoleta.
CDNs e proxies podem transformar, comprimir ou armazenar conteúdo conforme suas regras. Verifique a chave de cache e cabeçalhos Vary quando a resposta depende de formato, idioma ou outros cabeçalhos. Cookies podem afetar o cache. Uma variação incompleta pode misturar versões de desktop e mobile ou idioma. Antes de aplicar regras globais, teste usuários anônimos, logados, diferentes dispositivos e uma página com query strings.
Uma invalidação da CDN limpa cópias em pontos distribuídos, mas não remove automaticamente todas as cópias que navegadores guardaram. Versionamento é mais previsível para arquivos publicados. Invalidação continua útil para emergência ou conteúdo com URL fixa, porém não deve ser o único mecanismo de atualização. Combine nomes versionados para sub-recursos e revalidação para documentos que precisam refletir alterações sem mudar a URL.
Exemplo prático de publicação
Uma agência publica uma nova versão do site e percebe que alguns visitantes veem o layout antigo. A equipe descobre que o HTML referencia um CSS com nome estável e que a CDN o mantém por muito tempo. Limpar a CDN resolve parte dos acessos, mas navegadores continuam com cópias válidas segundo os cabeçalhos. A correção estrutural é gerar um identificador para o CSS e atualizar a referência no HTML em cada build.
No mesmo deploy, o HTML passa a exigir revalidação com ETag. O navegador consulta a origem e recebe 304 quando a página não mudou, ou o novo documento quando o identificador muda. Imagens do portfólio recebem URLs versionadas e cache longo. Formulários e páginas autenticadas usam regras específicas para impedir cache compartilhado. A equipe testa cabeçalhos com navegador e ferramenta de linha de comando após o deploy, não só em ambiente local.
O teste deve observar primeira visita, recarga, navegação entre páginas, nova versão e estado autenticado. Meça transferência e tempo das solicitações relevantes, além de confirmar que conteúdo recém-publicado aparece sem limpeza manual. Cache pode melhorar experiência e reduzir requisições, mas não garante melhora isolada de posição orgânica. Velocidade percebida depende também de servidor, JavaScript, imagens, fontes, rede e desenho da página.
A Open Leads oferece criação de sites e serviços de marketing. Uma revisão de performance precisa conectar infraestrutura e jornada: páginas rápidas só ajudam quando conteúdo, navegação e conversão também funcionam. Veja os [serviços](/servicos), outros conteúdos no [blog](/blog) e informações da agência em [Google Partner](/google-partner). Use os guias técnicos para conversar com desenvolvimento e conferir o comportamento real de cada recurso.
Checklist de cache antes do deploy
- Classifique respostas como HTML público, arquivo estático, conteúdo personalizado ou dado sensível.
- Use URLs versionadas para recursos imutáveis antes de aplicar cache longo.
- Configure Cache-Control por tipo de recurso em vez de um cabeçalho global.
- Use ETag ou Last-Modified para revalidar documentos que mantêm a URL.
- Inspecione o cabeçalho servido pela origem e pela CDN em produção.
- Teste cache com visitante anônimo, usuário autenticado, mobile e diferentes idiomas.
- Confirme que uma nova versão substitui a anterior sem depender de limpeza manual do navegador.
Não esqueça de service workers e conteúdo dinâmico
Um service worker pode interceptar solicitações e aplicar estratégias próprias de cache. Assim, ajustar apenas cabeçalhos da origem talvez não substitua arquivos antigos que o código do service worker continua entregando. Planeje a atualização do worker, a limpeza seletiva de caches e a migração entre versões, evitando apagar tudo indiscriminadamente a cada visita. Teste uma instalação antiga do site e um primeiro acesso para identificar comportamentos diferentes.
Conteúdo dinâmico e APIs merecem outra política. Uma resposta que muda conforme sessão, região ou disponibilidade não deve ser armazenada sob uma chave que ignore essas diferenças. Use cabeçalhos Vary ou configuração explícita na CDN quando necessários, e valide que a chave contempla os fatores relevantes. Em caso de dúvida sobre dados pessoais, priorize revisão de segurança antes de otimizar uma resposta compartilhada. Velocidade nunca justifica misturar conteúdo de usuários.
Perguntas frequentes
Cache longo sempre deixa o site mais rápido?
Ele pode reduzir revalidações e downloads de recursos repetidos, mas não corrige servidor lento, JavaScript pesado ou imagens grandes. Benefício depende da política e do comportamento real.
No-cache quer dizer que o navegador não guarda nada?
Não necessariamente. Em geral, significa que a resposta precisa ser validada antes de reutilização. No-store é a diretiva que proíbe o armazenamento por caches conforme seu escopo.
Qual o risco de usar max-age longo em todo o site?
Uma URL não versionada pode continuar servindo arquivo antigo. Em respostas personalizadas, uma regra compartilhada inadequada pode também expor informação entre usuários.
O que faz um ETag?
É um validador que permite ao navegador consultar se uma representação mudou. Se permanece igual, o servidor pode responder 304 sem reenviar o corpo completo.
Preciso limpar cache a cada atualização?
Não se o pipeline versiona corretamente os arquivos e configura revalidação para documentos mutáveis. Limpeza pode ajudar em emergência, mas não substitui o versionamento.
Quer transformar tráfego em oportunidades reais? A Open Leads integra mídia paga, mensuração e criação de sites focados em conversão. Conheça os serviços da Open Leads.
Fontes consultadas
Consulte os materiais originais usados na pesquisa deste artigo.
- HTTP caching — MDN Web Docs
- Cache-Control header — MDN Web Docs
- HTTP caching — web.dev
- HTTP Semantics, RFC 9110 and 9111 — Internet Engineering Task Force
Tags
Escrito por
Equipe Open Leads