← Voltar ao Blog
WordPressContact Form 7SpamProteção contra Bots

Reduzir o spam no Contact Form 7 de forma direcionada

Marc Wagner·5 de outubro de 2026·6 min leitura

Que problema tem?

Três casos parecem semelhantes, mas têm causas diferentes:

  • Chega spam. A sua caixa de entrada enche-se de publicidade, links ou texto sem sentido. O formulário deixa passar bots.
  • O formulário indica um erro. Os visitantes veem «There was an error trying to send your message. Please try again later.» (traduzido em sites noutras línguas). Pode ser a proteção antispam ou um problema no envio de e-mail.
  • Faltam pedidos genuínos. Ninguém se queixa, mas também não chega nada. Nesse caso, a proteção pode estar a rejeitar pessoas, ou os e-mails não chegam à sua caixa de entrada.

Identifique primeiro o caso, antes de adicionar proteção. Como fazê-lo está descrito na secção «Envio de e-mail ou proteção contra bots?».

O que o Contact Form 7 já traz

O Contact Form 7 tem várias medidas contra spam integradas (verificado na versão 6.1.7):

  • Lista de bloqueio. O CF7 verifica cada envio com a lista em «Definições → Discussão» («Disallowed Comment Keys»). Uma correspondência conta como spam. Isto ajuda contra palavras e domínios recorrentes, não contra textos novos.
  • Campo de quiz. Com a etiqueta [quiz], o formulário faz uma pergunta definida por si. Os bots que preenchem qualquer formulário falham; os bots que visam especificamente o seu site não.
  • Akismet. Com o plugin Akismet e uma chave Akismet, o CF7 verifica nome, endereço de e-mail e texto através do serviço Akismet.
  • reCAPTCHA v3. O CF7 carrega o script da Google e rejeita envios abaixo de um limiar de pontuação.
  • Cloudflare Turnstile. O CF7 integra o Turnstile; o script vem da Cloudflare.

A lista de bloqueio e o quiz funcionam sem serviço externo. O Akismet, o reCAPTCHA e o Turnstile enviam os dados dos seus visitantes ao respetivo fornecedor, e isso tem de constar da sua política de privacidade.

Quando faz sentido uma proteção adicional contra bots

Uma proteção dedicada contra bots compensa se

  • o spam continua a chegar apesar da lista de bloqueio e do quiz,
  • não quer carregar scripts da Google ou da Cloudflare,
  • quer ver, para cada envio rejeitado, porque foi rejeitado.

Se o quiz chega para o seu formulário, não precisa de mais nada. Uma proteção de que ninguém precisa é apenas mais uma fonte de erros.

Configurar o SilentShield para o Contact Form 7

O plugin oficial «SilentShield – Captcha & Anti-Spam» protege o Contact Form 7 sem código próprio. Testámo-lo com o Contact Form 7 6.1.7 e o WordPress 7.0.

  1. Instale e ative o plugin a partir do diretório do WordPress.
  2. Em «SilentShield → API / SilentShield», introduza a sua chave, clique em «Validate», ative «Activate API» e guarde.
  3. Em «SilentShield → Forms», ative o Contact Form 7.

O site tem de funcionar com https; caso contrário, o formulário não pode ser enviado. Todos os passos e os plugins de formulários testados estão no guia do WordPress. Cada envio conta para a quota, consulte preços e quotas.

Testar envios genuínos e tentativas falhadas

Um envio genuíno: Abra a página numa janela privada, preencha o formulário à mão e envie-o. Deverá ver a confirmação do CF7 com um contorno verde.

Uma tentativa falhada: Envie o mesmo formulário sem navegador para a interface do CF7. Encontra o ID do formulário e o valor de _wpcf7_unit_tag no código-fonte da página, nos campos ocultos do formulário.

curl -X POST "https://example.com/?rest_route=/contact-form-7/v1/contact-forms/123/feedback" \
  -F "_wpcf7=123" -F "_wpcf7_unit_tag=wpcf7-f123-p45-o1" -F "_wpcf7_container_post=45" \
  -F "your-name=Test" -F "[email protected]" -F "your-message=Test"

Deverá receber uma resposta com "status":"spam". Com o SilentShield, a mensagem diz «Behavior check».

Envio de e-mail ou proteção contra bots?

No Contact Form 7, «spam» e «não foi possível enviar o e-mail» têm o mesmo texto predefinido. Pode distingui-los em dois sítios:

  • Cor do contorno da mensagem: laranja significa spam, vermelho significa que o envio do e-mail falhou, desde que o seu tema não substitua as cores do CF7.
  • Resposta no navegador: Nas ferramentas de programador (separador Rede), a resposta a feedback contém o status: spam ou mail_failed.

Se for mail_failed, a proteção contra bots deixou passar o envio; o problema está no envio de e-mail pelo WordPress. Verifique então as definições de e-mail, por exemplo com um plugin SMTP. Se for spam, foi uma medida de proteção que o rejeitou. Com o SilentShield, a mensagem indica o motivo, como «Behavior check».

Limites

  • Nenhuma proteção trava o spam que uma pessoa escreve à mão.
  • Sem JavaScript no navegador, um envio para um formulário protegido é rejeitado.
  • O SilentShield protege formulários contra bots. Não substitui uma firewall de aplicações web nem uma proteção contra DDoS.

Configurar a proteção de formulários

Páginas relacionadas

Pronto para abandonar o CAPTCHA?

Comece a proteger os seus formulários — de forma invisível. Sem cartão de crédito.