Cache do site & cache interno do servidor: como funciona o cache do WordPress

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (somente celular)

Ao verificar o cache do site e o cache interno do servidor em um servidor com Nginx + Apache, as requisições de página do WordPress desceram na ordem navegador, CDN, cache de página, OPcache e Redis e pararam na camada que tinha uma cópia. As requisições de página que chegaram direto ao servidor de origem receberam do nginx, na hora, o arquivo HTML criado pelo WP Rocket, sem descer até o PHP e o banco de dados.

Ⅰ. Estrutura do cache do WordPress

Na computação, cache é uma técnica que armazena dados temporariamente para que possam ser acessados rápido; na web ele funciona pelo mesmo princípio e contribui muito para o desempenho.

Como o cache guarda os dados, o visitante que acessa um site não precisa pedir tudo de novo ao servidor a cada vez: os dados armazenados carregam rápido e o tempo de carregamento da página diminui. Isso reduz a carga do servidor e melhora a experiência do usuário.

Os caches usados nas requisições do WordPress se dividem em dois ramos: o cache do site e o cache interno do servidor. O padrão de cache HTTP, conforme descreve o MDN, chama de private cache o cache guardado só no navegador de um visitante e de shared cache os caches de CDN e proxy usados por muitos visitantes; neste post, os dois foram agrupados como cache do site.

O cache de página, o OPcache e o cache de objetos são caches ligados ao processo em que o WordPress é executado dentro do servidor. O padrão HTTP não tem uma categoria para eles, e a documentação oficial do WordPress os explica divididos em plugins de cache (cache de página), cache de objetos e cache do servidor (caches de opcode como o OPcache).

🗂️ Caches pelos quais passa uma requisição do WordPress
🌐 Cache do siteCache HTTP · classificação do MDN
private cacheCache do navegador
shared cache
proxy cacheProxies de redes de empresas e operadoras
managed cacheCDN · proxy reverso (Varnish)
🖥️ Cache interno do servidorClassificação da documentação oficial do WordPress
Cache de páginaHTML estático criado por um plugin de cache (WP Rocket)
OPcacheCache de opcode · execução do PHP
Cache de objetosDados que ficam depois que a requisição termina (Redis)

Todos os campos em que o cache é usado estão no post Cache: definição e todos os campos em que o cache é usado e as quatro vertentes da otimização de desempenho, incluindo o cache, no post Otimização de desempenho web: estrutura e definição dedicado ao assunto.

No simulador abaixo, escolha um cache na árvore à esquerda e clique em um botão para ver em qual camada a requisição para. A camada que quem administra um site WordPress liga primeiro com um plugin de cache é o cache de página.

🧭 Simulador de camadas de cacheSimulador explicativo
🗂️ Caches pelos quais passa uma requisição do WordPress
🧰 Tipo de requisição
Cache do navegador
É o cache HTTP guardado no navegador do visitante. Com [Imagem · CSS], clique em [Primeira visita] → [Nova visita]: a partir da segunda vez, nenhuma requisição vai ao servidor.
Cabeçalhos de cache HTTP
São as regras com que o servidor informa ao navegador e à CDN por quanto tempo guardar uma cópia. As linhas de cabeçalho no registro de respostas são valores reais recebidos de um servidor com Nginx + Apache.
Cache de CDN · proxy
É uma cópia usada por muitos visitantes. Ative [Usar CDN] e clique em [Primeira visita] → [Nova visita]: a resposta termina no servidor de borda.
Cache de página
Guarda em arquivo o HTML criado pelo PHP. Clique em [Nova visita] e a requisição não desce até o PHP e o banco de dados.
OPcache
Mantém na memória o bytecode PHP compilado. Em [Visita após editar o post], o PHP roda de novo, mas a compilação é pulada.
Cache de objetos
Guarda os resultados das consultas no Redis. Em [Visita após editar o post], só os dados do post alterado são lidos de novo no MariaDB.
Fluxo completo
A requisição desce de cima para baixo e para na primeira camada que tem uma cópia.
CamadaOnde ficaO que guardaExemplo com Nginx + Apache
Cache do navegadorDispositivo do visitanteHTML · CSS · JS · imagens · fontesCSS · imagens 7 dias
Cache de CDN · proxyNa frente do servidor (borda · proxy reverso)Cópias de páginas · arquivos estáticosBunny CDN
Cache de páginaDisco · memória do servidorHTML criado pelo PHPWP Rocket + nginx
OPcacheMemória do servidorBytecode PHPPHP 8.3, JIT desligado
Cache de objetosMemória do servidorResultados de consultas · objetosRedis
Simulador explicativo que funciona só no seu navegador. As linhas de cabeçalho no registro de respostas foram recebidas em 10 de outubro de 2026 de um servidor com Nginx + Apache; valores entre parênteses, como o ETag depois da edição, são exemplos.

