🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o WP Rocket que não gera cache

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro WP Rocket não gera cache EN: WP Rocket not generating cache
Severidade Grave
Descrição WP Rocket não gera cache é quando o plugin está ativo mas não cria o arquivo HTML estático da página, então o visitante recebe a versão dinâmica gerada pelo PHP a cada acesso. Confirma-se pela ausência do comentário "Debug: cached@" no fim do código-fonte da página, sinal de que aquela URL não foi cacheada.

O que é o WP Rocket que não gera cache?

WP Rocket gera cache salvando uma cópia HTML estática de cada página em wp-content/cache/wp-rocket/ e servindo esse arquivo aos visitantes deslogados, o que dispensa o WordPress de montar a página via PHP e banco a cada requisição. Quando o cache não é gerado, esse arquivo estático não existe ou não é entregue, e cada acesso volta a executar todo o WordPress, elevando o TTFB e anulando o ganho de performance do plugin.

É importante separar dois casos. Há situações em que o WP Rocket não cacheia de propósito (visitante logado, página com query string, carrinho e checkout de e-commerce) e isso é comportamento esperado. E há falhas reais, em que a página deveria ser cacheada e não é: regra de exclusão errada, constante WP_CACHE ausente, conflito com outro plugin de cache, cache no nível do host ou permissão de escrita negada na pasta de cache.

Como identificar

  • O comentário “Debug: cached@[timestamp]” não aparece no fim do código-fonte da página (Ctrl+U), mesmo recarregando duas vezes deslogado.
  • O footprint do WP Rocket aparece SEM o timestamp “cached@”, indicando que o cache não está sendo gerado naquela URL.
  • A pasta wp-content/cache/wp-rocket/ está vazia ou não contém os arquivos index.html / index.html_gzip do domínio.
  • O TTFB não cai com o WP Rocket ativo e o cabeçalho de resposta mostra “x-cache: MISS” em vez de HIT.
  • Clicar em “Limpar cache” não muda nada: a página continua sendo montada pelo PHP a cada acesso.

Como prevenir

  • Mantenha apenas um plugin de cache ativo e remova sobras (advanced-cache.php, object-cache.php) ao trocar de plugin
  • Antes de instalar o WP Rocket, verifique na lista oficial se o seu host já faz cache de página no servidor para não empilhar camadas
  • Após migrar de domínio, mudar para HTTPS ou ajustar permalinks, desative e reative o WP Rocket para regravar o arquivo de configuração
  • Confira periodicamente o footprint “cached@” no código-fonte de páginas-chave para detectar cedo quando uma URL parar de ser cacheada

Causa

  • Constante WP_CACHE ausente ou no lugar errado no wp-config.php: sem 'define( 'WP_CACHE', true );' logo após o topo do wp-config.php, o advanced-cache.php do WP Rocket nem é carregado.
  • Regra em Advanced Rules → Never Cache URLs excluindo a página por engano (por exemplo a entrada "/" exclui a home inteira).
  • Conflito com outro plugin de cache ou sobras dele: advanced-cache.php apontando para WP Super Cache / W3 Total Cache, ou object-cache.php / wp-cache-config.php legados disputando o controle.
  • Cache no nível do host servindo a página antes do WP Rocket (LiteSpeed Cache do servidor, Varnish, NGINX FastCGI, ou hosts como Kinsta/WP Engine/SiteGround que gerenciam o cache de página por conta própria).
  • Permissão de escrita negada em wp-content/cache (pasta sem CHMOD 0755), impedindo o WP Rocket de gravar o arquivo HTML.
  • Constante DONOTCACHEPAGE definida por outro plugin/tema, ou tema sem wp_footer() / sem a tag de fechamento do HTML, que impede o WP Rocket de fechar e salvar o arquivo de cache.

Como resolver

  1. Confirme o estado real do cache: Abra a página numa janela anônima (deslogado), recarregue uma vez e veja o código-fonte (Ctrl+U). Procure no fim do HTML pelo footprint do WP Rocket com o timestamp. Se o "cached@" não aparecer, aquela URL não está sendo cacheada e o diagnóstico segue.
  2. Garanta a constante WP_CACHE no wp-config.php: Abra o wp-config.php e confirme que a linha abaixo existe logo após o topo do wp-config.php, antes do comentário "That's all, stop editing". Se estiver ausente ou colada muito embaixo, o advanced-cache.php do WP Rocket não roda e nenhuma página é cacheada.
    define( 'WP_CACHE', true );
  3. Revise as regras de Never Cache URLs: Vá em WP Rocket → Advanced Rules → Never Cache URL(s) e remova qualquer entrada que exclua a página afetada por engano. Confira também a caixa de opções do WP Rocket na edição da própria página/post, garantindo que o cache não foi desativado individualmente.
  4. Elimine conflito com outro cache: Garanta que só há um plugin de cache ativo. Abra wp-content/advanced-cache.php e confirme que ele referencia APENAS o WP Rocket. Remova sobras de plugins anteriores como wp-cache-config.php (WP Super Cache) ou object-cache.php e a pasta de config do W3 Total Cache.
    wp-content/advanced-cache.php
    wp-content/object-cache.php
    wp-content/wp-cache-config.php
  5. Corrija as permissões da pasta de cache: Pelo gerenciador de arquivos ou SSH, garanta que o WP Rocket consegue escrever. Defina wp-content/cache como 0755 e .htaccess / wp-config.php como 0644. Sem permissão de escrita, o plugin não cria o arquivo HTML e o cache nunca aparece.
    chmod 0755 wp-content/cache
    chmod 0644 wp-config.php .htaccess
  6. Descarte cache do host e reative o plugin: Se o host (Kinsta, WP Engine, SiteGround) ou um LiteSpeed/Varnish de servidor já gerencia o cache de página, o WP Rocket não cacheia por design e as demais otimizações continuam valendo; confirme na lista de hosts compatíveis. Depois de qualquer ajuste, desative e reative o WP Rocket para regravar o arquivo de configuração e teste de novo o passo 1.
