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

Como corrigir o spam em formulários do WPForms com reCAPTCHA

Time Full Services Time Full Services
Tipo Seguranca
Nome do erro Spam em formulários WPForms apesar do reCAPTCHA EN: WPForms spam bypassing reCAPTCHA
Severidade Atenção
Descrição Quando o spam passa no reCAPTCHA do WPForms, em geral é o reCAPTCHA v3 apenas dando uma nota sem barrar nada, o Score Threshold permissivo demais, ou o reCAPTCHA atuando como camada única. A correção é apertar o threshold e somar Modern Anti-Spam, Akismet e os filtros de palavra e país do próprio WPForms.

O que é o spam que passa no reCAPTCHA do WPForms?

O reCAPTCHA do WPForms é a proteção do Google que dá uma nota de comportamento ao visitante, mas no v3 ele não bloqueia ninguém sozinho: apenas pontua de 0.0 (provável bot) a 1.0 (provável humano), e quem decide barrar é o Score Threshold configurado em WPForms -> Settings -> CAPTCHA. Se esse threshold está baixo, um bot com nota mediana passa direto e a entrada de spam é salva. Diferente do v2 Checkbox, que exige a interação ‘Não sou um robô’, o v3 roda em silêncio e bots modernos com farms de resolução conseguem notas suficientes para escapar.

Por isso o WPForms documenta a prevenção de spam em camadas, não só pelo reCAPTCHA. O plugin já traz, em Settings -> Spam Protection and Security, a Modern Anti-Spam Protection (token honeypot, ligada por padrão e dependente de JavaScript) e o Minimum Time to Submit (2 segundos por padrão), além de Akismet, filtro de palavras, filtro de país e allowlist e denylist de e-mail. Quando o spam continua apesar do reCAPTCHA, a saída não é trocar de captcha, e sim subir o threshold do v3 e empilhar essas camadas nativas, que pegam padrões que a nota do Google sozinha deixa passar.

Como identificar

  • Entradas de spam continuam chegando em WPForms -> Entries mesmo com ‘Enable Google reCAPTCHA’ ligado no formulário.
  • O reCAPTCHA v3 está ativo e sem erro visível, mas o volume de envios com links e texto promocional não cai.
  • Os e-mails de notificação trazem mensagens em outro idioma, com URLs suspeitas, vindas de formulários protegidos por reCAPTCHA.
  • Na coluna de origem das entradas aparecem submissões em poucos segundos ou em rajada, típicas de bot, mesmo com o captcha ativo.
  • Ao usar reCAPTCHA v2 Invisible ou v3, nenhum desafio aparece para o bot e a nota atribuída é alta o bastante para o envio concluir.
  • Marcar uma entrada como spam em Entries não reduz os envios seguintes, porque só o reCAPTCHA está filtrando.

Como prevenir

  • Trate o reCAPTCHA como uma camada, não como a solução: deixe sempre a Modern Anti-Spam Protection e o Minimum Time to Submit ligados em Settings -> Spam Protection and Security em todo formulário publicado.
  • Se for usar reCAPTCHA v3, defina o Score Threshold em um valor firme desde o início e revise as entradas após a publicação, porque o v3 só pontua e nunca bloqueia sozinho.
  • Conecte o Akismet no site assim que colocar formulários no ar, para filtrar conteúdo reconhecidamente spam que a nota do Google deixa passar.
  • Mantenha um filtro de palavras com os termos promocionais que mais aparecem nas suas entradas e revise a lista a cada onda de spam, em vez de depender só do captcha.

Causa

  • O formulário usa reCAPTCHA v3, que apenas atribui uma nota e nunca bloqueia sozinho; sem um Score Threshold adequado em WPForms -> Settings -> CAPTCHA, bots com nota mediana são aprovados e o envio é salvo.
  • O Score Threshold do v3 está baixo demais (por exemplo 0.3); o WPForms define que esse é o ponto em que o visitante falha na verificação, então valores baixos deixam quase tudo passar.
  • O reCAPTCHA é a única camada ativa: a Modern Anti-Spam Protection em Settings -> Spam Protection and Security está desligada ou foi removida, deixando o formulário sem o token honeypot que pega bots que ignoram JavaScript.
  • O Akismet não está conectado em Settings -> Spam Protection and Security, então entradas com conteúdo reconhecidamente spam pela rede do Akismet são salvas em vez de barradas.
  • Não há filtro de palavra nem de país ativo na seção Filtering do formulário, permitindo que envios com termos promocionais ou de regiões que você não atende cheguem normalmente.
  • O site usa reCAPTCHA v2 Invisible ou v3 contra bots de formulário que rodam em farms de resolução de captcha, que obtêm nota suficiente e contornam o desafio silencioso.

