Wie stoppe ich Kontaktformular-Spam in WordPress ohne CAPTCHA?
Von Eureka Studio · Aktualisiert
Kurze Antwort
Kombiniere in WordPress unsichtbare Prüfungen statt eines CAPTCHAs: ein verstecktes Honeypot- Feld, das nur Bots ausfüllen, eine Mindest-Ausfüllzeit, ein Token, das Seiten-Caching übersteht, sowie Limits pro IP und pro E-Mail-Adresse. Verschiebe Grenzfälle in die Quarantäne, statt sie zu löschen. Ein lokales Plugin kann das für Elementor, Contact Form 7 und WPForms erledigen, ohne Daten anderswohin zu senden. In Hushfort gehört der Schutz von Formular-Plugins zu Pro; das kostenlose Plugin deckt nur Kommentare und Bewertungen ab.
Schritte
1Schritt 1
Zusehen, wie Bots dein Formular angreifen
Bots füllen jedes Feld aus, das sie finden – auch ein verstecktes, das ein Mensch nie sieht –, oder senden, ohne die Seite überhaupt zu laden. Das Protokoll von Hushfort benennt jeden Fall: Honeypot ausgefüllt, kein Token, zu schnell ausgefüllt, zu viele Links.
2Schritt 2
Spam-Schutz im Beobachtungsmodus einschalten
Öffne in Hushfort den Spam-Schutz, schalte ihn ein und stelle den Modus auf „Nur protokollieren – Beobachtungsmodus, blockiert nichts“. Ist Hushfort Pro installiert, lass „Formular-Plugins“ aktiviert und speichere. So wird protokolliert, was blockiert würde, ohne schon etwas zu blockieren.

3Schritt 3
Die leisen Limits festlegen (Pro)
Halte die Mindest-Ausfüllzeit kurz (3 Sekunden). Mit Pro begrenzt du außerdem, wie viele Nachrichten eine IP („Limit pro IP“) oder eine E-Mail-Adresse („Limit pro E-Mail-Adresse“) pro Stunde senden kann. Nachrichten mit mehr Links als unter „Maximale Anzahl Links“ angegeben landen in der Quarantäne.
4Schritt 4
Protokoll prüfen, dann auf Blockieren umstellen
Sieh dir nach ein paar Tagen an, was der Beobachtungsmodus erfasst hat. Sind keine echten Nachrichten darunter, stelle den Modus auf „Blockieren (empfohlen)“ und speichere.

5Schritt 5
Echte Menschen senden einfach ab
Ein Besucher tippt eine halbe Minute, sieht das versteckte Feld nie und sendet ab. Keine Rätsel, keine Bilderraster.

