Spam in Contact Form 7 ist nervig. Hier sind effektive Methoden, um Spam zu stoppen – ganz ohne nervige Captchas.
1. Honeypot-Feld (Am effektivsten!)
Ein unsichtbares Feld, das nur Bots ausfüllen:
/* Im Contact Form 7 Formular: */
[text honeypot class:honeypot]
/* CSS um es zu verstecken: */
.honeypot {
position: absolute;
left: -9999px;
opacity: 0;
height: 0;
}
Dann in functions.php prüfen:
add_filter('wpcf7_validate', 'honeypot_check', 10, 2);
function honeypot_check($result, $tags) {
$honeypot = isset($_POST['honeypot']) ? $_POST['honeypot'] : '';
if (!empty($honeypot)) {
$result->invalidate('', 'Spam erkannt');
}
return $result;
}
2. Zeit-basierte Validierung
Menschen brauchen Zeit zum Ausfüllen, Bots nicht:
// Hidden field mit Timestamp:
[hidden timestamp default:get]
add_filter('wpcf7_validate', 'time_check', 10, 2);
function time_check($result, $tags) {
$timestamp = intval($_POST['timestamp']);
$now = time();
// Wenn weniger als 3 Sekunden vergangen sind
if (($now - $timestamp) < 3) {
$result->invalidate('', 'Zu schnell ausgefüllt');
}
return $result;
}
3. Bestimmte Keywords blockieren
add_filter('wpcf7_spam', 'block_spam_keywords', 10, 2);
function block_spam_keywords($spam, $submission) {
$message = $submission->get_posted_data('your-message');
$spam_keywords = array(
'viagra', 'casino', 'crypto', 'bitcoin',
'SEO services', 'link building'
);
foreach ($spam_keywords as $keyword) {
if (stripos($message, $keyword) !== false) {
return true; // Ist Spam
}
}
return $spam;
}
4. Absender-Domain prüfen
add_filter('wpcf7_validate_email*', 'block_spam_domains', 20, 2);
function block_spam_domains($result, $tag) {
$email = isset($_POST[$tag->name]) ? $_POST[$tag->name] : '';
$blocked_domains = array(
'tempmail.com', 'guerrillamail.com',
'mailinator.com', '10minutemail.com'
);
$domain = substr(strrchr($email, '@'), 1);
if (in_array($domain, $blocked_domains)) {
$result->invalidate($tag, 'Diese E-Mail-Domain ist nicht erlaubt.');
}
return $result;
}
5. Flamingo für Logging
Installiere das Plugin "Flamingo" – es speichert alle Einträge in der Datenbank, auch die als Spam markierten. So kannst du Muster erkennen.
Kombiniere mehrere Methoden für maximalen Schutz – ein Honeypot allein stoppt 90% des Spams!
Warum Captcha allein nicht reicht
Google reCAPTCHA war jahrelang der Standard-Spam-Schutz. Aber 2026 gibt es Probleme: reCAPTCHA v2 (das „Ich bin kein Roboter"-Häkchen) nervt Nutzer und senkt die Conversion-Rate. reCAPTCHA v3 (unsichtbar) hat Datenschutzbedenken — es sendet Nutzerdaten an Google, was nach DSGVO problematisch ist. Und: Moderne Spam-Bots umgehen Captchas routiniert. Deshalb nutze ich eine Kombination aus mehreren Techniken statt nur Captcha.
Meine Anti-Spam-Strategie für CF7
In meinen Kundenprojekten setze ich auf eine mehrschichtige Abwehr: Honeypot-Felder (ein unsichtbares Feld das nur Bots ausfüllen — sofort erkennbar), Zeitbasierte Validierung (wenn das Formular in unter 3 Sekunden abgeschickt wird, ist es ein Bot), CF7 Akismet-Integration (Akismet prüft Inhalte gegen eine globale Spam-Datenbank), und als letzte Stufe: Quiz-Fragen (eine einfache Frage wie „Welche Farbe hat Gras?" stoppt fast alle Bots). Diese Kombination eliminiert in meiner Erfahrung 99,5 % des Spams — ohne Captcha und ohne DSGVO-Risiko.
Alternative: Eigenes Kontaktformular statt CF7
Für Kunden die maximale Performance wollen, entwickle ich oft ein schlankes Custom-Kontaktformular ohne Plugin. Der Vorteil: Kein Plugin-Overhead (CF7 lädt CSS und JS auf JEDER Seite), volle Kontrolle über Validierung und Spam-Schutz, und keine Abhängigkeit von Plugin-Updates. Der Code ist leichtgewichtiger und schneller — wichtig für Core Web Vitals.
Fazit: Wann du einen Profi brauchst
Die Tipps in diesem Artikel kannst du selbst umsetzen — wenn du die Zeit und das technische Verständnis hast. Wenn nicht, ist das kein Problem: Genau dafür gibt es Webentwickler. In meiner Arbeit löse ich diese Art von Aufgaben routinemäßig — meistens innerhalb weniger Stunden. Der Vorteil: Kein Trial-and-Error auf deiner Live-Seite, kein Risiko dass etwas kaputtgeht, und du kannst dich auf dein Kerngeschäft konzentrieren. Melde dich bei mir für eine unverbindliche Einschätzung.
Aus meiner Erfahrung mit über 50 WordPress- und Custom-PHP-Projekten kann ich sagen: Die meisten technischen Probleme haben einfache Lösungen — man muss nur wissen wo man suchen muss. Und genau das ist der Unterschied zwischen stundenlangem Googeln und einem 15-Minuten-Fix vom Profi. Investiere deine Zeit in dein Business, nicht in technische Rabbit Holes.