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

Como corrigir o cache do WP Rocket em páginas dinâmicas do WooCommerce

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Cache do WP Rocket em páginas dinâmicas do WooCommerce EN: WP Rocket caching WooCommerce dynamic pages
Severidade Grave
Descrição O cache do WP Rocket no WooCommerce mostra carrinho, total ou estoque desatualizados quando uma página dinâmica é servida como HTML estático. O WP Rocket exclui carrinho, checkout e minha conta automaticamente, mas páginas customizadas ou cookies próprios precisam de exclusão manual.

O que é cache do WP Rocket no WooCommerce?

O cache do WP Rocket no WooCommerce gera um arquivo HTML estático de cada página e serve esse arquivo para os próximos visitantes, o que acelera a loja. O problema aparece quando uma página com conteúdo dependente do usuário (mini carrinho, total do pedido, estoque, preço por região) é salva nesse HTML estático: todo visitante passa a receber o estado de quem gerou o cache. O WP Rocket já trata esse risco excluindo automaticamente as páginas de Carrinho, Finalizar compra e Minha conta definidas em WooCommerce, além da REST API do WooCommerce, e otimiza a requisição get_refreshed_fragments que atualiza o mini carrinho.

Como identificar

  • O mini carrinho no cabeçalho mostra o aviso ‘Carrinho vazio’ ou um número de itens que não corresponde ao que o cliente adicionou.
  • Em ‘Aparência -> Personalizar’ ou na home, o total do carrinho fica fixo no valor de outro visitante e só muda depois de um refresh forçado (Ctrl+F5).
  • Uma página de loja criada com page builder (não a página padrão de carrinho) exibe preço, estoque ou desconto de outro usuário.
  • Cupons e preços por região aparecem aplicados para quem não deveria, porque a página foi servida do cache estático.
  • Após esvaziar o cache do WP Rocket o conteúdo volta ao normal por alguns minutos e depois congela de novo.

Como prevenir

  • Mantenha as três páginas transacionais sempre definidas em WooCommerce -> Configurações -> Avançado para a exclusão automática do WP Rocket continuar valendo após migrações ou troca de tema.
  • Sempre que criar uma página de loja com page builder, adicione o caminho dela em Never Cache URL(s) no mesmo dia, antes de gerar tráfego.
  • Implemente recursos dinâmicos (carrinho, preço por região, vistos recentemente) via JavaScript ou AJAX, nunca em PHP renderizado no servidor.
  • Depois de qualquer mudança em cookies de estado do visitante, revise o campo Never Cache Cookies e limpe o cache uma vez.

Causa

  • As páginas de Carrinho, Finalizar compra e Minha conta não estão definidas em WooCommerce -> Configurações -> Avançado, então o WP Rocket não reconhece quais páginas excluir automaticamente e as salva como HTML estático.
  • Uma página dinâmica customizada (loja montada com Elementor, JetEngine ou shortcode de carrinho fora da página padrão) não entra na exclusão automática e precisa ser adicionada manualmente em Never Cache URL(s).
  • A otimização do get_refreshed_fragments está ativa e entra em conflito com um mini carrinho de tema ou plugin de terceiros, deixando o contador do carrinho preso no valor cacheado.
  • Um recurso dinâmico (lista de desejos, vistos recentemente, preço por geolocalização) foi implementado em PHP no lugar de JavaScript ou AJAX, então o valor é congelado no arquivo de cache em vez de ser recalculado no navegador.
  • Um cookie próprio que define o estado do visitante (moeda, B2B, região) não está declarado em Never Cache Cookies, então variantes diferentes do mesmo cliente recebem o mesmo arquivo estático.

