Elementor Formular-Spam vermeiden – die Lösung

Bist du es leid, dass dein Posteingang mit Spam-Mails überflutet wird, die über Elementor Formulare an dich verschickt werden?

Diese Spam-Bots sind lästig, dabei gibt es mehrere Möglichkeiten, wie du diese Flut an Spam-Mails eindämmen kannst. Die besten 6 davon stelle ich dir vor, inklusive Vor- und Nachteilen (insbesondere bezüglich Datenschutz).

TLDR; Die letzte Lösung vermeidet mit einem einfachen Code-Snippet effektiv Formular-Spam in Elementor.

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“:

Elementor Honeypot Feld
Elementor Honeypot Feld

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.

Akismet Plugin - hält zuverlässig Spam von Elementor Formularen fern.

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

Elementor und Google reCaptcha v3
Elementor und Google reCaptcha v3

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?

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.

Elementor Spam verhindern mit Cloudfare Turnstile

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:

Die Kommentar-Sperrliste in WordPress
Die Kommentar-Sperrliste in WordPress

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.

Picture of Michael
Hi, ich bin Michael Baierl und bin WordPress-Programmierer aus Wien. In meiner WordPress-Community – den Website Heroes – finden Web-Designer alles, um großartige Websites für ihre Kunden zu erstellen und finanziell erfolgreich zu sein: regelmäßige Weiterbildung, Austausch, Feedback, schnelle Problemlösung und Co-Working. Schau gleich vorbei.

Inhalt

Kommentare

25 Antworten

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

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

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

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

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

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

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

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

  5. 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!!!

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

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

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

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

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

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

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

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

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

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nie wieder alleine - werde Teil der Website Heroes und bilde dich laufend weiter.

Weiterbildung und Sofort-Support für angestellte Website-Helden.

Exklusiv für Agenturen, Grafiker:innen und Designer:innen: WordPress-Programmierung.

Dein Technischer Partner für deine Website.

Schreibe wasserdichte Angebote in nur 10 Minuten.

Raus aus dem Projektgeschäft - schaffe dir langfristig ein passives Einkommen.