Ⅱ. Cache do site

O cache do site é aquele em que o servidor informa, pelos cabeçalhos de resposta, como guardar o conteúdo, e o navegador do visitante e as CDNs ou proxies guardam uma cópia seguindo essa instrução. Os cabeçalhos típicos são [Cache-Control], [ETag] e [Expires]; quando o prazo de armazenamento acaba, uma requisição condicional ([304 Not Modified]) verifica se algo mudou.

1️⃣ Cache do navegador

O cache do navegador é o cache HTTP guardado no navegador do visitante: ele armazena HTML, CSS, JavaScript, imagens e fontes e, quando o mesmo recurso é pedido de novo, não vai até o servidor ou só verifica se houve mudança.

Quem define o prazo de armazenamento é o servidor, não o visitante. O servidor com Nginx + Apache abaixo indica 7 dias para CSS e imagens e responde às páginas HTML sem prazo, para que sejam verificadas a cada nova visita.

📨 Cabeçalhos de resposta medidosConfiguração Nginx + Apache · 2026-10-10
💻 Computador do visitanteCache do navegador
──────▶① Primeira requisiçãoGET /style.css
🖥️ Servidor do siteNginx + Apache
💻 Computador do visitanteCache do navegador
◀──────② Arquivo + instrução de armazenamentocache-control: max-age=604800
🖥️ Servidor do siteNginx + Apache
③ O navegador guarda o arquivo por 7 dias, como indicado, e nas visitas nesse período não envia requisição ao servidor.
💻 Computador do visitanteCache do navegador
──────▶④ Verificação depois do prazoIf-None-Match: "6ab12775-2ee8"
🖥️ Servidor do siteNginx + Apache
💻 Computador do visitanteCache do navegador
◀──────⑤ Sem alteraçãoHTTP/2 304 (sem corpo)
🖥️ Servidor do siteNginx + Apache
🖼️ CSS · imagens
cache-control: max-age=604800
expires: Sat, 17 Oct 2026 03:21:00 GMT
etag: "6ab12775-2ee8"
No navegador, é 7 dias o prazo de validade da cópia salva, usada sem consultar o servidor de novo.
📄 Página HTML
etag: "6ac9298c-95575"
last-modified: Fri, 09 Oct 2026 17:51:08 GMT
Não há prazo de armazenamento indicado, então, numa nova visita, o navegador primeiro pergunta com o ETag se houve mudança.
Quando a requisição se repete com o mesmo ETag, o servidor devolve, sem corpo, só [HTTP/2 304], e o navegador continua usando a cópia salva.

2️⃣ Cache de CDN · proxy

Os caches de CDN e proxy ficam entre os visitantes e o servidor de origem e são usados por muitos visitantes. O proxy direto fica na frente do lado do visitante, como numa rede corporativa, e o proxy reverso e a CDN, na frente do servidor; eles respondem com a cópia salva no lugar do servidor de origem.

Um proxy reverso típico é o Varnish Cache, e CDNs como Bunny CDN e Akamai seguem a mesma estrutura. Com DNS por região, os visitantes da região do servidor de origem se conectam direto a ele, e os de outras regiões recebem a resposta de um servidor de borda da CDN próximo (por exemplo, Bunny CDN), que guarda até o HTML.

👤 Visitante da região do servidor de origemO DNS entrega o endereço de origem
→
🖥️ Servidor de origemResponde direto, sem passar pela CDN.
👤 Visitante de outra regiãoO DNS entrega o endereço de um servidor de borda próximo
→
☁️ Servidor de borda da Bunny CDNSe tiver uma cópia do HTML ou do arquivo, responde aqui.
→
🖥️ Servidor de origemSó é acessado quando o servidor de borda não tem cópia.

