Kontaktformular-Spam stoppen: Drei Checks die Bots aussperren, ganz ohne CAPTCHA
Montag morgen, 37 neue E-Mails vom Kontaktformular. Davon sind 34 Spam: SEO-Angebote, Krypto-Werbung, unlesbare Zeichenketten. Drei echte Anfragen gehen dazwischen unter. Eine davon antwortet nicht mehr, weil die Rückmeldung zwei Tage zu spät kam.
Das ist kein Einzelfall. Wer ein öffentliches Kontaktformular auf seiner Website hat, kennt das Problem. Und die übliche Lösung, ein CAPTCHA, nervt genau die echten Interessenten, die man erreichen will.
Warum CAPTCHAs keine gute Lösung sind
CAPTCHAs funktionieren. Aber sie haben Nebenwirkungen:
Conversion-Killer: Studien zeigen, dass CAPTCHAs die Abschlussrate von Formularen um 3 bis 12 Prozent senken. Wer vor einem verschwommenen Bild von Ampeln sitzt, bricht ab.
Barrierefreiheit: Nicht jeder kann Bildrätsel lösen. Screenreader haben mit visuellen CAPTCHAs Probleme. Das schließt potenzielle Kunden aus.
Datenschutz: Google reCAPTCHA sendet Nutzerdaten an Google-Server. Für DSGVO-konforme Websites ein heikles Thema.
Bot-Entwicklung: Moderne Bots lösen einfache CAPTCHAs zuverlässig. Das Wettrüsten geht weiter, während Ihre echten Nutzer leiden.
Die Alternative: Unsichtbarer Spam-Schutz
Statt den User zu testen, testen wir das Verhalten des Absenders. Drei Checks reichen aus, um den Großteil aller Bots zu erkennen. Und zwar ohne dass ein echter Besucher davon etwas mitbekommt.
1. Honeypot-Feld
Ein Honeypot ist ein unsichtbares Formularfeld. Echte Besucher sehen es nicht und lassen es leer. Bots lesen den HTML-Quellcode, finden ein Feld und füllen es aus.
So sieht das im HTML aus:
<div style="position:absolute;left:-9999px;" aria-hidden="true">
<input type="text" name="website_url" tabindex="-1" autocomplete="off">
</div>
Warum das funktioniert:
position:absolute; left:-9999pxversteckt das Feld visuell, aber es bleibt im DOM sichtbar für Botsaria-hidden="true"sorgt dafür, dass Screenreader es ignorierentabindex="-1"verhindert, dass jemand per Tab hineintippt- Der Feldname
website_urlklingt für Bots wie ein legitimes Feld
Wichtig: Verwenden Sie nicht display:none. Viele Bots erkennen das inzwischen und überspringen solche Felder.
2. Zeitprüfung
Ein Mensch braucht mindestens ein paar Sekunden, um ein Formular auszufüllen. Ein Bot submitted in Millisekunden.
Die Lösung: Beim Laden der Seite wird ein Zeitstempel in ein verstecktes Feld geschrieben. Beim Absenden vergleicht der Server die Differenz. Unter zwei Sekunden? Bot.
<input type="hidden" name="_timestamp" id="ts">
<script>
document.getElementById('ts').value = new Date().toISOString();
</script>
3. Wegwerf-E-Mail-Erkennung
Echte Kunden verwenden keine Wegwerf-E-Mail-Adressen. Bots und Spammer dagegen nutzen Dienste wie Mailinator, Guerrillamail oder Yopmail, um anonyme Adressen zu generieren.
Die Prüfung: Die Domain der eingegebenen E-Mail-Adresse wird gegen eine Blocklist bekannter Wegwerf-Anbieter abgeglichen. Match? Spam.
Was bei Spam passiert und was nicht
Hier liegt der entscheidende Unterschied zu einem CAPTCHA: Der Bot bekommt keine Fehlermeldung. Er erhält eine ganz normale Erfolgsantwort: 200 OK, "Danke für Ihre Nachricht." Der Bot denkt, es hat funktioniert, und zieht weiter. Aber serverseitig passiert nichts: keine E-Mail, keine Benachrichtigung, kein Eintrag in der Datenbank.
Für echte Absender ändert sich nichts. Ihr Formular sieht genauso aus wie vorher, funktioniert genauso schnell, und niemand muss Ampeln zählen.
So setzen Sie es mit n8n um
Für die serverseitige Prüfung brauchen Sie kein Backend entwickeln. Mit n8n lässt sich der gesamte Spam-Filter als Workflow abbilden:
- Webhook empfängt die Formulardaten (Name, E-Mail, Nachricht + Honeypot + Zeitstempel)
- Code Node führt die drei Checks aus (Honeypot gefüllt? Zu schnell? Wegwerf-Domain?)
- IF Node verzweigt: Spam oder echt?
- Spam-Pfad: Stille 200-Antwort, keine Weiterleitung
- Legit-Pfad: E-Mail-Benachrichtigung, Auto-Reply, CRM-Eintrag, ganz nach Bedarf
Die Konfiguration liegt in einem einzigen Set Node: Feldnamen, Mindestzeit und die Liste der blockierten Domains. Alles anpassbar, ohne den Code anzufassen.
Was dieser Ansatz nicht abdeckt
Kein Spam-Schutz ist perfekt. Diese Methode fängt automatisierte Bots ab, und das sind 95 Prozent des Formular-Spams. Was sie nicht erkennt:
- Manueller Spam: Jemand füllt das Formular von Hand aus. Dagegen hilft nur Content-Analyse.
- Sophistizierte Bots: Ein Bot, der JavaScript ausführt, CSS interpretiert und gezielt Honeypots umgeht. Solche Bots gibt es, aber sie zielen selten auf kleine und mittlere Websites.
- Gezielte Angriffe: Wer Ihr Formular gezielt missbrauchen will, findet einen Weg. Aber das ist ein anderes Problem als massenhafter Bot-Spam.
Für die allermeisten Websites reichen die drei Checks aus. Ohne Drittanbieter, ohne Datenschutz-Probleme, ohne genervte Besucher.
Fazit
Spam-Bots sind kein Grund, Ihre echten Besucher mit CAPTCHAs zu bestrafen. Ein Honeypot, eine Zeitprüfung und eine Wegwerf-E-Mail-Erkennung filtern den Großteil des Spams heraus: unsichtbar, schnell und DSGVO-konform. Die serverseitige Prüfung lässt sich mit n8n in einem einzigen Workflow abbilden und ist in wenigen Minuten eingerichtet.
Spam nervt, CAPTCHAs auch? Vereinbaren Sie ein kostenloses Erstgespräch und wir richten den Spam-Schutz für Ihr Kontaktformular ein. Oder Sie probieren die Methode selbst aus mit n8n.