Como bloquear spam no formulário de contato do WordPress sem CAPTCHA?
Por Eureka Studio · Atualizado em
Resposta rápida
Em vez de um CAPTCHA, combine verificações invisíveis: um campo honeypot oculto que só os bots preenchem, um tempo mínimo de preenchimento, um token que resiste ao cache de página e limites por IP e por e-mail. Coloque as mensagens duvidosas em quarentena em vez de excluí-las. Um plugin local faz isso no Elementor, no Contact Form 7 e no WPForms sem enviar dados para fora. No Hushfort, a proteção de plugins de formulário faz parte do Pro; o plugin gratuito cobre só comentários e avaliações.
Passo a passo
1Passo 1
Veja os bots atacando seu formulário
Os bots preenchem todos os campos que encontram, inclusive um oculto que uma pessoa nunca vê, ou enviam sem sequer carregar a página. O registro do Hushfort identifica cada caso: honeypot preenchido, sem token, preenchido rápido demais, links demais.
2Passo 2
Ative o Escudo Antispam no modo Monitorar
No Hushfort, abra o Escudo Antispam, ative-o e defina o Modo como "Só registrar — modo Monitorar, não bloqueia nada". Com o Hushfort Pro instalado, mantenha os Plugins de formulário ligados e salve. Ele registra o que bloquearia, sem bloquear nada ainda.

3Passo 3
Defina os limites silenciosos (Pro)
Mantenha o Tempo mínimo de preenchimento curto (3 segundos). Com o Pro, limite também quantas mensagens um IP (Limite por IP) ou um endereço de e-mail (Limite por e-mail) pode enviar por hora. Mensagens com mais links do que o Máximo de links vão para a quarentena.
4Passo 4
Revise o registro e mude para Bloquear
Depois de alguns dias, veja o que o modo Monitorar pegou. Se não houver mensagens reais ali, defina o Modo como "Bloquear (recomendado)" e salve.

5Passo 5
Pessoas reais simplesmente enviam
O visitante digita por meio minuto, nunca vê o campo oculto e envia. Sem quebra-cabeças, sem grades de imagens.

Por que isso importa
O spam em formulários parece só um incômodo, até deixar de ser. Ele soterra os contatos reais, acostuma você a passar os olhos pela caixa de entrada sem ler e pode derrubar a reputação de envio do seu servidor de e-mail se o formulário manda respostas automáticas. Em sites movimentados, ele também consome tempo de servidor, porque cada envio passa por todo o processamento do plugin de formulário.
A solução de sempre, um CAPTCHA, joga o custo para os seus visitantes. Eles resolvem quebra-cabeças, alguns desistem e quem usa ferramentas de privacidade fica travado. A maioria dos serviços de CAPTCHA também carrega código de terceiros e envia dados dos visitantes para fora do seu servidor.
Existe um jeito mais silencioso. Os bots se comportam de forma diferente das pessoas, e isso pode ser verificado sem que ninguém perceba:
- Eles preenchem campos ocultos. Um honeypot é um campo escondido das pessoas, mas visível no HTML. Uma pessoa o deixa vazio; um bot o preenche.
- Eles são rápidos. Uma pessoa precisa de alguns segundos para preencher um formulário. Um bot precisa de milissegundos.
- Eles se repetem. Um IP ou um endereço de e-mail que envia dez mensagens por hora não é um cliente.
- Eles colam links. Uma mensagem cheia de links raramente é um contato real.
Erros comuns
- Bloquear em vez de colocar em quarentena. Quando uma verificação está em dúvida, guarde a mensagem para análise. Excluir a pergunta de um cliente real é pior do que ler um spam.
- Ir direto para Bloquear. Comece em um modo que apenas registra, por alguns dias. Veja o que teria sido bloqueado antes de deixar bloquear.
- Tokens que quebram com o cache. Se o seu token antispam faz parte de uma página em cache, todos os visitantes compartilham um mesmo token vencido. Use uma proteção que busque o token quando a página carrega.
- Uma verificação só. Um honeypot sozinho barra os bots simples. Acrescente a verificação do tempo de preenchimento e limites.
Sem plugin
A maioria dos plugins de formulário já tem uma versão básica disso:
- Formulários do Elementor Pro: adicione um campo "Honeypot" a partir da lista de campos.
- Contact Form 7: adicione um honeypot por meio de um complemento; o CF7 também é compatível com o Akismet, se você aceitar enviar dados a esse serviço.
- WPForms: tem um token antispam nativo e um honeypot opcional nas configurações de cada formulário.
Você também pode adicionar à mão um honeypot simples a qualquer formulário que controle:
<div style="position:absolute;left:-9999px" aria-hidden="true">
<label>Leave this empty <input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<?php
if ( ! empty( $_POST['website'] ) ) {
wp_die( 'Spam detected.', 403 );
}
As limitações: cada plugin de formulário faz isso de um jeito, normalmente não existe um limite de frequência compartilhado entre os formulários, não há quarentena para pegar os enganos e nada cobre comentários ou avaliações. Você acaba configurando a mesma ideia cinco vezes.
Se algo der errado
- As mensagens reais pararam de chegar. Mude o Escudo Antispam para o modo Monitorar, envie um teste e olhe o registro para ver qual verificação o barrou.
- Os formulários falham só para alguns visitantes. Limpe o cache de página uma vez depois de ativar a proteção.
- O spam ainda passa. Reduza o limite de links, adicione palavras ou domínios à lista de bloqueio ou ative o modo estrito nos formulários que só devem aceitar provedores de e-mail conhecidos.
Com o Hushfort
O Escudo Antispam do Hushfort Security, o plugin de segurança gratuito para WordPress, protege comentários e avaliações do WooCommerce. Os plugins de formulário exigem o Hushfort Pro, que acrescenta seis populares (Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator) à mesma tela.
- Honeypot invisível, tempo mínimo de preenchimento e tokens assinados que resistem ao cache de página. O token vem de um script minúsculo de cerca de 2 KB, sem cookies.
- Pro: limites por IP (5 por hora) e por e-mail (3 por hora) por padrão; mensagens com mais de 2 links vão para a quarentena.
- Pro: uma lista de cerca de 9.900 domínios de e-mail descartável, suas próprias listas de bloqueio e filtros de palavras.
- Pro: quarentena com aprendizado "Não é spam".
- Tem um modo Monitorar, para você ver o que ele bloquearia antes de bloquear.
Sem CAPTCHA, sem API externa, e nenhum dado de formulário jamais sai do seu servidor.
Perguntas frequentes
Honeypots realmente acabam com o spam em formulários?
Por que evitar o reCAPTCHA?
Isso funciona com cache de página?
Quais plugins de formulário são cobertos?
O que acontece com uma mensagem que parece spam, mas pode ser real?
Tutoriais relacionados
Como desativar os comentários no WordPress ou acabar com o spam nos comentários?
Desative os comentários no WordPress ou mantenha-os e acabe com o spam: regras separadas para posts e avaliações de produtos, sem pingbacks e sem CAPTCHA.
Ver o passo a passoComo bloquear cadastros falsos e spam de registro no WordPress?
Bloqueie cadastros falsos e spam de registro no WordPress e no WooCommerce com limites por hora, um teto para o site e honeypots, sem travar o checkout.
Ver o passo a passoComo identificar e bloquear o tráfego de Googlebot falso no WordPress?
Bots que fingem ser o Googlebot deixam o WordPress lento. Confira o IP dos robôs de busca, bloqueie os falsos e limite requisições sem travar o checkout.
Ver o passo a passo

