Como corrigir a exclusão de páginas do cache no WP Rocket no WordPress
O que é exclusão de página do cache no WP Rocket?
A exclusão de uma página do cache no WP Rocket significa dizer ao plugin para nunca servir aquela URL a partir do HTML estático em cache, entregando sempre a versão dinâmica gerada pelo PHP. Isso é necessário em páginas que mudam por visitante ou por sessão, como carrinho, checkout, área de membros, painéis logados e páginas com conteúdo personalizado. O WP Rocket faz essa exclusão pelo campo Never Cache URL(s), dentro da aba Advanced Rules (Regras Avançadas) das configurações do plugin.
A falha aparece quando, mesmo com a URL listada para nunca cachear, a página continua sendo servida do cache: o conteúdo fica congelado, o carrinho mostra itens de outro visitante ou dados logados aparecem para quem não deveria ver. Na prática, a exclusão não pega por três motivos recorrentes: o padrão de URL digitado não casa com o caminho real (barra final, subpasta ou curinga errado), existe um cache acima do WP Rocket (cache de servidor como Varnish, ou Cloudflare com Cache Everything) que serve a página antes do plugin, ou o Preload do WP Rocket recacheia a URL logo após qualquer limpeza. O comportamento de cada um desses pontos está documentado na base de conhecimento oficial do WP Rocket.
Como identificar
- Uma página listada em Never Cache URL(s) continua mostrando conteúdo antigo ou congelado, como se nunca tivesse sido excluída do cache.
- O comentário de rodapé do HTML ainda exibe a linha ‘This website is like a rocket, isn’t it? Performance optimized by WP Rocket’ em uma página que deveria estar fora do cache.
- O carrinho ou a área de membros mostra dados de outro visitante, sinal de que a página dinâmica está sendo servida do cache estático.
- A página volta a ser cacheada poucos minutos depois de você limpar o cache, mesmo sem ninguém editar nada.
- A exclusão funciona para a URL exata digitada, mas não pega as variações com paginação, parâmetros de query ou subpáginas.
Como prevenir
- Sempre digite os caminhos no Never Cache URL(s) como caminho relativo com barra inicial e use o curinga (.*) quando precisar cobrir subpáginas e parâmetros.
- Mantenha o WooCommerce e o EDD com as integrações nativas do WP Rocket ativas, pois carrinho, checkout e minha-conta já são excluídos automaticamente quando o plugin reconhece a loja.
- Documente, em cada projeto, qual cache fica acima do WP Rocket (host ou Cloudflare) e replique as exclusões nessas camadas para evitar páginas dinâmicas congeladas.
- Depois de cada alteração nas regras, limpe o cache e valide a página excluída pelos cabeçalhos da resposta antes de considerar o ajuste concluído.
Causa
- O padrão digitado no campo Never Cache URL(s) usa a URL completa com https://domínio em vez do caminho relativo a partir da raiz começando com barra, então o WP Rocket não casa o padrão com a requisição e cacheia a página mesmo assim.
- A barra final do caminho não bate: você excluiu /minha-página mas o site responde em /minha-página/ (ou o contrário), e como o WP Rocket compara o caminho exato, a página fora do padrão continua sendo cacheada.
- Falta o curinga (.*) para cobrir subpáginas, paginação ou parâmetros: excluir só /loja deixa /loja/page/2 e /loja/?orderby=price ainda no cache.
- Existe um cache de página acima do WP Rocket, como Varnish ou cache do próprio servidor de hospedagem, que serve a resposta antes do PHP rodar, então a regra de exclusão do plugin nunca é avaliada.
- O Cloudflare está com a opção Cache Everything (ou APO) ativa e guarda o HTML na borda, devolvendo a página em cache independentemente do que o WP Rocket decide no servidor de origem.
- O Preload do WP Rocket revisita e recacheia a URL logo após cada limpeza de cache, então a página excluída por engano (padrão que não casou) volta ao cache em minutos e parece que a exclusão nunca funcionou.
Como resolver
- Abra o campo Never Cache URL(s) nas Regras Avançadas: Vá às configurações do WP Rocket e abra a aba de Regras Avançadas. O campo Never Cache URL(s) é onde você lista os caminhos que nunca devem ser servidos do cache estático, um por linha.
Painel WP -> Configurações -> WP Rocket -> Advanced Rules (Regras Avançadas) Localize o campo Never Cache URL(s) - Use o caminho relativo a partir da raiz, não a URL completa: Digite o caminho começando com barra a partir da raiz do domínio, sem o https nem o nome do site. Uma entrada por linha. Esse é o formato que o WP Rocket compara com a requisição.
/minha-página/ /área-de-membros/ Evite colar a URL completa com https://seudominio.com no campo - Adicione o curinga (.*) para cobrir subpáginas e parâmetros: Para excluir uma seção inteira, incluindo paginação, parâmetros de query e subpáginas, acrescente o curinga (.*) ao final do caminho. Sem ele, só a URL exata é excluída.
/loja(.*) /minha-conta(.*) Salve as alterações e limpe o cache em WP Rocket -> Dashboard -> Limpar cache - Confirme se há cache acima do WP Rocket: Verifique no host se existe Varnish ou cache de página no servidor, e no Cloudflare se Cache Everything ou APO está ativo. Esses caches ficam acima do plugin e precisam da própria regra de bypass para a URL excluída.
Inspecione os cabeçalhos da resposta da página (F12 -> Network) procurando x-cache, cf-cache-status ou age No Cloudflare, crie uma Cache Rule de Bypass cache para o caminho excluído se Cache Everything estiver ativo No painel do host, exclua o mesmo caminho do cache de servidor (Varnish/Nginx) ou peça ao suporte - Force a exclusão por código quando o painel não basta: Para URLs geradas dinamicamente ou condições que o campo do painel não cobre, registre a exclusão pelo filtro oficial rocket_cache_reject_uri no functions.php do tema filho. Esse caminho exige editar arquivo do tema.
Acesse o tema filho via FTP ou Aparência -> Editor de Arquivos do Tema Edite o functions.php do tema filho Adicione o filtro rocket_cache_reject_uri (veja o bloco de código abaixo) e salve
<?php
// functions.php do tema filho — exclui caminhos do cache do WP Rocket por filtro.
add_filter( 'rocket_cache_reject_uri', 'full_wp_rocket_never_cache' );
function full_wp_rocket_never_cache( $uris ) {
// Cada entrada e um caminho relativo (regex). (.*) cobre subpaginas e parametros.
$uris[] = '/area-de-membros(.*)';
$uris[] = '/minha-pagina-dinamica/';
return $uris;
}














