← Retour au blog
WordPressContact Form 7SpamProtection anti-bots

Réduire le spam dans Contact Form 7 de manière ciblée

Marc Wagner·5 octobre 2026·6 min de lecture

Quel problème avez-vous ?

Trois cas se ressemblent mais ont des causes différentes :

  • Du spam arrive. Votre boîte de réception se remplit de publicités, de liens ou de textes sans queue ni tête. Le formulaire laisse passer les bots.
  • Le formulaire affiche une erreur. Les visiteurs voient « There was an error trying to send your message. Please try again later. » (traduit sur les sites dans d'autres langues). Cela peut venir de la protection anti-spam ou d'un problème d'envoi des e-mails.
  • Des demandes authentiques manquent. Personne ne se plaint, mais rien n'arrive non plus. Soit la protection rejette des personnes, soit les e-mails n'atteignent pas votre boîte de réception.

Identifiez d'abord le cas avant d'ajouter une protection. La section « Envoi des e-mails ou protection anti-bots ? » explique comment faire.

Ce que Contact Form 7 apporte de lui-même

Contact Form 7 intègre plusieurs mesures contre le spam (vérifié sur la version 6.1.7) :

  • Liste de refus. CF7 compare chaque envoi à la liste sous « Réglages → Discussion » (« Disallowed Comment Keys »). Une correspondance compte comme spam. Cela aide contre les mots et domaines récurrents, pas contre de nouveaux textes.
  • Champ quiz. Avec la balise [quiz], le formulaire pose une question que vous définissez vous-même. Les bots qui remplissent n'importe quel formulaire échouent ; ceux qui ciblent précisément votre site passent.
  • Akismet. Avec l'extension Akismet et une clé Akismet, CF7 vérifie le nom, l'adresse e-mail et le texte via le service Akismet.
  • reCAPTCHA v3. CF7 charge le script depuis Google et rejette les envois en dessous d'un seuil de score.
  • Cloudflare Turnstile. CF7 intègre Turnstile ; le script provient de Cloudflare.

La liste de refus et le quiz fonctionnent sans service externe. Akismet, reCAPTCHA et Turnstile transmettent les données de vos visiteurs au fournisseur concerné, ce qui doit figurer dans votre politique de confidentialité.

Quand une protection anti-bots supplémentaire a du sens

Une protection anti-bots dédiée vaut la peine si

  • le spam continue d'arriver malgré la liste de refus et le quiz,
  • vous ne souhaitez pas charger de scripts depuis Google ou Cloudflare,
  • vous voulez voir, pour chaque envoi rejeté, pourquoi il l'a été.

Si le quiz suffit pour votre formulaire, vous n'avez besoin de rien d'autre. Une protection dont personne n'a besoin n'est qu'une source d'erreurs de plus.

Configurer SilentShield pour Contact Form 7

L'extension officielle « SilentShield – Captcha & Anti-Spam » protège Contact Form 7 sans code de votre part. Nous l'avons testée avec Contact Form 7 6.1.7 et WordPress 7.0.

  1. Installez et activez l'extension depuis le répertoire WordPress.
  2. Sous « SilentShield → API / SilentShield », saisissez votre clé, cliquez sur « Validate », activez « Activate API » et enregistrez.
  3. Sous « SilentShield → Forms », activez Contact Form 7.

Le site doit fonctionner en https, sinon le formulaire ne peut pas être envoyé. Toutes les étapes et les extensions de formulaire testées figurent dans le guide WordPress. Chaque envoi est décompté du quota, voir prix et quotas.

Tester des envois authentiques et des tentatives rejetées

Un envoi authentique : ouvrez la page dans une fenêtre de navigation privée, remplissez le formulaire à la main et envoyez-le. Vous devez obtenir la confirmation de CF7 avec une bordure verte.

Une tentative rejetée : envoyez le même formulaire sans navigateur à l'interface de CF7. L'ID du formulaire et la valeur de _wpcf7_unit_tag se trouvent dans le code source de la page, dans les champs cachés du formulaire.

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"

Vous devez obtenir une réponse contenant "status":"spam". Avec SilentShield, le message indique « Behavior check ».

Envoi des e-mails ou protection anti-bots ?

Dans Contact Form 7, « spam » et « l'e-mail n'a pas pu être envoyé » ont le même texte par défaut. Vous pouvez les distinguer à deux endroits :

  • Couleur de bordure du message : orange signifie spam, rouge signifie que l'envoi de l'e-mail a échoué, tant que votre thème ne remplace pas les couleurs de CF7.
  • Réponse dans le navigateur : dans les outils de développement (onglet Réseau), la réponse à feedback contient le status, soit spam, soit mail_failed.

S'il s'agit de mail_failed, la protection anti-bots a laissé passer l'envoi ; le problème vient de l'envoi des e-mails par WordPress. Vérifiez alors les réglages d'e-mail, par exemple avec une extension SMTP. S'il s'agit de spam, une mesure de protection l'a rejeté. Avec SilentShield, le message en indique la raison, par exemple « Behavior check ».

Limites

  • Aucune protection n'arrête le spam qu'une personne écrit à la main.
  • Sans JavaScript dans le navigateur, un envoi vers un formulaire protégé est rejeté.
  • SilentShield protège les formulaires contre les bots. Il ne remplace ni un pare-feu applicatif web ni une protection DDoS.

Configurer la protection des formulaires

Pages associées

Prêt à abandonner le CAPTCHA ?

Protégez vos formulaires — de manière invisible. Sans carte bancaire.