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

Como corrigir o erro de reCAPTCHA no WPForms

Time Full Services Time Full Services
Tipo Outros erros
Nome do erro Erro de reCAPTCHA no WPForms EN: WPForms reCAPTCHA error
Severidade Grave
Descrição Quando o reCAPTCHA do WPForms não funciona, o formulário trava ao enviar, mostra 'Error for site owner: Invalid site key' ou o desafio nem aparece. As causas mais comuns são Site Key e Secret Key trocadas, o tipo de chave (v2 ou v3) diferente do escolhido em WPForms, e o domínio ausente no painel do Google reCAPTCHA.

O que é o reCAPTCHA do WPForms que não funciona?

O reCAPTCHA do WPForms é a proteção antispam do Google que você liga no plugin para barrar bots nos formulários. O WPForms suporta três tipos: reCAPTCHA v2 Checkbox (a caixa ‘Não sou um robô’), v2 Invisible (sem campo visível, só um selo) e v3 (roda em segundo plano e dá uma nota de comportamento de 0.0 a 1.0). Cada tipo usa um par próprio de chaves (Site Key e Secret Key) que você gera no painel do Google reCAPTCHA e cola em WPForms -> Settings -> CAPTCHA. Quando algo na configuração não bate, o formulário deixa de enviar, exibe um erro de chave inválida ou o desafio simplesmente não aparece. Na maioria absoluta dos casos não é bug do WPForms nem do Google: é chave trocada, tipo de chave diferente do que está selecionado no plugin, domínio que não foi cadastrado no painel do Google, ou um plugin de cache que minificou e quebrou o JavaScript do reCAPTCHA. O conserto é alinhar tipo, chaves e domínio, e isolar conflito de cache ou de scripts duplicados.

Como identificar

  • Ao enviar o formulário aparece ‘Google reCAPTCHA verification failed, please try again later’ e o envio não conclui.
  • No lugar da caixa do reCAPTCHA aparece o aviso ‘Error for site owner: Invalid site key’ ou ‘Error for site owner: Invalid domain for site key’.
  • O reCAPTCHA não aparece no formulário, mesmo com o campo ou a opção de CAPTCHA ativada no construtor.
  • O formulário acusa ‘This field is required’ embaixo do reCAPTCHA, mesmo quando o visitante marcou a caixa corretamente.
  • Em formulários com v2 Invisible ou v3 o badge do Google some ou some o envio trava sem nenhuma mensagem visível para o visitante.
  • No console do navegador aparecem erros de script duplicado do reCAPTCHA ou falha ao carregar o api.js do Google.

Como prevenir

  • Sempre que gerar chaves no Google, anote qual tipo de reCAPTCHA elas são e selecione exatamente esse tipo em WPForms -> Settings -> CAPTCHA antes de salvar.
  • Cadastre o domínio de produção e o de homologação na chave do Google já na configuração, usando o domínio puro sem http nem www, para nunca cair em ‘Invalid domain for site key’.
  • Ao instalar um plugin de cache, exclua o api.js do reCAPTCHA da minificação e da combinação de JavaScript antes de ativar a otimização no site todo.
  • Depois de qualquer mudança de chaves, de tipo de reCAPTCHA ou de plugin de cache, faça um envio de teste em janela anônima e confirme que o formulário conclui antes de considerar o ajuste pronto.

Causa

  • A Site Key e a Secret Key foram coladas trocadas, com espaço extra, ou são de outro tipo de reCAPTCHA; o WPForms documenta que formulário que não envia após configurar o reCAPTCHA quase sempre é chave incorreta ou incompatível.
  • O tipo de chave gerado no Google (v2 Checkbox, v2 Invisible ou v3) é diferente do reCAPTCHA Type selecionado em WPForms -> Settings -> CAPTCHA; cada tipo exige um par de chaves próprio e gerar chaves de tipo errado dispara 'Invalid site key'.
  • O domínio do site não está cadastrado na lista de domínios da chave no painel do Google reCAPTCHA, ou foi cadastrado com 'http' ou 'www' na frente, o que gera 'Invalid domain for site key'.
  • Um plugin de cache ou de otimização (WP Rocket, Autoptimize, W3 Total Cache) minificou, adiou ou combinou o JavaScript e quebrou o api.js do reCAPTCHA, fazendo a validação falhar com 'verification failed'.
  • Há dois scripts de reCAPTCHA carregando na mesma página (o do WPForms mais o de um plugin antispam ou do tema), e o conflito faz o campo exigir validação que nunca completa, gerando o 'This field is required'.
  • As chaves foram criadas no painel legado e pararam de validar após a migração do reCAPTCHA para o Google Cloud, retornando 'Invalid key type' ou o aviso de que a chave não está protegendo o site.
  • Em v3, o Score Threshold ficou alto demais nas configurações do WPForms e visitantes legítimos com nota baixa são barrados como bot mesmo sem nenhum erro aparente no formulário.

