Zuruck zum Blog

Kontaktformular-Spam stoppen: Drei Checks die Bots aussperren, ganz ohne CAPTCHA

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:-9999px versteckt das Feld visuell, aber es bleibt im DOM sichtbar für Bots
  • aria-hidden="true" sorgt dafür, dass Screenreader es ignorieren
  • tabindex="-1" verhindert, dass jemand per Tab hineintippt
  • Der Feldname website_url klingt 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:

  1. Webhook empfängt die Formulardaten (Name, E-Mail, Nachricht + Honeypot + Zeitstempel)
  2. Code Node führt die drei Checks aus (Honeypot gefüllt? Zu schnell? Wegwerf-Domain?)
  3. IF Node verzweigt: Spam oder echt?
  4. Spam-Pfad: Stille 200-Antwort, keine Weiterleitung
  5. 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.