Como resolver

  1. Confirme as páginas do WooCommerce: Garanta que cada página transacional padrão está atribuída, pois a exclusão automática do WP Rocket depende dessa configuração do WooCommerce. Vá ao painel pelo menu indicado e verifique se Carrinho, Finalizar compra e Minha conta apontam para as páginas certas.
    WooCommerce -> Configurações -> Avançado -> Configurações de página
  2. Limpe o cache e revalide: Depois de conferir as páginas, force a regeneração do cache para o WP Rocket reaplicar as exclusões automáticas. Use o menu de cache na barra superior do WordPress.
    WP Rocket -> Limpar e pré-carregar cache
  3. Exclua páginas dinâmicas customizadas: Se a loja usa uma página de carrinho ou checkout fora do padrão (page builder ou shortcode), adicione o caminho relativo dela para nunca ser cacheado. Abra as regras avançadas e preencha o campo de URLs com um caminho por linha; um padrão entre parênteses cobre as páginas filhas.
    Painel: WP Rocket -> Regras avançadas -> Never Cache URL(s)
    /carrinho-personalizado/
    /minha-loja/checkout(.*)
  4. Proteja estados por cookie: Se o estado do visitante (moeda, região, B2B) vier de um cookie próprio, declare esse cookie para o WP Rocket criar arquivos de cache separados por valor em vez de servir um único arquivo. Informe o nome do cookie no campo correspondente das regras avançadas.
    Painel: WP Rocket -> Regras avançadas -> Never Cache Cookies
    wc_region
    woocommerce_currency
  5. Trate o mini carrinho travado: Se só o contador do mini carrinho fica preso, desative a otimização de fragments do WP Rocket para o tema voltar a atualizar o widget via AJAX. A opção fica nas configurações do WooCommerce dentro do WP Rocket.
    Painel: WP Rocket -> Configurações -> WooCommerce -> Optimize Cart Fragments (desativar)
PHP
// functions.php do tema-filho: nunca cachear uma página de loja customizada
add_filter( 'rocket_cache_reject_uri', function ( $uris ) {
	$uris[] = '/minha-loja/(.*)';   // caminho relativo, aceita regex
	$uris[] = '/carrinho-personalizado/';
	return $uris;
} );

// Forçar variação de cache por cookie de estado (moeda/região)
add_filter( 'rocket_cache_mandatory_cookies', function ( $cookies ) {
	$cookies[] = 'wc_region';
	return $cookies;
} );

Perguntas frequentes

O WP Rocket já exclui o carrinho e o checkout do cache?
Sim. O WP Rocket exclui automaticamente as páginas de Carrinho, Finalizar compra e Minha conta definidas no WooCommerce, além da REST API do WooCommerce. A exclusão só falha quando essas páginas não estão atribuídas nas configurações ou quando a loja usa páginas customizadas fora do padrão.
Por que meu mini carrinho mostra um número de itens errado?
O contador do mini carrinho é atualizado pela requisição get_refreshed_fragments. Se a otimização desse fragmento no WP Rocket conflita com o tema, o número fica preso no valor cacheado. Desativar a otimização de cart fragments nas configurações do WooCommerce do WP Rocket devolve a atualização via AJAX.
Preciso excluir páginas do cache manualmente?
Só quando a loja usa uma página de carrinho ou checkout fora do padrão do WooCommerce, montada com page builder ou shortcode. Nesse caso, adicione o caminho relativo em Never Cache URL(s) nas regras avançadas. As páginas padrão já são tratadas pela exclusão automática.
O cache afeta preço por região ou moeda?
Sim, se o estado vier de um cookie próprio não declarado. Sem declarar o cookie em Never Cache Cookies, o WP Rocket serve o mesmo arquivo estático para todos. Declarar o cookie faz o plugin gerar uma versão de cache por valor, preservando moeda e região corretas.
Por que o conteúdo volta ao normal e depois congela de novo?
Ao limpar o cache, a próxima visita recebe HTML fresco, então parece corrigido. Logo o WP Rocket regera o arquivo estático e volta a servir o mesmo estado para todos. Isso indica que a página dinâmica não está excluída; a correção definitiva é adicioná-la em Never Cache URL(s) ou declarar o cookie de estado.
Recurso dinâmico em PHP funciona com cache?
Não de forma confiável. Conteúdo gerado em PHP no servidor é congelado no arquivo de cache e exibido igual para todos. Listas de desejos, vistos recentemente e preço por geolocalização precisam ser carregados via JavaScript ou AJAX para refletir o usuário atual com o cache ativo.
Excluir uma página do cache desliga as outras otimizações?
Sim. No WP Rocket, ao excluir uma URL do cache você também a exclui de minificação, lazy load e demais otimizações daquela página. Por isso exclua só as páginas realmente dinâmicas, e não a loja inteira, para não perder performance onde o cache é seguro.

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