Hushfort

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

  1. 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.

    Tabelle Protokolle & Quarantäne des Spam-Schutzes mit Einträgen aus einem WPForms-Kontaktformular: kein Token, Limit pro IP überschritten, Honeypot-Feld ausgefüllt, zu viele Links
  2. 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.

    Spam-Schutz eingeschaltet, Modus auf Nur protokollieren – Beobachtungsmodus, blockiert nichts
  3. 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.

    Limits des Spam-Schutzes: Mindest-Ausfüllzeit 3 Sekunden, Limit pro IP 5 pro Stunde, Limit pro E-Mail-Adresse 3 pro Stunde, maximal 2 Links
  4. 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.

    Modus des Spam-Schutzes von Nur protokollieren auf Blockieren (empfohlen) umgestellt und gespeichert
  5. 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.

    Ein Besucher füllt das Kontaktformular des Demo-Shops aus und sendet es ab; das Formular antwortet mit Thanks for your message

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?

Sie stoppen die meisten automatisierten Bots, die jedes Feld ausfüllen, das sie finden. Manche schlauere Bots überspringen versteckte Felder – deshalb stehen hinter dem Honeypot noch eine Ausfüllzeit-Prüfung und Limits pro IP.

Warum auf reCAPTCHA verzichten?

Es erschwert echten Besuchern das Leben, kann bei Menschen mit Datenschutz-Tools scheitern und sendet Besucherdaten an Dritte. Viele Websitebetreiber stellen außerdem fest, dass es einen Cookie-Hinweis erfordert.

Funktioniert das mit Seiten-Caching?

Ja, wenn das Token beim Laden der Seite abgerufen wird und nicht im gecachten HTML steckt. Andernfalls bekommt jeder Besucher dasselbe veraltete Token und Formulare schlagen fehl.

Welche Formular-Plugins werden abgedeckt?

Mit Hushfort Pro deckt der Spam-Schutz Elementor-Pro-Formulare, Contact Form 7, WPForms, Gravity Forms, Fluent Forms und Forminator ab. Das kostenlose Plugin deckt nur Kommentare und WooCommerce-Bewertungen ab.

Was passiert mit einer Nachricht, die nach Spam aussieht, aber echt sein könnte?

Mit Hushfort Pro landet sie in der Quarantäne, statt gelöscht zu werden. Markierst du sie als „Kein Spam“, wird sie zugestellt, und der Schutz lernt daraus.

Fehler melden oder Funktion wünschen

Deine Nachricht geht direkt an das Team, das Hushfort entwickelt.

Worum geht es?

Nur für unsere Antwort an dich.

Wir nutzen diese Angaben nur, um dir zu antworten. Datenschutz