Meinen Kunden empfehle ich für Formulare in den meisten Fällen das kostenpflichtige Plugin Gravity Forms, weil es meiner Meinung das beste WordPress Formular-Plugin ist. Oft haben meine Kunden auch Contact Form 7 im Einsatz. Bei fast allen stark frequentierten Websites mit Formularen kommt es heutzutage zu vielen Spameinträgen durch Bots. In diesem Artikel gebe ich einige Tipps zur Abwehr.

Letztes Update: 18. November 2021, online seit 16. August 2021

Lösungen zur Spamabwehr, die ich NICHT empfehle

Die folgenden Lösungen werden in vielen (zum Teil alten) Blogbeiträgen thematisiert. Ich habe einige davon getestet und für nicht gut befunden oder von Beginn an entschieden diese nicht zu verwenden.

1. Captcha ist tot

Das normale Captcha ist nicht mehr zu empfehlen, weil es mittlerweile von Bots umgangen werden kann.

2. Google reCaptcha v3: Problem DSGVO + Ladezeit

Häufig wird zu Google reCaptcha geraten, das kennst du sicher. In der Version 2 mussten die User die Bilder mit Ampeln, Autos oder Brücken anklicken. In der neuesten Version 3 müssen die Besucher keine Rätsel lösen, sondern die Bots werden automatisch erkannt. Leider ist das was die DSGVO betrifft nicht zu empfehlen, weil Google Daten über den User sammelt. Außerdem lädt Google reCaptcha v3 ein großes externes JavaScript-File (bei meinen Tests 132 KB), das auf jeder Seite eingebunden wird, um eben die Bots zu erkennen. Das wirkt sich negativ auf die Geschwindigkeit der gesamten Website aus, darum verwende und empfehle ich persönlich Google reCaptcha nicht.

3. Einfaches Frage-Feld ist unwirksam

Oft wird auch zu einer einfachen Frage und einem Eingabefeld geraten, z.B. „Wie viel ist vier plus fünf?“. Ich hatte eine Zeit lang ein einfaches Formular des Themes DIVI mit so einer mathematischen Aufgabe auf meiner Website. Als zu viel Spam kam, hab ich das Formular deaktiviert. Ich glaube die Bots sind genauso wie bei Captcha zu gut geworden.

4. Formularseiten aus Google-Index entfernen

Ein Tipp in diversen Foren ist die Seiten mit Formularen aus dem Google-Index zu nehmen. Das kann man bei allen Websites umsetzen, wo die Formulare ohne weiteren Content auf einer eigenen Seite sind. Es ist natürlich nicht ratsam, wenn das Formular am Ende einer wichtigen Landingpage oder auf der allgemeinen Kontaktseite aufscheint, denn dann würde die ganze Seite nicht von Google indiziert. Diese Lösung ist also nur in wenige Fällen praktikabel, aber nicht allgemein ratsam. Außerdem nützt es wahrscheinlich nichts eine schon lange bestehende Formularseite aus dem Index zu entfernen.

5. Kostenpflichtiges Tool Akismet

Es gibt das kostenpflichtige Tool Akismet, das Formulareinträge mit einer globalen DB abgleicht und so Spam erkennt. Diese Lösung kostet allerdings rund 90 EUR pro Jahr. Ich persönlich habe es bisher nicht getestet, weil die meisten meiner Kunden nicht bereit wären (schon wieder) für etwas jährlich zu bezahlen.

 

Lösungen gegen Formular-Spam, die ich empfehle

Die folgenden Lösungen zur Spamabwehr bei Formularen habe ich selbst getestet und kann diese daher empfehlen.

Honeypot

Der Begriff ist vielleicht nicht allen geläufig, daher hier die Definition von Honeypot laut Wikipedia: „Als Honigtopf, Honigtöpfchen oder auch englisch honeypot wird eine Einrichtung bezeichnet, die einen Angreifer oder Feind vom eigentlichen Ziel ablenken soll oder in einen Bereich hineinziehen soll, der ihn sonst nicht interessiert hätte – z. B. in Form eines Scheinzieles.“