A estrutura e as vantagens de uma CDN estão no post O que é CDN? Motivos para usar uma CDN e 5 vantagens dedicado ao assunto.

Ⅲ. Cache interno do servidor

O cache interno do servidor é o cache ligado ao processo em que o WordPress monta a página depois que a requisição chega ao servidor de origem. Um servidor com Nginx + Apache trata as requisições na ordem abaixo e, se uma etapa anterior encontra uma cópia, as etapas seguintes são puladas.

🅐 Quando o cache de página tem o arquivoA maioria das requisições de página de visitantes não logados
① O nginx recebe a requisiçãoO servidor web recebe a requisição que chegou ao servidor de origem.
↓
1️⃣ Cache de página ↓② Resposta com o arquivo do cache de páginaO nginx envia do jeito que está o arquivo HTML criado pelo WP Rocket.x-rocket-nginx-serving-file: HIT
Termina sem passar por PHP · OPcache · Redis · MariaDB.
🅑 Quando o cache de página não tem o arquivoPrimeira visita logo depois de limpar o cache · tela de login · requisições AJAX
① O nginx recebe a requisiçãoComo não há arquivo, a requisição passa para o Apache.
↓
2️⃣ OPcache ↓② Execução do PHP · OPcacheExecuta os arquivos PHP do WordPress como bytecode compilado.
↓
3️⃣ Cache de objetos ↓③ Cache de objetos (Redis)Resultados de consultas e objetos guardados vêm do Redis.
↓
④ MariaDBConsulta só os dados que não estão no Redis e lê os dados usados com frequência do buffer pool do InnoDB (memória).
↓
⑤ Resposta · gravação no cache de páginaO HTML pronto é enviado e o WP Rocket o grava em arquivo, então a próxima requisição é tratada como 🅐.
Com base em Nginx + Apache (passa para Apache e PHP só quando não há arquivo de cache de página), verificado em 2026-10-10.

Na Cloudways e na ScalaHosting, dá para escolher Nginx + Apache como opção. Na Cloudways, você escolhe por aplicação entre a Hybrid stack (Nginx + Apache) e a Lightning stack (só Nginx); na ScalaHosting, você pode ativar no SPanel a configuração que coloca o Nginx na frente do Apache.

🖥️ Hospedagens em que dá para escolher Nginx + Apache
CloudwaysEscolha de stack por aplicação
Hybrid stackNginx + Apache
Lightning stackSó Nginx
Cloudways →
ScalaHostingConfiguração do servidor web no SPanel
PadrãoApache
Ativar NginxNginx + Apache
ScalaHosting →
CacheO que guardaQuando é gravado
1️⃣ Cache de páginaPágina HTML pronta🅑 ⑤ Na resposta, o WP Rocket grava em arquivo
2️⃣ OPcacheCódigo PHP compilado (bytecode)🅑 ② Quando um arquivo PHP roda pela primeira vez
3️⃣ Cache de objetosPedaços de dados como resultados de consultas e opções🅑 ③ Quando o WordPress busca os dados pela primeira vez

1️⃣ Cache de página

  • ↪️ Cache de página inteira ou cache HTML

O cache de página também é chamado de cache de página inteira (full-page cache) e, como guarda HTML, às vezes é chamado de cache HTML. Ele grava como arquivo HTML estático a página web inteira criada pelo PHP e, para a mesma requisição de página, envia esse arquivo sem executar o PHP. É o caso 🅐 na ordem de processamento acima.

Ele fica na memória do servidor (RAM) ou em disco (HDD/SSD): a memória é rápida, mas cara e limitada em espaço, e o disco tem espaço de sobra, mas é relativamente lento.

VarianteExemploComo guarda e responde
Plugin de cacheWP Rocket · WP Super Cache · W3 Total Cache · Cache EnablerO WordPress grava a página como arquivo HTML e o servidor web envia esse arquivo.
Cache do servidor webCache FastCGI do Nginx · LiteSpeed CacheO próprio servidor web guarda a resposta do PHP e a envia na requisição seguinte.
Cache de proxy reversoVarnishUm servidor de cache colocado na frente do servidor web guarda a página e responde.

