Spam op je website bestrijden: formulieren en reacties beschermen Fighting spam on your website: protecting forms and comments
Spam website bestrijden formulieren is een veelbesproken onderwerp. In dit artikel
Elke website met een formulier of reactiemogelijkheid krijgt er vroeg of laat mee te maken: spam. Geautomatiseerde bots vullen contactformulieren in met reclame, phishing-links of nonsens. Het kost je tijd, vervuilt je inbox en kan zelfs je e-mailreputatie schaden.
Spam website bestrijden formulieren: 1. Soorten spam op websites
| Type | Hoe het werkt | Impact |
|---|---|---|
| Formulier-spam | Bots vullen contactformulieren in | Inbox vol, gemiste echte berichten |
| Comment spam | Reacties met links naar spam-sites | SEO-schade, onprofessionele uitstraling |
| Registratie-spam | Nep-accounts aanmaken | Database vervuiling, security risico |
| Trackback/pingback spam | WordPress pingback-functie misbruiken | Database-groei, server-load |
2. Honeypot-methode
Een honeypot is een onzichtbaar formulierveld dat mensen niet zien (en dus niet invullen), maar bots wél. Vult een bot het in? Dan weet je dat het spam is.
Lees ook: Website beveiliging: de complete gids van wachtwoord tot firewall
<!-- Dit veld is verborgen via CSS. Bots vullen het in, mensen niet. -->
<div style="position: absolute; left: -9999px;" aria-hidden="true">
<label for="website_url">Laat dit veld leeg</label>
<input type="text" name="website_url" id="website_url" tabindex="-1" autocomplete="off">
</div>
// Als het honeypot-veld is ingevuld, is het spam
if (!empty($_POST['website_url'])) {
// Stuur een nep "succes" response (zodat de bot denkt dat het werkt)
wp_send_json_success(['message' => 'Bedankt!']);
exit;
}
Tip
Gebruik geen voorspelbare namen als honeypot of trap voor je honeypot-veld. Geavanceerde bots herkennen deze namen. Gebruik iets als website_url of company_fax. velden die een bot logisch vindt om in te vullen.
Hulp nodig? Bekijk onze website hulp rotterdam pagina.
3. reCAPTCHA en alternatieven
Google reCAPTCHA v3 (onzichtbaar)
reCAPTCHA v3 werkt op de achtergrond en geeft elke bezoeker een risicoscore (0.0 = bot, 1.0 = mens). Geen puzzels, geen klikken. de gebruiker merkt er niets van.
Privacy-overweging
reCAPTCHA stuurt data naar Google-servers. Voor GDPR-compliance moet je dit vermelden in je privacybeleid. Overweeg alternatieven als privacy een prioriteit is.
Alternatieven voor reCAPTCHA
| Oplossing | Methode | Privacy |
|---|---|---|
| hCaptcha | Visuele puzzels | Beter dan Google, GDPR-vriendelijker |
| Cloudflare Turnstile | Onzichtbaar, browser challenges | Geen tracking, gratis, privacy-first |
| Honeypot + tijdscheck | Onzichtbaar veld + minimum invultijd | Geen externe services nodig |
4. Comment spam aanpakken
WordPress reacties zijn een magneet voor spam. Enkele effectieve maatregelen:
Akismet: pre-installed WordPress plugin, filtert spam-reacties automatisch. Gratis voor persoonlijke sites.
Reacties uitschakelen: als je geen reacties nodig hebt, schakel ze uit via Instellingen > Discussie.
Handmatige goedkeuring: vereis dat de eerste reactie van een nieuw adres handmatig goedgekeurd wordt.
// Pingbacks en trackbacks uitschakelen (vaak misbruikt voor spam)
add_filter('xmlrpc_methods', function($methods) {
unset($methods['pingback.ping']);
return $methods;
});
add_filter('wp_headers', function($headers) {
unset($headers['X-Pingback']);
return $headers;
});
5. Server-niveau blokkering
Blokkeer bekende spam-netwerken voordat ze je WordPress bereiken:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (semrushbot|ahrefsbot|dotbot|mj12bot) [NC]
RewriteRule .* - [F,L]
</IfModule>
Methoden vergeleken
| Methode | Effectiviteit | Gebruikerservaring | Privacy | Complexiteit |
|---|---|---|---|---|
| Honeypot | Goed (80-90%) | Onzichtbaar | Uitstekend | Laag |
| reCAPTCHA v3 | Zeer goed (95%+) | Onzichtbaar | Matig | Gemiddeld |
| Cloudflare Turnstile | Zeer goed (95%+) | Minimaal | Goed | Gemiddeld |
| Honeypot + tijdscheck | Goed (85-95%) | Onzichtbaar | Uitstekend | Laag |
| Akismet (reacties) | Zeer goed | Onzichtbaar | Matig | Zeer laag |
Belangrijkste takeaway
Gebruik minstens twee methoden gestapeld: een honeypot (vangt 80% van de bots) plus reCAPTCHA v3 of Cloudflare Turnstile (vangt de rest). Voor reacties: schakel ze uit als je ze niet nodig hebt, of gebruik Akismet.
Gerelateerde artikelen
In this article
Every website with a form or comment section will eventually deal with it: spam. Automated bots fill out contact forms with ads, phishing links or nonsense. It costs you time, pollutes your inbox and can even damage your email reputation.
1. Types of website spam
| Type | How it works | Impact |
|---|---|---|
| Form spam | Bots fill out contact forms | Full inbox, missed real messages |
| Comment spam | Comments with links to spam sites | SEO damage, unprofessional appearance |
| Registration spam | Creating fake accounts | Database pollution, security risk |
| Trackback/pingback spam | Abusing WordPress pingback function | Database growth, server load |
2. Honeypot method
A honeypot is an invisible form field that humans don't see (and therefore don't fill in), but bots do. If a bot fills it in, you know it's spam.
<!-- This field is hidden via CSS. Bots fill it in, humans don't. -->
<div style="position: absolute; left: -9999px;" aria-hidden="true">
<label for="website_url">Leave this field empty</label>
<input type="text" name="website_url" id="website_url" tabindex="-1" autocomplete="off">
</div>
// If the honeypot field is filled, it's spam
if (!empty($_POST['website_url'])) {
// Send a fake "success" response (so the bot thinks it worked)
wp_send_json_success(['message' => 'Thank you!']);
exit;
}
Tip
Don't use predictable names like honeypot or trap for your honeypot field. Advanced bots recognize these names. Use something like website_url or company_fax: fields a bot would logically fill in.
3. reCAPTCHA and alternatives
Google reCAPTCHA v3 (invisible)
reCAPTCHA v3 works in the background and gives each visitor a risk score (0.0 = bot, 1.0 = human). No puzzles, no clicking: the user doesn't notice a thing.
Privacy consideration
reCAPTCHA sends data to Google servers. For GDPR compliance you must mention this in your privacy policy. Consider alternatives if privacy is a priority.
Alternatives to reCAPTCHA
| Solution | Method | Privacy |
|---|---|---|
| hCaptcha | Visual puzzles | Better than Google, more GDPR-friendly |
| Cloudflare Turnstile | Invisible, browser challenges | No tracking, free, privacy-first |
| Honeypot + time check | Invisible field + minimum fill time | No external services needed |
4. Tackling comment spam
WordPress comments are a magnet for spam. Some effective measures:
Akismet: pre-installed WordPress plugin, automatically filters spam comments. Free for personal sites. Disable comments: if you don't need comments, turn them off via Settings > Discussion. Manual approval: require that the first comment from a new address is manually approved.
// Disable pingbacks and trackbacks (often abused for spam)
add_filter('xmlrpc_methods', function($methods) {
unset($methods['pingback.ping']);
return $methods;
});
add_filter('wp_headers', function($headers) {
unset($headers['X-Pingback']);
return $headers;
});
5. Server-level blocking
Block known spam networks before they reach your WordPress:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (semrushbot|ahrefsbot|dotbot|mj12bot) [NC]
RewriteRule .* - [F,L]
</IfModule>
Methods compared
| Method | Effectiveness | User experience | Privacy | Complexity |
|---|---|---|---|---|
| Honeypot | Good (80-90%) | Invisible | Excellent | Low |
| reCAPTCHA v3 | Very good (95%+) | Invisible | Moderate | Medium |
| Cloudflare Turnstile | Very good (95%+) | Minimal | Good | Medium |
| Honeypot + time check | Good (85-95%) | Invisible | Excellent | Low |
| Akismet (comments) | Very good | Invisible | Moderate | Very low |
Key takeaway
Use at least two methods stacked: a honeypot (catches 80% of bots) plus reCAPTCHA v3 or Cloudflare Turnstile (catches the rest). For comments: disable them if you don't need them, or use Akismet.