Zum Inhalt springen

Anti-Spam für Elementor Pro Formulare

Elementor Pro bietet eine praktische Formularfunktion – leider ohne vernünftigen Spam-Schutz. Die Standardlösung reCAPTCHA ist datenschutzrechtlich problematisch. Hier zeige ich eine DSGVO-konforme Alternative.

Das Problem

Elementor Pro Formulare:

  • Erkennen die WordPress-Blacklist für Kommentare nicht
  • Integrieren nicht mit Plugins wie Antispam Bee
  • Erfordern für Spam-Schutz oft Google reCAPTCHA

Warum reCAPTCHA problematisch ist

Google reCAPTCHA (vor allem V3):

  • Setzt Third-Party-Cookies
  • Überträgt Daten an US-Server
  • Erfordert Einwilligung im Cookie-Banner
  • Macht deine Datenschutzerklärung komplizierter

Für die meisten Kontaktformulare ist das übertrieben.

Die Lösung: WordPress-Blacklist nutzen

Mit einem kleinen Code-Snippet können wir die WordPress-interne Blacklist für Elementor-Formulare aktivieren:

/**
 * Spam-Filter für Elementor Pro Formulare
 * Nutzt die WordPress Kommentar-Blacklist
 */
add_action('elementor_pro/forms/validation', function($record, $ajax_handler) {
    $fields = $record->get('fields');
    $blacklist = get_option('disallowed_keys');

    if (empty($blacklist)) {
        return;
    }

    $blacklist_array = explode("\n", $blacklist);

    foreach ($fields as $field) {
        foreach ($blacklist_array as $word) {
            $word = trim($word);
            if (!empty($word) && stripos($field['value'], $word) !== false) {
                $ajax_handler->add_error(
                    $field['id'],
                    __('Diese Nachricht wurde als Spam erkannt.', 'theme')
                );
                return;
            }
        }
    }
}, 10, 2);

So funktioniert es

  1. Der Code prüft alle Formularfelder gegen die WordPress-Blacklist
  2. Die Blacklist findest du unter Einstellungen → Diskussion → Nicht erlaubte Kommentar-Schlüssel
  3. Bei einem Treffer wird das Formular blockiert

Blacklist pflegen

Trage typische Spam-Begriffe ein (einer pro Zeile):

  • viagra
  • casino
  • cryptocurrency
  • [url=
  • bit.ly
  • tinyurl

Zusätzlich: Honeypot-Feld

Ein Honeypot ist ein verstecktes Feld, das nur Bots ausfüllen:

// Honeypot für Elementor Formulare
add_action('elementor_pro/forms/validation', function($record, $ajax_handler) {
    $fields = $record->get('fields');

    // Prüfe ob Honeypot-Feld existiert und ausgefüllt wurde
    if (isset($fields['honeypot']) && !empty($fields['honeypot']['value'])) {
        $ajax_handler->add_error('honeypot', 'Spam erkannt.');
    }
}, 10, 2);

Honeypot einrichten

  1. Füge in Elementor ein Textfeld namens "honeypot" hinzu
  2. Setze es per CSS auf display: none; oder position: absolute; left: -9999px;
  3. Normale Besucher sehen es nicht, Bots füllen es aus

Installation

Den Code kannst du einfügen:

  • In die functions.php deines Child-Themes
  • Mit dem Plugin "Code Snippets"
  • Als eigenes Mini-Plugin

Fazit

Mit diesen beiden Methoden – Blacklist und Honeypot – fängst du den Großteil des Spams ab, ohne auf externe Dienste angewiesen zu sein. Komplett DSGVO-konform und ohne Cookie-Banner-Stress.


Du brauchst Hilfe bei der Implementierung? Schreib mir – ich unterstütze dich gerne.