Een hoveniersbedrijf in Amersfoort kreeg via het contactformulier zo’n dertig berichten per dag. Twee daarvan waren echte aanvragen. De rest: aanbiedingen voor SEO, cryptomunten en “een zakelijke kans”. De eigenaar had het formulier al eens uitgezet en een e-mailadres op de site gezet. Resultaat: de spam werd minder, maar de aanvragen ook. Klanten typen nu eenmaal liever iets in een formulier dan dat ze een mailprogramma openen.

Spam via contactformulieren stoppen is goed te doen, en het hoeft niet ten koste te gaan van uw bezoekers. De fout die de meeste ondernemers maken, is meteen naar het zwaarste middel grijpen: een captcha met verkeerslichten en zebrapaden. Dat werkt, maar het jaagt ook een deel van uw klanten weg. Hieronder de maatregelen in de volgorde waarin wij ze inzetten, van onzichtbaar naar streng.

Wie stuurt die spam eigenlijk?

Formulierspam komt grofweg van twee soorten afzenders. Verreweg het meeste komt van bots: programma’s die het web afstruinen, formulieren herkennen en ze automatisch invullen. Ze zijn dom maar onvermoeibaar. Een kleiner deel komt van mensen, vaak uit goedkope-arbeidslanden, die voor een paar cent per formulier handmatig berichten plaatsen. Die zijn slimmer, maar veel minder talrijk.

Dat onderscheid bepaalt uw aanpak. Tegen bots werken onzichtbare maatregelen uitstekend. Tegen menselijke spam helpt alleen filtering op inhoud. Het goede nieuws: als u de bots kwijt bent, is het probleem meestal voor ruwweg negentig procent opgelost.

Stap 1: de honeypot, onzichtbaar en gratis

Een honeypot is een extra veld in het formulier dat voor bezoekers verborgen is. Een mens ziet het niet en laat het leeg. Een bot ziet het in de code, denkt dat het een gewoon veld is en vult het in. Elk bericht waarin dat veld is ingevuld, wordt weggegooid.

Bijna elke formulierplugin heeft dit ingebouwd of via een kleine uitbreiding: WPForms en Fluent Forms standaard, Gravity Forms via een vinkje in de formulierinstellingen, Contact Form 7 via de plugin Honeypot for Contact Form 7. Zet dit altijd aan. Het kost niets, de bezoeker merkt er niets van, en het stopt in onze ervaring al een groot deel van de eenvoudige bots.

Stap 2: tijdcontrole en JavaScript-token

Een mens heeft minstens een paar seconden nodig om een formulier in te vullen. Een bot doet het in milliseconden. Een tijdcontrole wijst inzendingen af die binnen bijvoorbeeld drie seconden na het laden binnenkomen. Een aanvullende techniek is een token dat pas door JavaScript in de browser wordt aangemaakt; bots die geen JavaScript uitvoeren, kunnen dat token niet leveren.

WPForms noemt dit “anti-spam token” en heeft het standaard aan. Fluent Forms en Gravity Forms hebben vergelijkbare opties. Ook dit is onzichtbaar voor bezoekers.

Stap 3: filteren op inhoud

Blijft er spam door, kijk dan waar die op lijkt. Meestal ziet u patronen: berichten vol links, Cyrillische tekens, bepaalde woorden (crypto, SEO, casino), of een e-mailadres dat niet overeenkomt met de naam. De meeste formulierplugins laten u een woordenlijst instellen; berichten met die woorden worden geblokkeerd of als spam gemarkeerd.

Twee praktische regels: blokkeer berichten met meer dan één link, en blokkeer berichten zonder enige Nederlandse letter als uw klanten Nederlands zijn. Wees voorzichtig met te brede woorden; “aanbieding” blokkeren kan ook een echte klant raken. Daarnaast kunt u Akismet koppelen, de spamfilter die u misschien kent van reacties. Gravity Forms, WPForms en Fluent Forms ondersteunen dit. Akismet vergelijkt de inhoud met een enorme database van bekende spam en is verrassend goed in het herkennen van menselijke spam.

Stap 4: een vriendelijke captcha

Pas als de vorige stappen niet genoeg zijn, komt de captcha in beeld. Kies dan de minst irritante variant:

  • Cloudflare Turnstile. Gratis, geen puzzels, geen Google. De bezoeker ziet hooguit een klein vinkje dat zichzelf zet. Onze eerste keuze, ook vanuit privacyoogpunt.
  • reCAPTCHA v3. Werkt onzichtbaar met een score, maar stuurt gegevens naar Google en vraagt om vermelding in uw privacyverklaring. Bij een lage score kunt u alsnog een puzzel tonen.
  • hCaptcha. Alternatief voor reCAPTCHA met iets minder privacybezwaren, maar wel puzzels.
  • reCAPTCHA v2 (het vinkje met plaatjes). Effectief, maar het vervelendst voor bezoekers, vooral op mobiel. Alleen als niets anders werkt.

Zet een captcha nooit op meerdere formulieren tegelijk aan zonder te testen; een verkeerd ingevulde sitesleutel betekent dat níemand meer kan versturen, en dat merkt u pas als de aanvragen stilvallen. Controleer na elke wijziging zelf of het formulier nog aankomt. Komt er ook zonder spam niets binnen, dan zit het probleem misschien elders; zie waarom een contactformulier geen e-mails verstuurt.

Stap 5: de firewall en de rest van de site

Formulierspam is vaak onderdeel van breder botverkeer. Een firewall die bekende spambots en verdachte landen of netwerken blokkeert, vermindert de druk op al uw formulieren tegelijk, en op de inlogpagina. Ook het uitschakelen van reacties op pagina’s waar u ze niet gebruikt, en van XML-RPC als u dat niet nodig heeft, sluit ingangen die bots graag gebruiken.

Kijk daarnaast naar de formulierplugin zelf. Sommige oudere plugins hebben nauwelijks spambescherming, terwijl de moderne alternatieven het grootste deel standaard geregeld hebben. Welke plugin daarin het beste scoort, leest u in onze vergelijking van formulierplugins.

Wat u zelf doet en wanneer u hulp inschakelt

Stap 1 tot en met 3 kunt u meestal zelf regelen via de instellingen van uw formulierplugin, in een half uur. Een captcha instellen vraagt om het aanmaken van sleutels bij Cloudflare of Google en het invoeren daarvan op de juiste plek; ook dat is te doen, mits u het daarna test. Firewallregels en serverinstellingen laat u liever aan uw hosting of onderhoudspartij over.

Bij het hoveniersbedrijf uit de inleiding was de combinatie honeypot, tijdcontrole en Turnstile voldoende: van dertig naar gemiddeld één spambericht per dag, en geen enkele klacht van klanten dat het formulier niet werkte. Dat is de maatstaf. Niet nul spam, maar een formulier dat voor klanten drempelloos blijft en voor u werkbaar is. Wilt u dat iemand de instellingen nakijkt en de firewall erbij regelt, dan valt dit bij WebMaintor onder de beveiliging van uw website. Begin in elk geval vandaag met de honeypot; dat kost u vijf minuten en scheelt morgen al.