Como resolver

  1. Confirme o tipo de reCAPTCHA e cole as chaves certas: abra a aba CAPTCHA do WPForms, veja qual tipo está selecionado e confirme que a Site Key e a Secret Key coladas são exatamente as desse mesmo tipo no Google, sem espaços extras. Se você trocou de tipo, é preciso gerar um par novo de chaves.
    WPForms -> Settings -> CAPTCHA
    Selecionar o reCAPTCHA Type: v2 Checkbox, v2 Invisible ou v3
    Colar Site Key e Secret Key do MESMO tipo, sem espaco antes ou depois
    Clicar em Save Settings
  2. Cadastre o domínio do site no painel do Google reCAPTCHA: no painel do Google, abra a chave do site e confirme que o domínio está na lista de domínios permitidos. O WPForms orienta cadastrar o domínio puro, sem o protocolo nem o www na frente.
    Acessar o Google reCAPTCHA admin -> selecionar a chave do site
    Adicionar o domínio em Domains, ex.: seusite.com.br
    Não usar https:// nem www. (use seusite.com.br, não https://www.seusite.com.br)
    Salvar e aguardar alguns minutos para propagar
  3. Ative o reCAPTCHA no formulário e teste em janela anônima: com as chaves salvas, ligue a proteção no formulário e faça um envio de teste em janela anônima para validar sem cache de sessão. No v2 Checkbox o campo aparece no construtor; no v2 Invisible e no v3 a proteção é só uma chave que você liga.
    Editar o formulário -> Settings -> Spam Protection and Security -> ativar Enable Google reCAPTCHA
    Ou, no v2 Checkbox: arrastar o campo reCAPTCHA em Standard Fields
    Salvar o formulário e enviar um teste em janela anonima
  4. Isole o conflito de cache e de minificação de JavaScript: se o erro é 'verification failed', desligue temporariamente a otimização de JavaScript do plugin de cache, limpe todos os caches e teste de novo. O api.js do reCAPTCHA não pode ser combinado nem adiado.
    Desligar Minify/Combine/Delay JavaScript no WP Rocket ou Autoptimize
    Limpar o cache do plugin, do servidor e do CDN
    Testar o envio; se voltar a funcionar, excluir o api.js do Google da otimização
    https://www.google.com/recaptcha/api.js
  5. Resolva scripts duplicados com o No-Conflict Mode: se o erro é 'This field is required' mesmo com a caixa marcada, costuma haver dois scripts de reCAPTCHA na página. Abra o console do navegador para confirmar e ligue o modo sem conflito do WPForms para forçar só o script dele.
    Abrir o console do navegador (F12) e procurar erro de script reCAPTCHA duplicado
    WPForms -> Settings -> CAPTCHA -> ativar No-Conflict Mode
    Desativar outro plugin antispam que também injete reCAPTCHA na mesma página
  6. Recrie chaves legadas e ajuste o Score Threshold do v3: se a chave é antiga e dá 'Invalid key type', gere um par novo no painel atual do Google e cole no WPForms selecionando o tipo correspondente. No v3, se visitantes reais estão sendo barrados, baixe o Score Threshold para um valor mais permissivo.
    Gerar novo par de chaves no painel atual do Google reCAPTCHA
    WPForms -> Settings -> CAPTCHA -> colar as chaves novas e selecionar o tipo
    No v3, reduzir o Score Threshold (ex.: de 0.5 para 0.4) e salvar