Com Nginx + Apache, o nginx lê diretamente e envia o arquivo HTML criado pelo WP Rocket, e o cabeçalho de resposta recebe [x-rocket-nginx-serving-file: HIT]. Os passos para ativar e configurar o cache de página com o WP Rocket estão no post Guia de configuração do WP Rocket dedicado ao assunto.

2️⃣ OPcache

O OPcache guarda na memória o bytecode do código PHP já compilado, para que, ao executar o mesmo arquivo de novo, o parser do PHP seja pulado. Ele vem embutido desde o PHP 5.5; o APC e o XCache, usados no passado, não suportam o PHP 7 e já não são usados. É a etapa ② de 🅑 na ordem de processamento acima.

VarianteStatusDescrição
Zend OPcacheEmbutido desde o PHP 5.5É o cache de opcode padrão usado hoje, ativado com [opcache.enable=1].
OPcache JITIncluído no OPcache desde o PHP 8Converte o bytecode mais uma vez em código de máquina para executá-lo; liga e desliga com [opcache.jit].
APCDesenvolvimento encerradoCache de opcode usado antes do OPcache; a função de cache de dados continuou no APCu.
XCacheDesenvolvimento encerradoNão suporta o PHP 7.
WinCachePara servidores Windows (IIS)Cache de opcode que a documentação oficial do WordPress cita junto com o OPcache.

O OPcache é ativado com a configuração do PHP [opcache.enable=1], e o JIT, que chegou com o PHP 8, pode ser desligado à parte com [opcache.jit=disable]. A instalação e a configuração estão no post Zend OPcache: conceito, instalação e configuração dedicado ao assunto.

3️⃣ Cache de objetos

O cache de objetos guarda resultados de consultas ao banco de dados ou objetos calculados em um armazenamento em memória como Redis ou Memcached. Por padrão, o WordPress lembra os objetos só dentro de uma única requisição; é preciso conectar um armazenamento como o Redis para que os resultados fiquem depois que a requisição termina. É a etapa ③ de 🅑 na ordem de processamento acima.

VarianteTipoFica depois da requisição?Descrição
WP_Object_CachePadrão do WordPressNãoCache embutido que lembra só dentro de uma única requisição.
RedisCache de objetosSimArmazenamento em memória separado, conectado pelo drop-in do plugin Redis Object Cache.
MemcachedCache de objetosSimArmazenamento em memória separado.
APCuCache de objetosSim (dentro do mesmo servidor)Guarda na memória compartilhada usada pelo PHP.
ArquivoCache de objetosSimGuarda como arquivos em disco.
Buffer pool do InnoDBCache próprio do banco de dados · não é cache de objetosSimO MySQL e o MariaDB mantêm dados de tabelas e índices na memória.
Cache de consultasCache próprio do banco de dados · não é cache de objetos—Removido no MySQL 8.0; ainda existe no MariaDB, mas vem desligado por padrão.

O WordPress se conecta ao Redis pelo arquivo drop-in ([object-cache.php]) que o plugin Redis Object Cache adiciona. O passo a passo da instalação está no post Instalação e configuração do Redis Cache no WordPress dedicado ao assunto.

🔢 FAQ & conteúdo recomendado

É uma cópia antiga que ficou no cache de página ou na CDN respondendo. Limpe o cache desse post no plugin de cache e, se usar CDN, limpe também a cópia da CDN.

Plugins de cache de página como o WP Rocket, na configuração padrão, não enviam páginas armazenadas a usuários logados. As telas de administração e as páginas vistas com login são criadas de novo pelo PHP a cada vez, e aí o OPcache e o cache de objetos sustentam a velocidade.

No Chrome, pressione [Ctrl+Shift+R] ([Cmd+Shift+R] no Mac) para recarregar a página atual sem cache. Para apagar todo o cache armazenado, vá em [Mais] no canto superior direito → [Excluir dados de navegação] e escolha [Imagens e arquivos armazenados em cache].

💾 Posts sobre cache 10 posts
🗂️ Cache
📋 Cache: definição e todos os campos 📄 Cache do site & cache interno do servidor
📋 Guia de configuração do WP Rocket 📝 Zend OPcache 📝 Instalação do Redis Cache
📝 O que é CDN? 📝 Varnish Cache
📋 Teste de velocidade do WP Rocket 📝 Caso de melhoria de velocidade 📝 Plugins de cache · otimização

ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 3   +   2   =