Como resolver

  1. Suba o Score Threshold do reCAPTCHA v3: se você usa o v3, o ajuste mais direto é endurecer a nota mínima para aprovar um envio. Suba o threshold de forma gradual e acompanhe se visitantes reais continuam conseguindo enviar antes de subir mais.
    WPForms -> Settings -> CAPTCHA
    Localizar Score Threshold (so aparece no reCAPTCHA v3)
    Subir de 0.3 para 0.5 e salvar; testar; se ainda passar spam, ir a 0.7
    Clicar em Save Settings
  2. Garanta a Modern Anti-Spam Protection ligada: essa é a camada nativa do WPForms que funciona em conjunto com o reCAPTCHA. Ela usa um token honeypot dependente de JavaScript e vem ligada por padrão. Confirme que ela não foi desativada no formulário.
    Editar o formulário -> Settings -> Spam Protection and Security
    Ativar Enable anti-spam protection (Modern Anti-Spam Protection)
    Confirmar Minimum Time to Submit ligado (padrão 2 segundos)
    Salvar o formulário
  3. Conecte o Akismet para filtrar conteúdo: o Akismet compara o envio com a rede global de spam reportado e barra o que é reconhecido, algo que a nota do reCAPTCHA não faz. Ative a chave do Akismet no site e ligue a proteção no formulário.
    Instalar e configurar o plugin Akismet com uma API key valida
    Editar o formulário -> Settings -> Spam Protection and Security
    Ativar Enable Akismet anti-spam protection
    Salvar o formulário
  4. Ative o filtro de palavras e de país: na seção Filtering do formulário você bloqueia envios por termo e por região. O filtro de palavras compara linha a linha, sem distinguir maiúsculas, e o de país aceita ou nega regiões inteiras que você não atende.
    Editar o formulário -> Settings -> Spam Protection and Security -> Filtering
    Ativar Enable keyword filter e listar um termo por linha em Keyword Filter List
    Ativar Enable country filter e escolher Allow ou Deny + os paises
    Salvar o formulário
  5. Revise as entradas guardadas e ajuste fino: com Store spam entries ligado, o WPForms guarda o que foi barrado, o que permite recuperar falsos positivos e confirmar o que ainda passa. Use isso para calibrar threshold e filtros sem perder envio legítimo.
    WPForms -> Entries -> filtrar por Spam para ver o que foi barrado
    Recuperar qualquer envio legitimo marcado como spam por engano
    Se passou spam, voltar e endurecer threshold ou adicionar termo ao filtro
    Repetir até o volume de spam cair sem bloquear gente real
PHP
// functions.php do tema filho — sobe o limite de nota do reCAPTCHA v3 do WPForms
// via filtro oficial, alem do que a tela permite, e descarta envios abaixo da nota.
// Use quando o spam passa mesmo com o Score Threshold da tela ja no maximo.
add_filter( 'wpforms_frontend_recaptcha_v3_threshold', function ( $threshold ) {
    // 0.0 = provavel bot, 1.0 = provavel humano. 0.7 e mais rigido que o padrao.
    return 0.7;
} );

// Camada extra: marca como spam todo envio cuja nota do v3 vier abaixo do limite,
// em vez de so recusar silenciosamente — assim a entrada fica revisavel em Entries.
add_filter( 'wpforms_process_initial_errors', function ( $errors, $form_data ) {
    $score = isset( $_POST['wpforms']['recaptcha_v3_score'] )
        ? (float) $_POST['wpforms']['recaptcha_v3_score'] : 1.0;
    if ( $score > 0 && $score < 0.7 ) {
        $errors[ $form_data['id'] ]['footer'] = 'Envio bloqueado por suspeita de spam.';
    }
    return $errors;
}, 20, 2 );

Perguntas frequentes

Por que ainda recebo spam mesmo com o reCAPTCHA ativo no WPForms?
Porque o reCAPTCHA, principalmente o v3, só atribui uma nota de comportamento e não bloqueia ninguém sozinho. Quem barra é o Score Threshold em WPForms -> Settings -> CAPTCHA, e se ele está baixo, bots com nota mediana passam. A recomendação do WPForms é somar camadas: Modern Anti-Spam, Akismet e os filtros de palavra e país.
O que é o Score Threshold do reCAPTCHA v3 e qual valor usar?
É a nota mínima para o envio ser aprovado, configurada em WPForms -> Settings -> CAPTCHA. As notas vão de 0.0 (provável bot) a 1.0 (provável humano). Valores baixos como 0.3 deixam quase tudo passar. Suba de forma gradual, por exemplo para 0.5 e depois 0.7, testando se visitantes reais ainda conseguem enviar a cada ajuste.
Devo trocar o reCAPTCHA v3 pelo v2 para barrar mais spam?
O v2 Checkbox exige a interação 'Não sou um robô', o que cria atrito para o bot, enquanto o v3 roda em silêncio e só pontua. Trocar pode ajudar, mas o ganho maior vem de empilhar camadas: mantenha a Modern Anti-Spam Protection, ligue o Akismet e use o filtro de palavras, em vez de depender de um único captcha.
O que é a Modern Anti-Spam Protection do WPForms?
É a proteção nativa do WPForms, baseada em um token honeypot que depende de JavaScript, ligada por padrão em Settings -> Spam Protection and Security. Ela pega bots que ignoram o JavaScript da página e funciona junto com o reCAPTCHA, não no lugar dele. Confirme que não foi desativada ao editar o formulário.
Como o Akismet ajuda contra spam que o reCAPTCHA deixa passar?
O Akismet compara cada envio com uma rede global de spam reportado e bloqueia o que é reconhecido como tal, algo que a nota do reCAPTCHA não faz. Instale o plugin Akismet com uma API key válida e ative Enable Akismet anti-spam protection nas configurações de Spam Protection and Security do formulário.
Como funcionam o filtro de palavras e o de país no WPForms?
Ambos ficam na seção Filtering, em Settings -> Spam Protection and Security. O filtro de palavras compara o envio com uma lista de termos, um por linha, sem distinguir maiúsculas, e bloqueia quem contém um deles. O filtro de país permite Allow ou Deny de regiões inteiras, útil quando o spam vem de lugares que você não atende.
Onde vejo o spam que foi barrado para ajustar a configuração?
Com Store spam entries ligado, o WPForms guarda os envios barrados em WPForms -> Entries, filtrando por Spam. Isso permite recuperar falsos positivos de visitantes reais e identificar que tipo de spam ainda passa, para então endurecer o Score Threshold ou adicionar termos ao filtro de palavras.

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