🎉 USE O CUPOM DESCONTO-FULL | 10% OFF acima de R$ 100,00

Como corrigir o conflito de nonce expirado entre WP Rocket e reCAPTCHA

Time Full Services Time Full Services Pro
Tipo Performance & Velocidade
Nome do erro Conflito de nonce expirado entre WP Rocket e reCAPTCHA EN: Expired nonce conflict between WP Rocket and reCAPTCHA
Severidade Grave
Descrição O nonce do reCAPTCHA expira com o WP Rocket quando a página do formulário é entregue do cache com um token de segurança gerado horas antes. O visitante envia esse nonce já vencido, o reCAPTCHA ou o formulário rejeita a verificação e a submissão falha, mesmo o usuário sendo humano.

Conteúdo exclusivo para membros Pro

Faça upgrade para acessar este item completo.

Perguntas frequentes

Por que o reCAPTCHA falha só depois de algumas horas com o WP Rocket ativo?
Porque o WP Rocket serve uma cópia em cache da página com um nonce gerado quando o cache foi criado. Esse token tem validade padrão de 12 a 24 horas. Passado esse tempo, o visitante envia um nonce já expirado e o reCAPTCHA ou o formulário rejeita o envio. Logo após limpar o cache funciona porque um nonce novo é gerado.
O que é um nonce e por que ele expira no cache?
Nonce é um token de uso único e temporário que o WordPress cria para garantir que uma requisição partiu da página legítima. Ele é válido por uma janela de tempo, por padrão 86400 segundos. Quando o WP Rocket congela a página em HTML estático, o nonce fica preso no valor antigo e expira sem ser renovado, ao contrário de uma página dinâmica que gera um token novo a cada carregamento.
Excluir a página do cache não vai deixar o site lento?
Não de forma perceptível. Você exclui apenas a página específica que contém o formulário, como a de contato ou o checkout, e o restante do site continua totalmente cacheado pelo WP Rocket. O ganho de performance global é mantido e só a página dinâmica passa a ser servida fresca, com nonce válido.
Preciso excluir o reCAPTCHA do Delay JavaScript Execution também?
Sim, na maioria dos casos. Se o script do Google reCAPTCHA for atrasado pelo Delay JavaScript Execution, o token pode não ser gerado antes de o visitante enviar o formulário. Adicionar os padrões google.com/recaptcha e gstatic.com/recaptcha à lista de exclusão garante que o reCAPTCHA carregue a tempo.
O problema afeta Contact Form 7, WPForms e WooCommerce da mesma forma?
Sim, porque todos usam nonce e reCAPTCHA na página que pode ser cacheada. A página de contato com Contact Form 7 ou WPForms e a página de checkout do WooCommerce são as mais afetadas. A solução é a mesma: excluir essas páginas do cache do WP Rocket e manter o script do reCAPTCHA fora do Delay JavaScript.
Como sei se o erro é do cache e não da chave do reCAPTCHA?
Limpe o cache do WP Rocket e teste o envio numa janela anônima logo em seguida. Se funcionar imediatamente após limpar e voltar a falhar horas depois, o problema é o nonce vindo do cache. Se falhar sempre, mesmo com cache limpo, aí o foco é a chave do site ou o domínio configurado no painel do reCAPTCHA.
Reduzir a validade do nonce resolve sem excluir a página do cache?
Ajuda apenas em parte e tem efeito colateral. Encurtar o nonce_life reduz a janela em que o token cacheado fica válido, mas se a validade ficar menor que o tempo de vida do cache o problema volta, e um nonce curto demais no site inteiro pode deslogar usuários. O caminho confiável é excluir a página do formulário do cache.

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