Diensten Tarieven Blog Over ons Contact
|
Code op een donker scherm

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

  1. Soorten spam op websites
  2. Honeypot-methode
  3. reCAPTCHA en alternatieven
  4. Comment spam aanpakken
  5. Server-niveau blokkering
  6. Methoden vergeleken

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

TypeHoe het werktImpact
Formulier-spamBots vullen contactformulieren inInbox vol, gemiste echte berichten
Comment spamReacties met links naar spam-sitesSEO-schade, onprofessionele uitstraling
Registratie-spamNep-accounts aanmakenDatabase vervuiling, security risico
Trackback/pingback spamWordPress pingback-functie misbruikenDatabase-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

HTML: Honeypot veld toevoegen
<!-- 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>
PHP: Honeypot server-side controleren
// 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

OplossingMethodePrivacy
hCaptchaVisuele puzzelsBeter dan Google, GDPR-vriendelijker
Cloudflare TurnstileOnzichtbaar, browser challengesGeen tracking, gratis, privacy-first
Honeypot + tijdscheckOnzichtbaar veld + minimum invultijdGeen 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.

functions.php: Trackbacks en pingbacks volledig uitschakelen
// 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:

.htaccess: Bekende spam user-agents blokkeren
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} (semrushbot|ahrefsbot|dotbot|mj12bot) [NC]
  RewriteRule .* - [F,L]
</IfModule>

Methoden vergeleken

MethodeEffectiviteitGebruikerservaringPrivacyComplexiteit
HoneypotGoed (80-90%)OnzichtbaarUitstekendLaag
reCAPTCHA v3Zeer goed (95%+)OnzichtbaarMatigGemiddeld
Cloudflare TurnstileZeer goed (95%+)MinimaalGoedGemiddeld
Honeypot + tijdscheckGoed (85-95%)OnzichtbaarUitstekendLaag
Akismet (reacties)Zeer goedOnzichtbaarMatigZeer 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

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

TypeHow it worksImpact
Form spamBots fill out contact formsFull inbox, missed real messages
Comment spamComments with links to spam sitesSEO damage, unprofessional appearance
Registration spamCreating fake accountsDatabase pollution, security risk
Trackback/pingback spamAbusing WordPress pingback functionDatabase 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.

HTML: Adding a honeypot field
<!-- 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>
PHP: Server-side honeypot check
// 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

SolutionMethodPrivacy
hCaptchaVisual puzzlesBetter than Google, more GDPR-friendly
Cloudflare TurnstileInvisible, browser challengesNo tracking, free, privacy-first
Honeypot + time checkInvisible field + minimum fill timeNo 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.

functions.php: Completely disabling trackbacks and pingbacks
// 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:

.htaccess: Blocking known spam user agents
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} (semrushbot|ahrefsbot|dotbot|mj12bot) [NC]
  RewriteRule .* - [F,L]
</IfModule>

Methods compared

MethodEffectivenessUser experiencePrivacyComplexity
HoneypotGood (80-90%)InvisibleExcellentLow
reCAPTCHA v3Very good (95%+)InvisibleModerateMedium
Cloudflare TurnstileVery good (95%+)MinimalGoodMedium
Honeypot + time checkGood (85-95%)InvisibleExcellentLow
Akismet (comments)Very goodInvisibleModerateVery 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.