Warum das wichtig ist
Kontaktformular-Spam ist meist nur lästig – bis er es nicht mehr ist. Er begräbt echte Anfragen, gewöhnt dich daran, dein Postfach nur noch zu überfliegen, und kann den Versandruf deines Mailservers verschlechtern, wenn dein Formular automatische Antworten verschickt. Auf stark besuchten Websites kostet er außerdem Serverzeit, weil jede Einsendung die komplette Verarbeitung des Formular-Plugins durchläuft.
Die übliche Lösung, ein CAPTCHA, verlagert die Kosten auf deine Besucher. Sie lösen Rätsel, manche geben auf, und wer Datenschutz-Tools nutzt, bleibt hängen. Die meisten CAPTCHA-Dienste laden außerdem Code von Drittanbietern und senden Besucherdaten von deinem Server weg.
Es geht auch leiser. Bots verhalten sich anders als Menschen, und das lässt sich unbemerkt prüfen:
- Sie füllen versteckte Felder aus. Ein Honeypot ist ein Feld, das für Menschen verborgen, im HTML aber sichtbar ist. Ein Mensch lässt es leer, ein Bot füllt es aus.
- Sie sind schnell. Ein Mensch braucht ein paar Sekunden für ein Formular. Ein Bot braucht Millisekunden.
- Sie wiederholen sich. Eine IP oder eine E-Mail-Adresse, die zehn Nachrichten pro Stunde sendet, ist kein Kunde.
- Sie fügen Links ein. Eine Nachricht voller Links ist selten eine echte Anfrage.
Häufige Fehler
- Blockieren statt in Quarantäne verschieben. Ist sich eine Prüfung nicht sicher, behalte die Nachricht zur Durchsicht. Die Frage eines echten Kunden zu löschen ist schlimmer, als einmal Spam zu lesen.
- Direkt auf Blockieren gehen. Starte für ein paar Tage in einem Modus, der nur protokolliert. Prüfe, was blockiert worden wäre, bevor du blockieren lässt.
- Tokens, die am Caching scheitern. Ist dein Anti-Spam-Token Teil einer gecachten Seite, teilen sich alle Besucher ein abgelaufenes Token. Nutze einen Schutz, der sein Token beim Laden der Seite abruft.
- Nur eine Prüfung. Ein Honeypot allein stoppt die einfachen Bots. Ergänze eine Ausfüllzeit-Prüfung und Limits.
Ohne Plugin
Die meisten Formular-Plugins bringen eine einfache Version davon mit:
- Elementor-Pro-Formulare: Füge aus der Feldliste ein Feld vom Typ „Honeypot“ hinzu.
- Contact Form 7: Füge über ein Add-on einen Honeypot hinzu; CF7 unterstützt auch Akismet, wenn du damit einverstanden bist, Daten an diesen Dienst zu senden.
- WPForms: hat ein eingebautes Anti-Spam-Token und einen optionalen Honeypot in den Einstellungen jedes Formulars.
Einen einfachen Honeypot kannst du auch von Hand in jedes Formular einbauen, das du selbst kontrollierst:
<div style="position:absolute;left:-9999px" aria-hidden="true">
<label>Leave this empty <input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<?php
if ( ! empty( $_POST['website'] ) ) {
wp_die( 'Spam detected.', 403 );
}
Die Grenzen: Jedes Formular-Plugin macht es anders, meist gibt es kein gemeinsames Limit über alle Formulare hinweg, keine Quarantäne, die Fehler auffängt, und nichts für Kommentare oder Bewertungen. Am Ende richtest du dieselbe Idee fünfmal ein.
Wenn etwas schiefgeht
- Echte Nachrichten kommen nicht mehr an. Stelle den Spam-Schutz auf den Beobachtungsmodus, sende eine Testnachricht und sieh im Protokoll nach, welche Prüfung sie abgefangen hat.
- Formulare scheitern nur bei manchen Besuchern. Leere nach dem Aktivieren des Schutzes einmal deinen Seiten-Cache.
- Spam kommt trotzdem durch. Senke das Link-Limit, setze Wörter oder Domains auf die Sperrliste oder schalte den strengen Modus für Formulare ein, die nur bekannte E-Mail-Anbieter akzeptieren sollen.
Mit Hushfort
Der Spam-Schutz schützt in Hushfort Security, dem kostenlosen WordPress-Sicherheitsplugin, Kommentare und WooCommerce-Bewertungen. Für Formular-Plugins brauchst du Hushfort Pro; es ergänzt dieselbe Seite um sechs beliebte (Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator).
- Unsichtbarer Honeypot, Mindest-Ausfüllzeit und signierte Tokens, die Seiten-Caching überstehen. Das Token stammt von einem winzigen Skript mit rund 2 KB, ohne Cookies.
- Pro: standardmäßig Limits pro IP (5 pro Stunde) und pro E-Mail-Adresse (3 pro Stunde); Nachrichten mit mehr als 2 Links landen in der Quarantäne.
- Pro: eine Liste mit rund 9.900 Domains für Wegwerf-E-Mail-Adressen, deine eigenen Sperrlisten und Wortfilter.
- Pro: Quarantäne mit „Kein Spam“-Lernfunktion.
- Ein Beobachtungsmodus, damit du siehst, was blockiert würde, bevor blockiert wird.
Kein CAPTCHA, keine externe API, und keine Formulardaten verlassen jemals deinen Server.
Häufige Fragen
Stoppen Honeypots Formular-Spam wirklich?
Warum auf reCAPTCHA verzichten?
Funktioniert das mit Seiten-Caching?
Welche Formular-Plugins werden abgedeckt?
Was passiert mit einer Nachricht, die nach Spam aussieht, aber echt sein könnte?
Verwandte Anleitungen
Wie deaktiviere ich Kommentare in WordPress oder stoppe Kommentar-Spam?
Kommentare in WordPress überall deaktivieren – oder offen lassen und Kommentar-Spam stoppen. Eigene Regeln für Beiträge und Bewertungen, ohne CAPTCHA.
Zu den SchrittenWie stoppe ich Spam-Registrierungen in WordPress?
Spam-Registrierungen in WordPress und WooCommerce verhindern: Stundenlimits, Obergrenze für die Website, unsichtbare Honeypots – der Checkout bleibt offen.
Zu den SchrittenWie erkenne und blockiere ich einen Fake-Googlebot in WordPress?
Fake-Googlebot erkennen und Bad Bots in WordPress blockieren: echte Crawler per IP prüfen, Anfragen pro IP budgetieren – der Checkout bleibt immer offen.
Zu den Schritten