PHP
// functions.php do tema filho — exclui o api.js do reCAPTCHA da otimizacao de
// JavaScript que quebra a validacao (causa comum do 'verification failed').
// Marca o handle do Google como excluido de defer/combine de plugins de cache
// que respeitam o atributo data-no-optimize / o filtro script_loader_tag.
add_filter( 'script_loader_tag', function ( $tag, $handle, $src ) {
    if ( false !== strpos( $src, 'recaptcha/api.js' ) || false !== strpos( $src, 'gstatic.com/recaptcha' ) ) {
        // remove defer/async injetado por plugins de cache e sinaliza 'nao otimizar'
        $tag = str_replace( array( ' defer', ' async' ), '', $tag );
        $tag = str_replace( ' src=', ' data-no-optimize="1" data-cfasync="false" src=', $tag );
    }
    return $tag;
}, 20, 3 );

Perguntas frequentes

Por que o WPForms mostra 'Error for site owner: Invalid site key'?
Porque a Site Key colada no WPForms não corresponde a uma chave válida para o seu site no Google. Geralmente é chave copiada com espaço extra, chave de outro tipo de reCAPTCHA, ou chave apagada da conta do Google. Confira em WPForms -> Settings -> CAPTCHA se a chave bate com a do painel do Google e, se preciso, gere um par novo.
O que significa 'Invalid domain for site key' no formulário?
Significa que o domínio onde o formulário está rodando não está cadastrado na chave do Google reCAPTCHA. Abra a chave no painel do Google e adicione o domínio na lista de domínios. Use o domínio puro, sem o protocolo nem o www: seusite.com.br é aceito, mas https://www.seusite.com.br não.
Posso usar reCAPTCHA v2 e v3 no mesmo site com WPForms?
Cada tipo de reCAPTCHA usa um par de chaves próprio e a aba CAPTCHA do WPForms guarda um tipo por vez. Se você trocar de v2 para v3, ou vice-versa, precisa gerar chaves novas do tipo escolhido no Google e atualizar as chaves no WPForms, senão o desafio falha com chave inválida.
O reCAPTCHA não aparece no meu formulário. O que fazer?
No v2 Checkbox o campo precisa ser adicionado no construtor, em Standard Fields. No v2 Invisible e no v3 não existe campo visível: a proteção é ligada nas configurações do formulário e roda em segundo plano. Se nem assim funciona, confirme que as chaves estão salvas em WPForms -> Settings -> CAPTCHA e teste em janela anônima.
Por que aparece 'verification failed' só depois que liguei o cache?
Porque o plugin de cache minificou, combinou ou adiou o JavaScript e quebrou o api.js do reCAPTCHA. Desligue a otimização de JavaScript no WP Rocket ou Autoptimize, limpe os caches e teste. Quando voltar a funcionar, exclua o api.js do Google da minificação para manter o cache ligado sem quebrar o reCAPTCHA.
O formulário diz que o campo do reCAPTCHA é obrigatório mesmo eu marcando. Por quê?
Quase sempre há dois scripts de reCAPTCHA carregando na mesma página, um do WPForms e outro de um plugin antispam ou do tema. O conflito impede a validação de concluir. Abra o console do navegador para confirmar o script duplicado e ative o No-Conflict Mode em WPForms -> Settings -> CAPTCHA.
Minhas chaves antigas pararam de funcionar. É problema do WPForms?
Não. O Google migrou o reCAPTCHA para o Google Cloud e chaves do painel legado podem deixar de validar, com 'Invalid key type' ou aviso de que a chave não protege o site. Gere um par novo no painel atual do Google, cole no WPForms selecionando o tipo correspondente e salve.
No reCAPTCHA v3 alguns visitantes legítimos não conseguem enviar. Como ajustar?
O v3 dá uma nota de 0.0 (provável bot) a 1.0 (provável humano) e barra quem fica abaixo do Score Threshold. Se visitantes reais estão sendo bloqueados, reduza o Score Threshold em WPForms -> Settings -> CAPTCHA para um valor mais permissivo e acompanhe os envios antes de subir de novo.

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