Zu Honeypot wird noch immer in vielen Artikeln geraten, aber durch einen Praxistest bei einem Kunden Anfang 2021 habe ich gemerkt, dass nur diese Methode zu viel Spam durchlässt. Deshalb ist meine persönliche Empfehlung neben Honeypot noch einen zweiten Abwehrmechanismus zu verwenden.

Honeypot & Gravity Forms

Bei Gravity Forms ist diese Funktion eingebaut, man muss diese nur aktivieren. Ich habe aber gesehen, dass es eine Möglichkeit gibt die 4 unsichtbaren Felder umzubenennen. Das könnte helfen, weil die Bots wohl den Standard gelernt haben.

Bei der Verwendung von Gravity Forms und aktiviertem Honeypot kann man den folgenden Code in der functions.php Child-Theme einfügen:

/* Gravity Forms Honeypot – own custom labels */
add_filter( ‚gform_honeypot_labels_pre_render‘, function ( $honeypot_labels ) {
return array( ‚Feldname1‘, ‚Feldname2‘, ‚Feldname3‘, ‚Feldname4‘ );
} );

Eine englische Erklärung findet man auch auf der Website von Gravity Forms unter gform_honeypot_labels_pre_render

Honeypot & Contact Form 7

Für das weit verbreitete Plugin Contact Form 7 gibt es das Plugin Honeypot for Contact Form 7. Neben dem klassichen Honeypot erlaubt das Plugin auch eine Einstellung, mit der man steuern kann wie viele Sekunden der Besucher für das Ausfüllen mindestens benötigen muss. Ein Bot wird dies in Sekundenbruchteilen erledigen, ein realer Besucher wird ein paar Sekunden benötigen. Achtung: Nur die Installation bringt gar nichts, man muss es auch richtig konfigurieren.

Ich habe das Plugin seit Anfang September 2021 bei einer Kundin im Einsatz, in zwei Monaten wurden der Formular-Spam um 80-90% reduziert, aber noch immer nicht genug, damit es für die Bearbeiter angenehm wäre. Deshalb habe ich weiter recherchiert (siehe nächster Punkt).

Nachrichtenfilter für Contact Form 7

Durch eine weitere Recherche bin ich Anfang November auf das Plugin Message Filter for Contact Form 7 gestoßen. Mit diesem wird das Absenden von Formularen blockiert, wenn diese vorab definierte Keywords enthalten (z.B. viagra, sex). Außerdem lassen sich auch Links und Sprachen (z.B. Russisch) filtern. Bei meinen Livetests waren diese beiden Filter die größten Hebel. Die Konfiguration erfolgt global (nicht pro Formular) und der User erhält eine definierbare Rückmeldung (z.B. „Unser Spamfilter hat einen nicht erlaubten Text oder Link erkannt.“). Seitdem ich das Plugin bei meiner Kundin im Einsatz habe, gibt es keinen Formular-Spam mehr.

Kostenloses Plugin für Gravity Forms

Es gibt neben einigen kostenpflichtigen Plugins auch das kostenlose Plugin Gravity Forms Zero Spam. Ich habe das Plugin bei einem wichtigen Kunden seit mehreren Monaten im Einsatz und habe zusammen mit Honeypot gute Erfahrungen gemacht. Es muss nur installiert werden, es ist keine weitere Konfiguration notwendig.

Mehrseitige Formulare

In Foren und Blogartikeln habe ich gelesen, dass Bots Probleme mit mehrseitigen Formularen haben. Denn sie sind auf „normale“ (= einseitige) Formulare „trainiert“, bei mehrseitigen Formularen haben sie Probleme. Allerdings macht es keinen Sinn kurze Formulare einfach auf mehreren Seiten aufzuteilen, weil die Conversion Rate wahrscheinlich abnehmen würde (auch Menschen füllen nicht gerne lange Formulare aus). Ich habe bisher leider keinen Kunden, der ein mehrseitiges Formulare benötigt hätte. Sobald es soweit ist, werde ich zu Beginn ohne Spamschutz testen und darüber berichten.

 

Fazit zur Spam-Abwehr

Nach meinen umfangreichen Tests, empfehle ich das folgende Setting beim Einsatz von Formularen.

Gravity Forms

Contact Form 7

 

Habt ihr eine Frage oder andere Erfahrungen gemacht? Schreibt es mir in die Kommentare!