PHP
<?php
/*
 * Cole no topo do wp-config.php, logo apos a abertura <?php.
 * Sem esta constante o advanced-cache.php do WP Rocket nao e carregado
 * e NENHUMA pagina e cacheada.
 */
define( 'WP_CACHE', true );

/*
 * Diagnostico rapido: descobrir quem esta impedindo o cache.
 * Cole no functions.php do tema-filho TEMPORARIAMENTE e abra a home deslogado.
 * Se DONOTCACHEPAGE aparecer como definida, outro plugin/tema esta bloqueando.
 */
add_action( 'wp_footer', function () {
  if ( ! current_user_can( 'manage_options' ) ) {
    return;
  }
  $blockers = array();
  if ( defined( 'DONOTCACHEPAGE' ) && DONOTCACHEPAGE ) {
    $blockers[] = 'DONOTCACHEPAGE definida por outro plugin/tema';
  }
  if ( ! defined( 'WP_CACHE' ) || ! WP_CACHE ) {
    $blockers[] = 'WP_CACHE ausente ou false no wp-config.php';
  }
  $cache_dir = WP_CONTENT_DIR . '/cache';
  if ( ! is_writable( $cache_dir ) ) {
    $blockers[] = 'wp-content/cache SEM permissao de escrita (use chmod 0755)';
  }
  echo "n<!-- WPF-219 cache check: " . ( $blockers ? implode( ' | ', $blockers ) : 'nenhum bloqueador obvio' ) . " -->n";
}, 99 );

Perguntas frequentes

Como sei se o WP Rocket está realmente gerando cache?
Abra a página deslogado, recarregue uma vez e veja o código-fonte (Ctrl+U). No fim do HTML deve haver o footprint do WP Rocket com "Debug: cached@" seguido de um timestamp. Se o comentário aparecer sem o timestamp, ou não aparecer, aquela URL não está sendo cacheada.
Por que o WP Rocket não cacheia para mim enquanto navego logado?
Isso é o comportamento padrão: o WP Rocket serve cache apenas para visitantes deslogados. Logado, você sempre recebe a versão dinâmica. Para testar de verdade, use uma janela anônima ou faça logout antes de checar o "cached@" no código-fonte.
Minha hospedagem (Kinsta, WP Engine, SiteGround) faz com que o WP Rocket não gere cache?
Sim, alguns hosts gerenciados desativam o cache de página do WP Rocket de propósito porque já têm o próprio cache no nível do servidor. Nesses casos não é um erro: o cache de página fica a cargo do host e as demais otimizações do WP Rocket (CSS, JS, lazy load) continuam funcionando.
O que é a constante WP_CACHE e por que ela trava o cache?
É a linha define( 'WP_CACHE', true ); que precisa estar no topo do wp-config.php. Ela autoriza o WordPress a carregar o advanced-cache.php do WP Rocket. Se a linha estiver ausente, comentada ou posicionada muito abaixo no arquivo, o plugin não consegue cachear nenhuma página.
Uma regra de Never Cache URLs pode estar bloqueando o cache?
Sim. Em WP Rocket → Advanced Rules → Never Cache URL(s), uma entrada errada exclui a página. O caso clássico é a regra "/", que acaba excluindo a home inteira. Remova entradas indevidas e confira também a caixa do WP Rocket na edição da própria página.
Por que o cache parou após instalar outro plugin de cache?
Dois plugins de cache disputam o arquivo wp-content/advanced-cache.php. Se ele passar a apontar para o outro plugin, o WP Rocket deixa de cachear. Mantenha só um plugin ativo, garanta que o advanced-cache.php referencia apenas o WP Rocket e apague sobras como object-cache.php ou wp-cache-config.php.
Permissão de pasta pode impedir o WP Rocket de gerar cache?
Sim. O WP Rocket precisa escrever em wp-content/cache. Se a pasta não tiver CHMOD 0755 (ou não puder ser criada), o plugin não grava o HTML estático e o cache nunca aparece. Ajuste a permissão da pasta de cache e do wp-config.php/.htaccess para 0644 e reative o plugin.
O que faço se outro plugin define DONOTCACHEPAGE?
Alguns plugins e temas definem a constante DONOTCACHEPAGE, que ordena ao WP Rocket não cachear aquela requisição. Identifique o responsável (o snippet de diagnóstico ajuda), peça ao desenvolvedor para removê-la quando indevida, ou use o helper oficial Force Page Caching do WP Rocket para sobrepor a restrição.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes