Spam im Kontaktformular beginnt meist harmlos: ein paar SEO-Angebote am Tag, dann Hunderte Nachrichten voller Links. Der erste Reflex ist, das schwierigste Rätsel einzubauen, das sich finden lässt. Das Problem: Jede Schutzschicht hat ihren Preis, und den zahlen Menschen, nicht Bots. Ein zu strenger Filter lehnt echte Anfragen stillschweigend ab, und niemand im Unternehmen erfährt davon.
Dieser Leitfaden ordnet den Schutz von Schichten, die deine Kunden nie bemerken, bis zu solchen, die sie ausbremsen, und zeigt, wie du prüfst, ob gute Nachrichten im Müll landen. Felder, Texte an den Feldern und die Bestätigung nach dem Absenden behandelt ein eigener Leitfaden zum Kontaktformular auf der Website. Hier geht es nur darum, was mit einer Nachricht zwischen dem Klick auf „Senden“ und dem Postfach deines Teams passiert.
Bevor du Schutz einbaust: Sieh dir an, welcher Spam ankommt
Geh die Nachrichten der letzten zwei Wochen durch und teile sie in Gruppen ein. Ein Bot, der Hunderte gleiche Einsendungen schickt, verlangt eine andere Antwort als ein Mensch, der ein Kooperationsangebot von Hand einfügt. Ohne diese Aufteilung wählst du leicht eine Sperre, die den kleineren Teil des Problems stoppt und allen Kunden ein Hindernis in den Weg legt. Notiere auch, wie viele dieser Nachrichten echte Fragen waren, denn sie bestimmen die Grenze des vertretbaren Risikos.
Scrolle die Tabelle seitlich, um alle Spalten zu sehen.
| Art der Nachricht | Typisches Signal | Erste Schicht zum Prüfen |
|---|---|---|
| Massenversand eines Bots | Alle Felder ausgefüllt, Absenden in Sekundenbruchteilen | Verstecktes Feld und Ausfüllzeit |
| Serie aus einer Quelle | Dutzende Einsendungen in kurzer Zeit | Sendelimit pro IP-Adresse |
| Linkspam | Mehrere URLs im Text, keine eigentliche Frage | Linkfilter mit Quarantäne |
| Handgeschriebene Verkaufsangebote | Korrekter Text, der dir Dienstleistungen verkauft | Regel im Postfach, keine Formularsperre |
Die letzte Zeile ist entscheidend: Keine technische Hürde unterscheidet ein handgeschriebenes Angebot von einer Kundenanfrage. Solche Nachrichten sortierst du besser nach dem Eingang, statt sie schon im Formular aufhalten zu wollen.
Unsichtbare Schichten: verstecktes Feld, Zeit und IP-Limit
Ein Honeypot ist ein Feld, das Menschen nicht sehen, ein einfacher Bot aber ausfüllt, weil er alles ergänzt, was er im Code findet. Einsendungen mit ausgefülltem Feld legst du beiseite. Verstecke es so, dass auch Screenreader und das Autofill des Browsers es überspringen, und gib ihm einen Namen, der keinen Passwortmanager anlockt. Sonst fängt die Falle genau die Menschen, die du ohne Hindernisse bedienen wolltest.
Das zweite Signal ist die Zeit zwischen dem Laden des Formulars und dem Absenden. Ein Mensch braucht einen Moment zum Lesen und Tippen, ein Bot sendet oft sofort. Die dritte Schicht ist ein Limit für Einsendungen von einer IP-Adresse in einem festen Zeitfenster. Lass dabei viel Spielraum: In einem Büro, einer Schule oder einem Mobilfunknetz teilen sich oft viele Menschen dieselbe Adresse.
Die W3C-Notiz zur fehlenden Barrierefreiheit von CAPTCHA nennt Honeypots, Heuristiken, Ratenbegrenzung und Spamfilter als Alternativen oder Ergänzung zum klassischen CAPTCHA. Wie wirksam diese Methoden für eine bestimmte Website sind, gibt sie nicht an. W3C.
Link- und Wortfilter: Quarantäne statt Löschen
Kunden fügen selten mehrere URLs in eine erste Nachricht ein, Spammer tun das ständig. Die Regel „mehr als ein Link bedeutet: bitte prüfen“ sortiert einen großen Teil des Mülls aus. Entscheidend ist dabei das Wort „prüfen“. Ein Kunde fügt vielleicht den Link zu einem Produkt ein, das er bestellen will, oder zu der Seite, die du neu bauen sollst. Der Filter sollte solche Nachrichten in einen eigenen Ordner verschieben, statt sie spurlos zu löschen.
- Jede abgelehnte Nachricht landet in der Quarantäne, nicht im Papierkorb.
- Jemand sieht die Quarantäne zu einem festen Termin durch, etwa wöchentlich.
- Deine Sperrwortliste enthält keine Namen deiner Leistungen oder Produkte.
- Die absendende Person sieht dieselbe Bestätigung, egal wie der Filter entscheidet.
- Du notierst, wie viele echte Nachrichten in der Quarantäne gelandet sind.
Der letzte Punkt ist dein Maßstab für die Qualität des Schutzes. Tauchen in der Quarantäne regelmäßig Kundenanfragen auf, ist die Regel zu streng und muss gelockert werden, statt eine weitere Schicht obendrauf zu setzen.
CAPTCHA: Wann es sinnvoll ist und was es kostet
Ein Bild- oder Texträtsel hält einen Teil der Bots auf, belastet aber vor allem Menschen. Eine blinde Person kann verzerrte Zeichen nicht lesen, eine gehörlose Person die Audioversion nicht nutzen, und auf einem kleinen Bildschirm entmutigt jeder weitere Versuch mehr. Wer den Test nicht besteht, schreibt dir meist nicht über einen anderen Kanal, sondern schließt den Tab. Wie du den Kontaktweg mit Tastatur und Screenreader prüfst, beschreibt unser Leitfaden zur Barrierefreiheit von Kontaktwegen.
Lösungen im Hintergrund bewerten das Verhalten der Besucher, ohne Fragen zu stellen. Das Ergebnis ist kein Urteil: Eine niedrig bewertete Einsendung kannst du annehmen und zur Prüfung markieren, statt sie abzulehnen. Greif zu einem sichtbaren Rätsel erst, wenn die unsichtbaren Schichten versagt haben, und vergleiche nach dem Einschalten die Zahl echter Anfragen vor und nach der Änderung.
Laut Google-Dokumentation arbeitet reCAPTCHA v3 ohne Interaktion der Nutzer und liefert einen Wert von 0,0 bis 1,0; als Standard lässt sich ein Schwellenwert von 0,5 verwenden und an den eigenen Traffic anpassen. Welcher Anteil echter Einsendungen dabei abgelehnt wird, sagt sie nicht. Google for Developers.
Prüfe, ob du echte Anfragen ablehnst
Wenn der Spam auf null fällt, ist das ein verdächtiges Ergebnis. Es kann heißen, dass der Schutz funktioniert, genauso gut aber, dass das Formular gar nichts mehr annimmt. Schick deshalb ab und zu eine Einsendung so ab, wie es ein Kunde tun würde, und verfolge sie bis zum Ende. Wiederhole denselben Test nach jeder Änderung an Plugin, Theme oder Filterregeln.
- Eine normale Frage senden.Vom Smartphone, im privaten Fenster und über das Mobilfunknetz. Prüfe, ob sie bei der Person ankommt, die antworten soll.
- Eine Frage mit Link senden.Füge eine Produkt-URL hinzu. Sieh nach, ob die Nachricht im Postfach oder in der Quarantäne gelandet ist.
- Das Formular per Tastatur ausfüllen.Geh mit der Tabulatortaste durch alle Felder. Achte darauf, dass der Fokus nie im versteckten Feld landet.
- Zwei Einsendungen hintereinander senden.Prüfe, ob das IP-Limit jemanden blockiert, der einen Tippfehler aus der ersten Nachricht korrigiert.
- Ergebnis und Datum festhalten.Notiere, was wo und nach welcher Zeit ankam. Ohne Notiz zeigt der nächste Test nicht, was sich geändert hat.
„Formulartest am [Datum], [Gerät]. Bitte antwortet an [Test-E-Mail-Adresse] und nehmt sie nicht in die Kundendatenbank auf.“ So ein Text verwirrt das Team nicht und lässt sich später leicht wiederfinden.
Zeigt der Test, dass eine Nachricht hängen geblieben ist, behandle das wie jedes andere Leck auf dem Weg zum Gespräch. Die übrigen Stellen, an denen Kontakte verschwinden, haben wir im Artikel darüber zusammengestellt, wo du Anfragen verlierst.
Ein zweiter Kontaktweg und eine Warteschlange statt Postfach
Selbst ein gut eingestelltes Formular lehnt hin und wieder jemanden ab. Deshalb hilft ein Kanal daneben, der für Bots schwerer und für Menschen leichter ist. Ein Chat verlangt ein Gespräch, und eine Rückrufbitte auf der Website endet mit einem Anruf, bei dem dein Team ohnehin mit einem Menschen spricht. Wie du diese Kanäle auf der Seite anordnest, beschreibt unser Ratgeber zur Kontaktseite.
Das zweite Problem ist der Ort, an dem Nachrichten landen. In einem gemeinsamen Postfach voller Spam liegt eine echte Anfrage zwischen Angeboten, und niemand weiß, ob schon jemand geantwortet hat. Eine Warteschlange, in der jede Anfrage einen Status und eine zuständige Person hat, macht es leichter, das Anliegen eines Kunden von Müll zu unterscheiden. Die Grundsätze eines solchen Ablaufs beschreibt der Leitfaden über ein Ticketsystem im Kundenservice.
Im Meetlead-Widget erzeugen Chat, Rückrufbitte und Offline-Formular Tickets in einer gemeinsamen Warteschlange im Panel statt in getrennten Postfächern. Verbindungen zum Widget und das Anlegen neuer Besucherdatensätze haben serverseitige Limits, die den Dienst vor massenhaften Zugriffen schützen. Das ist kein Spamfilter: Meetlead bewertet keine Nachrichteninhalte und sperrt keine Kontakte, die Entscheidung, was Spam ist, trifft also weiterhin dein Team.
Fragen zu Spam im Kontaktformular
Reicht ein Honeypot allein? Er hält die einfachsten automatischen Einsendungen auf, kommt aber weder gegen Bots an, die versteckte Felder überspringen, noch gegen Menschen, die Angebote einfügen. Kombiniere ihn mit einer Zeitprüfung und einem IP-Limit. Zieh ein CAPTCHA erst in Betracht, wenn diese drei Schichten nicht genügen, am besten eines, das im Hintergrund läuft.
Solltest du als Spam markierte Nachrichten löschen? Nicht sofort. Bewahre sie für einen festgelegten Zeitraum in der Quarantäne auf und sieh sie regelmäßig durch, denn nur so erkennst du Fehlablehnungen. Lösche sie nach der Prüfung entsprechend der Aufbewahrungsfrist, die dein Unternehmen für Formulardaten festgelegt hat.

