Elementor Formular-Spam eindämmen mit dem Honeypot-Feld
Die einfachste Möglichkeit, um Formular-Spam bei Elementor zu vermeiden, ist es ein Honeypot-Feld in das Formular einzufügen. Dies funktioniert mit Elementor Bordmitteln.
Füge dazu in neues Feld zu deinen Formularen hinzu und wähle als Typ „Honeypot“:
Dieses Feld ist für Besucher deiner Website nicht sichtbar, wird aber von Spam-Bots automatisiert gefüllt. Wird das Feld also ausgefüllt, dann weiß Elementor, dass es sich um einen Spam-Bot handelt und gibt eine Fehlermeldung aus.
Diese Methode ist sehr einfach umzusetzen und du solltest sie bei jedem Elementor Formular einsetzen. Allerdings hält diese Methode auch nicht sonderlich gut Spam ab.
Vorteile Honeypot | Nachteile Honeypot |
---|---|
✅ Einfach umzusetzen ✅ Funktion in Elementor enthalten ✅ DSGVO-konform ✅ Kein Puzzle notwendig | ❌ Hält nicht allen Spam ab |
Elementor Formular-Spam vermeiden mit Akismet
Elementor Pro unterstützt seit Version 3.19 auch Akisment, das Antispam-Plugin von Automattic.
Die Einrichtung ist leider etwas komplexer und erfolgt wie in der Elementor-Hilfe beschrieben. Du sicherst mit Akismet deine Formulare sehr zuverlässig gegen Spam ab, allerdings ist das Plugin kostenpflichtig und nur begrenzt DSGVO-konform.
Vorteile Akismet | Nachteile Akismet |
---|---|
✅ Hält sehr zuverlässig Spam ab ✅ Funktion in Elementor enthalten ✅ Keine Aktion des Nutzers notwendig | ❌ Kostenpflichtiges Plugin ❌ Problematisch in Bezug auf die DSGVO ❌ Komplizierte Einrichtung |
Elementor Formular-Spam vermeiden mit Google ReCaptcha v3
Die bessere, und ebenso in Elementor standardmäßig enthaltene, Möglichkeit ist die Verwendung von Google reCaptcha.
Bei Version 2 von Google ReCaptcha müssen deine Website-Besucher ein „Puzzle“ lösen und z.B. alle Ampeln, Fahrräder oder Boote auswählen:
Bei Version 3 von Google reCaptcha erkennt Google automatisch, ob es sich um einen echten Benutzer handelt und deine Website-Besucher müssen keine Bilder mehr suchen. Wähle daher auf jeden Fall Version 3.
Der große Nachteil von Google reCaptcha: es handelt sich um einen Dienst von Google. Dieser ist zwar sehr nützlich, aber leider ist Google bei den Datenschützern in Ungnade gefallen.
Hole dir daher auf jeden Fall rechtlichen Rat ein, bevor du Google reCaptcha einsetzt.
Vorteile Google reCaptcha | Nachteile Google reCaptcha |
---|---|
✅ Hält verlässlich fast allen Formular-Spam ab ✅ Funktion in Elementor enthalten | ❌ Laut aktueller Rechtsmeinung vermutlich nicht DSGVO-konform |
Kennst du schon das Business-Membership für alle WordPress-Professionals?
Workshops, Live-Q&A’s, Austausch mit anderen Webdesigner:innen, Co-Working und natürlich professioneller Support für dich. Das sind die Website Heroes.
Elementor Formular-Spam vermeiden mit Cloudfare Turnstile
Cloudfare hat mit Turnstile eine Alternative zu Google reCaptcha auf den Markt gebracht. Der Dienst läuft ebenso wie Google reCaptcha v3 automatisch im Hintergrund und erkennt selbstständig Bots.
Cloudfare greift dabei automatisch auf die Erkenntnisse aus ihrem CDN zurück und speichert keine persönlichen Daten.
Um Cloudfare Turnstile mit Elementor (oder WordPress) zu verwenden, benötigst du dieses kostenlose Plugin von WPPOOL sowie einen API-Key, den du kostenlos von Cloudfare erhältst.
Beachte auch hier, dass du deine Datenschutzerklärung anpassen musst.
Vorteile Cloudfare Turnstile | Nachteile Cloudfare Turnstile |
---|---|
✅ Hält verlässlich Formular-Spam ab ✅ Läuft im Hintergrund – keine Puzzles auszufüllen | ❌ Extra WordPress-Plugin notwendig ❌ Datenschutzrechtlich problematisch |
Elementor Formular-Spam verhindern mit captcha.eu
Google ReCaptcha und Cloudfare Turnstile sind datenschutzrechtlich problematisch. Daher setze ich bei einigen Kunden bereits die datenschutzfreundliche Lösung von captcha.eu ein.
Installiere hierzu einfach das entsprechende WordPress-Plugin und lasse dich durch den Einrichtungsprozess führen.
Der Spam-Schutz funktioniert meiner Erfahrung nach ausgezeichnet, das Plugin ist aber leider kostenpflichtig.
Vorteile Cloudfare Turnstile | Nachteile Cloudfare Turnstile |
---|---|
✅ Hält verlässlich Formular-Spam ab ✅ Läuft im Hintergrund – keine Puzzles auszufüllen ✅ Lösung aus Österreich | ❌ Extra WordPress-Plugin notwendig ❌ Kostenpflichtig ❌ Blendet Logo in der rechten unteren Ecke ein |
Elementor Formular-Spam vermeiden mit eigenem Code
Hast du das Dilemma erkannt? Entweder hältst du Formular-Spam nicht erfolgreich ab, oder du hast ein Problem mit der DSGVO.
Daher habe ich nach einer einfacheren Lösung gesucht, um zuverlässig Spam in Elementor-Formularen zu verhindern.
Herausgekommen ist ein kurzes Code-Snippet, welches du in die functions.php deines Child-Themes kopieren kannst:
add_action( 'elementor_pro/forms/validation', function($record, $ajax_handler) {
$blackwords = explode("\n", get_option('disallowed_keys'));
$fields = $record->get_field([]);
foreach($fields as $field) {
foreach($blackwords as $blackword) {
if(!trim($blackword)) continue;
$regex = '|'.trim($blackword).'|i';
if(preg_match($regex, $field['value'])) {
$ajax_handler->add_error($field['id'], esc_html__( 'Invalid Form.', 'elementor-pro' ) );
return;
}
}
}
}, 10, 2);
Du weißt nicht, was du mit diesem Code-Snippet anfangen sollst? In meiner Clean-WordPress-Installation ist dieses Code-Snippet (und viele mehr) schon enthalten. Hol dir gleich mein WordPress-Setup.
Dieses Snippet lädt die Kommentar-Sperrliste von WordPress und blockiert das Absenden von Elementor-Formularen, wenn eines der Worte dieser Liste aufscheint.
Die Sperrliste findest du im WordPress-Backend unter Einstellungen > Diskussion > Kommentar-Sperrliste:
Trage hier die unerwünschten Wörter ein und zukünftige Spam-Nachrichten können nicht mehr abgeschickt werden.
Meiner Erfahrung nach reicht eine Handvoll guter Spam-Wörter aus, um die Spam-Flut um 90% zu reduzieren.
Vorteile eigener Code | Nachteile eigener Code |
---|---|
✅ Nutzt WordPress-Standard-Funktionen ✅ Transparent für Besucher – kein Puzzle notwendig ✅ Kein extra Plugin oder Service nötig ✅ DSGVO-konform | ❌ Schwieriger umzusetzen für Nicht-Programmierer ❌ Hält nur rund 90% des Spams ab |
Fazit
Du siehst schon – es gibt leider nicht DIE eine Lösung, um Formular-Spam bei Elementor zu vermeiden. Zu komplex sind die Herausforderungen mit der DSGVO und zu intelligent sind auch die Spammer.
Für mich funktioniert die Kombination aus Elementor Honeypot und meinem Code-Snippet sehr zuverlässig. Mit der Zeit hat man genügend Sperr-Wörter gesammelt, um Spam zuverlässig abzuhalten.
Übrigens, bei den Website Heroes stelle ich dir mein WordPress-Setup zur Verfügung. Dieses enthält schon diesen Spam-Schutz sowie viele weitere nützliche Funktionen.
25 Antworten
Danke für das Script! Works like Charm!
Bitte, gerne.
Guter Beitrag, das Snippet sollten wir eventuell mal testen, da wir es momentan eher aufwänder gelöst haben.
Danke Joey.
Wie habt ihr das aktuell gelöst?
lg Michael
Feedback zur Honeypot-Methode: Ich habe das die letzten Wochen getestet. Meines Erachtens hat die Implementierung einen Bug. Bei aktueller Plugin-Version und WordPress-Version wird nur die Feld-ID ausgegeben:
“”
Der festgelegte Feldname wird vollkommen ignoriert, weswegen m.E. auch weniger Spambots darauf reinfallen. Nach meiner Messung brachte das Honeypot-Feld rein gar nichts.
Hallo Alexander,
ich habe soeben nachgesehen; es wird beim Honeypot-Feld sowohl “name” als auch “id” ausgegeben. Trage ich einen Wert in das Honeypot-Feld ein, dann lässt sich das Formular nicht abschicken. Technisch funktioniert es also.
Aber ich gebe dir recht, wirklich gut hilft es leider nicht.
Michael
Hallo Michael,
kann es sein, dass das Script nach einigen Elementor Pro-Upates so nicht mehr funktioniert? Habe es gerade getestet – leider kein Effekt.
Liebe Grüße
Michael
Hallo Michael,
gerade noch einmal probiert mit der aktuellsten Elementor-Version – funktioniert problemlos. Unverändert auf allen Websites.
Wo und wie hast du das Script denn eingebunden?
Michael
Hallo Michael!
Danke für die schnelle Reaktion. :-) Wie in der Anleitung beschrieben: den Code in die function.php des Child Themes kopiert, und in den Kommentar-Sperrliste testweise das beliebte Wort XXX eingetragen. Meine Test-Mail hat somit für Gelächter gesorgt. :-D Naja, sie ist halt durchgegangen.
Die URL möchte ich hier nicht offen posten.
Hallo Michael,
das ist sehr spannend, bei all meinen WordPressen (und das sind so einige) funktioniert es tadellos. Falls du den Fehler entdeckst würde es mich interessieren, woran es liegt. Remote und ohne Zugang kann ich das leider nicht debuggen, sorry.
Michael
Sehr guter Beitrag!
Hallo Michael, herzlichen Dank für dieses Code-Snippet. Es funktioniert bei mir ausgezeichnet. Einzig ein $-Zeichen darf ich nicht verwenden, dann wird keinerlei Nachricht mehr versendet. Vermutlich fungiert das $-Zeichen als Platzhalter für jeglichen Ausdruck? Hab es jetzt etwa 3 Wochen im Einsatz … seitdem so gut wie kein Spam mehr. Und wenn doch, suche ich ein neues Wort aus dem Inhalt und füge es der Liste hinzu. Echt super! :-) Sonnige Grüße, Alexander
Lieber Alexander,
danke für dein Feedback. Ja, die einzelnen Zeilen in den Einstellungen werden als regulärer Ausdruck ausgewertet, dh. du könntest da auch sehr wild filtern… und ein $ ist ein spezielles Zeichen, du kannst aber stattdessen \$ schreiben, dann sollte es klappen.
lg Michael
Hallo Michael, sehr wertvoller Tipp mit dem Code für die function.php des child Themes. Bekomme nun kaum noch Spam über meine Kontaktformulare und das ohne Plugin und auch noch DSGVO Konform. Der Tipp mit dem “\$” ist auch genial. Meist kommt ja oft Spam mit Casino, SEO oder mit Angeboten die einen Preis mit dem Dollar Zeichen versenden. So kommt wirklich kaum noch was durch …Vielen Dank!!!
Hallo Michael,
ich suche schon lange nach einer guten Lösung für den Spam. Plugins sind teilweise echt teuer oder stehen in Konflikt zum Datenschutz. Dein Snippet kommt wie gerufen, in den meisten Fällen sind es ja die englischsprachigen Nachrichten mit Keywords die uns erreichen. Daher eine leichte und sehr effiziente Lösung für viele Websites. Vielen Dank fürs teilen.
Eine Frage habe ich noch, eigentlich zwei.
Muss das Ganze in die functions.php oder geht es auch über die Custom Code Option von Elementor? Persönlich halte ich die functions.php gerne sauber.
Hallo Frank,
freut mich, wenn mein Snippet nützlich ist.
Das ganze darf natürlich auch als Custom Code in Elementor eingefügt werden, kein Problem. Sei dir nur bewusst, das dies ein wenig langsamer ist, als wenn du das Snippet in der functions.php ablegst (Datenbankzugriff!). Und die functions.php kannst du sauber halten, indem du weitere PHP-Dateien einbindest und deinen Code so organisierst.
lg Michael
Vielen Dank für das Skript.
Wenn man die richtigen Begriffe, also die, die in den SPAM-Mails benutzt werden, gefunden hat, funktioniert die Lösung wunderbar.
Hey hey Michael,
vielen Dank erstmal für diesen wirklich wichtigen Beitrag. Ich habe es eben mal umgesetzt und habe glaub einen Denkfehler.
– Das Snipped habe ich in die funktions.php im Child-Theme eingetragen.
– Die zu blockierenden Wörter sind ebenfalls festgelegt. Beim Test ging die Mail allerdings durch. Obwohl die Wörter aus der Sperrliste im Text vorkommen. Was übersehe ich?
LG
Petra
Liebe Petra,
korrekt, das Snippet kommt in die functions.php. Ich habe das Snippet soeben noch einmal getestet, es funktioniert bei mir einwandfrei.
Da hilft wohl nur debuggen des Snippets… Welche Version von Elementor Pro verwendest du denn? Wird der Filter überhaupt aufgerufen? Werden die zu blockierenden Wörter geladen?
lg Michael
Lieber Michael,
danke für die Antwort. Am Snippet liegt es sicher nicht. Eher an meinen nicht vorhandenen Programmierkenntnissen.
Ich verwende Elementor Pro 3.22.1 (bis vor ner Stunde war es 3.22.0 ;-) gerade habe ich das update durchgeführt). WordPress Version ist die 6.5.5.
Wenn ich mir selbst eine Nachricht über das Kontaktformular sende und dabei die blockierenden Wörter verwende geht die Mail durch.
Ich habe das Gefühl irgendwo etwas zu übersehen. Ich habe eindeutig irgendwo einen Bock geschossen und seh‘ den Wald vor lauter Bäumen nicht.
Jedenfalls trotzdem einfach nur DANKE und viele Grüße
Petra
Hi liebe Petra,
ja, das klingt so als würdest du das Snippet falsch einbinden. Wie gesagt – gerade getestet, das Formular wird gar nicht abgesendet, wenn ich einen der Begriffe der Block-Liste einfüge… kommt eine Fehlermeldung.
lg Michael
Hallo Michael,
bekomme seit einigen Wochen auch ständig (meist einmal täglich) Spam und ich hab schon ewig viel ausprobiert, aber nichts hat geklappt.
Keine Honeypots oder Rechenfragen.
Habe eben das snippet ausprobiert und getestet. Läuft tadellos. Jetzt muss ich halt nur noch, wenn eine neue Spammail kommt das eine oder andere Wort oder eine E-Mail-Adresse etc. eingeben und schon hab ich wieder Ruhe.
Irgendwann wird es eben auch Spammern zu aufwändig ;)
Danke dafür :)
Gruß
Max
Lieber Max,
freut mich, wenn es klappt. Ja, die Liste aktualisiert man von Zeit zu Zeit, und dann bleibt der meiste Spam draußen.
lg Michael
Mit dem Code gehen die Formulare nicht mehr am android smartphone. code entfernt geht wieder
Lieber Max,
das höre ich zum ersten Mal. Formulare funktionieren dann überhaupt nicht mehr? Und nur auf Android? Welche Version & welcher Browser? Was ist denn die Fehlermeldung, die vom Formular ausgegeben wird?
lg Michael