Ce guide fait passer un site WordPress tout neuf avec Contact Form 7 de « aucune protection » à une protection en couches. Tout a été testé le 7 octobre 2026 avec SilentShield 2.15.14, Contact Form 7 6.2 et WordPress 7.1.2. Les couches décrites ici s’exécutent sur votre propre serveur ; l’API SilentShield, facultative, est présentée dans le guide WordPress.
Une installation toute neuve ne protège encore rien

Une fois l’extension activée, elle fonctionne, mais aucune extension de formulaires n’est activée. Le tableau de bord le dit clairement : « No form is protected yet » (aucun formulaire n’est protégé), suivi des extensions de formulaires qu’il a trouvées sur votre site. Tant qu’une extension de formulaires n’est pas activée, ses formulaires n’affichent aucun champ captcha et rien n’est vérifié.
Tous les réglages ci-dessous se trouvent dans le menu SilentShield de l’administration WordPress.
Étape 1 : choisir la méthode de captcha

Ouvrez SilentShield → Protection Settings (Réglages de protection). Trois méthodes sont proposées :
- Honeypot (par défaut, invisible). Un champ piège est placé hors de l’écran ; les visiteurs ne le voient jamais, alors que les bots qui remplissent tous les champs qu’ils trouvent le remplissent. Un honeypot n’est pas une épreuve : un bot qui lit la page et laisse le piège tranquille passe.
- Problème de calcul. Le visiteur résout une petite opération (addition, soustraction ou multiplication). Elle est affichée sous forme de texte, de sorte qu’un bot pilotant un vrai navigateur peut la lire.
- Captcha image. Des caractères déformés que le visiteur recopie. Il nécessite la bibliothèque PHP GD sur le serveur et représente le plus d’efforts pour vos visiteurs.
Commencez par le honeypot si le taux de conversion compte avant tout, et passez au problème de calcul ou au captcha image si du spam arrive malgré tout. Choisissez un modèle, adaptez le libellé si vous le souhaitez, puis cliquez sur Save (Enregistrer).
Étape 2 : activer vos formulaires

Ouvrez SilentShield → Forms (Formulaires). Chaque extension de formulaires a un commutateur ; la pastille à côté indique si l’extension a été détectée sur votre site. Activez Contact Form 7 et la pastille passe de « Disabled » à « Fields detected ». Ce commutateur enregistre immédiatement, il n’y a pas de bouton d’enregistrement à actionner.
Cliquez sur un formulaire individuel sous l’intégration si ce formulaire a besoin de ses propres réglages. Les réglages s’appliquent à trois niveaux (global, intégration, formulaire individuel), et le niveau inférieur l’emporte sur le niveau supérieur.
Des guides pas à pas pour chaque plugin de formulaire : Avada Forms, Elementor Forms, WPForms et le tunnel de commande WooCommerce.
Étape 3 : ajouter les couches de détection

Plus bas dans Protection Settings, chaque couche a son propre commutateur. Voici l’état après une installation toute neuve :
- JavaScript detection (activée). Bloque les envois provenant de clients qui n’ont exécuté aucun JavaScript, par exemple un script qui envoie directement à l’adresse de votre formulaire.
- Browser detection (activée). Vérifie que la requête porte un user agent valide.
- Timer protection (désactivée). Rejette un envoi qui arrive plus vite qu’un délai minimal après le chargement de la page ; le minimum par défaut est de 500 millisecondes.
- Multiple submission protection (désactivée). Empêche que la même session de captcha soit envoyée plus d’une fois.
- Gibberish detection (activée, « Monitor only »). Repère le texte composé de caractères aléatoires, comme « dQgJlwEhfxaLZSKYLy ». En mode de surveillance, elle enregistre ce qu’elle aurait rejeté et ne bloque rien. Observez les résultats pendant un temps, puis passez le mode sur « Block ».
Un envoi est rejeté dès qu’une couche active le signale.
Étape 4 : limitation de débit et règles de contenu contre le spam tenace

Ouvrez SilentShield → Advanced Settings (Réglages avancés). Tout y est désactivé par défaut :
- Limitation de débit par adresse IP. Après 3 tentatives échouées en 5 minutes, une adresse est bloquée pendant 1 heure (valeurs par défaut, toutes réglables). Les adresses sont stockées sous forme de hachages salés.
- Règles de contenu. Une limite du nombre de liens dans un message, un blocage des liens BBCode (
[url=…]) et une liste noire de mots. La liste noire est la liste propre à WordPress sous « Réglages → Discussion » (« Clés de commentaire non autorisées »), si bien que la modifier à un endroit ou à l’autre a le même effet. - Liste noire d’adresses IP. Les adresses que vous voulez toujours bloquer, une par ligne.
Étape 5 : tester en visiteur, pas en administrateur

Les administrateurs et les utilisateurs connectés passent par défaut toutes les vérifications (la liste blanche sur la même page). Un test réalisé pendant que vous êtes connecté ne prouve donc rien. Ouvrez plutôt le formulaire dans une fenêtre de navigation privée :
- Envoyez avec une mauvaise réponse au captcha. L’envoi doit être bloqué ; Contact Form 7 affiche la raison dans sa zone de réponse, ici « Captcha check ».
- Rechargez le formulaire et envoyez avec la bonne réponse. L’envoi doit passer.
Quel réglage arrête quel type de spam
- Les scripts qui envoient directement, sans navigateur : JavaScript detection et Browser detection.
- Les bots qui remplissent tous les champs : le honeypot.
- Les scripts qui remplissent et envoient un formulaire en quelques millisecondes : Timer protection.
- Le texte de remplissage fait de caractères aléatoires : Gibberish detection.
- Le spam de liens : limite d’URL, blocage BBCode et liste noire de mots.
- La même adresse qui réessaie sans cesse : limitation de débit par adresse IP.
Limites
- Aucun réglage n’arrête le spam qu’une personne tape à la main.
- Les bots qui pilotent un vrai navigateur peuvent passer les contrôles côté navigateur. Les règles de contenu et la Gibberish detection regardent plutôt ce qui a été saisi ; l’analyse comportementale est la couche prévue pour ce cas.
- Sans JavaScript dans le navigateur, un envoi vers un formulaire protégé est rejeté.