Der kurze Vergleich
Preise und Limits, wie sie die Anbieter am 05.10.2026 veröffentlicht haben. Die Preise sind in US-Dollar.
| Cloudflare Turnstile | Google reCAPTCHA | hCaptcha | |
|---|---|---|---|
| Kostenlos | Unbegrenzte Prüfungen, bis zu 20 Widgets | Bis 10.000 Bewertungen im Monat (Essentials) | Basic-Plan ist kostenlos |
| Bezahlt | Nur Enterprise | Premium: pauschal $8 für 10.001–100.000, danach $1 pro 1.000 | Pro: $99 im Monat jährlich oder $139 monatlich, 100.000 Prüfungen inklusive |
| Was Besucher sehen | Modus Managed, Non-Interactive oder Invisible | v2: Checkbox oder unsichtbar; v3: keine Aufgabe | Checkbox und Bildaufgaben; passiver Modus in bezahlten Plänen |
| Risikowert | Nein, nur bestanden/nicht bestanden | Ja, in v3 von 0.0 bis 1.0 | Im Enterprise-Plan |
| Passt für | Die meisten Kontaktformulare | Websites, die schon Google Cloud nutzen | Eine Alternative zu Google mit Bildaufgaben |
Keiner davon ist ein vollständiger Spamfilter. Menschen, die Spam von Hand tippen, kommen durch alle drei. Kombinieren Sie jeden davon mit einem Honeypot und Regeln auf dem Server, wie in der HTML-Dokumentation beschrieben.
Cloudflare Turnstile
Turnstile führt kleine Prüfungen im Browser aus und entscheidet meist ohne Rätsel. Sie wählen einen von drei Modi: Managed, Non-Interactive oder Invisible. Der kostenlose Plan umfasst bis zu 20 Widgets, unbegrenzte Prüfungen und 10 Hostnamen pro Widget. Ihre Website muss dafür nicht zu Cloudflare umziehen.
Laut Cloudflare greift Turnstile nicht auf Formularinhalte zu, speichert und überträgt sie nicht, und das Widget erfüllt WCAG 2.2 AA. Jeder Token gilt 300 Sekunden und lässt sich nur einmal prüfen. Eine zweite Prüfung desselben Tokens scheitert mit timeout-or-duplicate.
Schwächen: Es gibt keinen Risikowert zum Feinjustieren, und die Analysen im kostenlosen Plan reichen sieben Tage zurück.
Google reCAPTCHA
reCAPTCHA gehört inzwischen zu Google Cloud, mit den Stufen Essentials, Premium und Enterprise. Essentials ist bis 10.000 Bewertungen pro Monat und Organisation kostenlos. Darüber kostet Premium pauschal $8 bis 100.000, danach $1 pro 1.000.
Version 3 zeigt nie eine Aufgabe. Sie liefert einen Wert von 0.0 bis 1.0, Google schlägt 0.5 als Startschwelle vor. Was bei niedrigen Werten passiert, entscheiden Sie. Tokens laufen nach zwei Minuten ab, wer lange schreibt, braucht also eventuell einen neuen.
Zwei Punkte für die Praxis. Google verlangt das reCAPTCHA-Badge oder einen Hinweis, dass die Seite durch reCAPTCHA geschützt ist, mit Links zu Googles Bedingungen. Und das Skript lädt von Google-Servern. Das gehört in Ihre Datenschutzerklärung. Ob Sie zusätzlich eine Einwilligung brauchen, klären Sie mit Ihrer Datenschutzberatung.
hCaptcha
hCaptcha funktioniert sehr ähnlich wie die reCAPTCHA-v2-Checkbox, und der eigene Umstiegsleitfaden nennt nur wenige Änderungen. Der Basic-Plan ist kostenlos. Pro kostet $139 im Monat bei monatlicher Zahlung oder $99 im Monat bei jährlicher. Enthalten sind 100.000 Prüfungen, danach $0.99 pro 1.000. Pro bringt einen passiven Modus mit wenig Reibung, Enterprise zusätzlich Risikowerte.
Im kostenlosen Plan sehen Besucher häufiger Bildaufgaben als bei Turnstile. Das kostet echte Anfragen, gerade am Handy. hCaptcha gibt an, DSGVO, CCPA und weitere Datenschutzgesetze einzuhalten. Die für Sie wichtigen Details stehen in der Datenschutzerklärung von hCaptcha.
Prüfen Sie den Token immer auf dem Server
Alle drei Widgets schreiben einen Token in ein verstecktes Formularfeld. Der Token beweist nichts, bis Ihr Server ihn an den Anbieter schickt und eine Erfolgsantwort bekommt. Ein Formular, das nur das Widget zeigt, ist nicht geschützt: Ein Bot kann die Seite überspringen und direkt an Ihren Server senden.
Das Beispiel unten prüft einen Turnstile-Token in einem Cloudflare Worker. reCAPTCHA und hCaptcha funktionieren genauso, mit eigener Prüf-URL und eigenem Secret.
// Ein Cloudflare Worker (oder ein beliebiger Server mit fetch), der das Formular annimmt.
export default {
async fetch(request, env) {
const form = await request.formData();
const check = new FormData();
check.append("secret", env.TURNSTILE_SECRET_KEY); // das Secret bleibt auf dem Server
check.append("response", form.get("cf-turnstile-response") || "");
check.append("remoteip", request.headers.get("CF-Connecting-IP") || "");
const result = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", {
method: "POST",
body: check,
}).then((response) => response.json());
// Ein Token gilt einmal und läuft nach 300 Sekunden ab.
if (!result.success) return new Response("Bitte erneut versuchen.", { status: 403 });
// Prüfung bestanden: Formular hier speichern oder weiterleiten.
return new Response("Danke, Ihre Nachricht ist angekommen.");
},
};Der Widget-Code für jeden Dienst
<!-- Cloudflare Turnstile: fügt das Feld cf-turnstile-response hinzu --> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY"></div> <!-- reCAPTCHA v2 mit Checkbox: fügt das Feld g-recaptcha-response hinzu --> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <div class="g-recaptcha" data-sitekey="YOUR_RECAPTCHA_SITE_KEY"></div> <!-- hCaptcha: fügt das Feld h-captcha-response hinzu --> <script src="https://js.hcaptcha.com/1/api.js" async defer></script> <div class="h-captcha" data-sitekey="YOUR_HCAPTCHA_SITE_KEY"></div>
Häufige Fehler
- Den geheimen Schlüssel in die Seite schreiben. Öffentlich ist nur der Site Key.
- Den Token im Browser statt auf dem Server prüfen.
- Denselben Token zweimal prüfen, etwa bei einem erneuten Versuch. Turnstile lehnt die zweite Prüfung ab.
- Eine zweite Domain, etwa die Staging-Seite, nicht in die Hostnamen des Widgets eintragen.
- Bei jedem Besuch ein schweres Rätsel zeigen. Bei wenig Spam reicht oft ein Honeypot.
Liefert das Formular nach dem Einbau eines CAPTCHAs plötzlich nichts mehr, ist oft die Token-Prüfung schuld. Die Schritte im Artikel warum ein Kontaktformular keine E-Mails sendet helfen bei der Suche.
Was davon mit Formgong funktioniert
Formgong prüft Cloudflare Turnstile für Sie auf dem Server. Aktivieren Sie Cloudflare Turnstile erzwingen in den Formular-Einstellungen und tragen Sie dort Ihren eigenen Turnstile Site Key und Ihr Secret ein. Danach fügen Sie das Widget ins Formular ein, und Formgong prüft den Token bei jeder Einsendung. Das geht auch im Free-Tarif.
Tokens von reCAPTCHA und hCaptcha prüft Formgong nicht. Nutzt Ihr Formular einen davon, speichert Formgong den Token als normales Feld und verlässt sich auf eigene Prüfungen: Honeypot, Ausfüllzeit und Inhalt. Für Fragen zum Datenschutz lesen Sie, wie Sie ein DSGVO-taugliches Form-Backend wählen. Dieser Artikel ist keine Rechtsberatung.
Häufig gestellte Fragen
Ist Cloudflare Turnstile wirklich kostenlos?
Ja. Stand 05.10.2026 umfasst der kostenlose Plan unbegrenzte Prüfungen und bis zu 20 Widgets. Andere Cloudflare-Dienste brauchen Sie dafür nicht.
Ist reCAPTCHA noch kostenlos?
Bis 10.000 Bewertungen pro Monat und Organisation in der Stufe Essentials. Darüber rechnet Google über die Premium-Stufe ab.
Ist ein Wechsel von reCAPTCHA zu hCaptcha oder Turnstile aufwendig?
Meist nicht. Tauschen Sie Skript und Widget aus und ändern Sie auf dem Server Feldnamen, Prüf-URL und Secret. hCaptcha hat einen kurzen Leitfaden für den Umstieg von reCAPTCHA.
Braucht ein Kontaktformular überhaupt ein CAPTCHA?
Am Anfang oft nicht. Ein Honeypot, eine Mindest-Ausfüllzeit und Regeln auf dem Server stoppen den meisten Bot-Spam. Ergänzen Sie Turnstile, wenn Bots durchkommen.
Quellen und Dokumentation
Offizielle Quellen zu dieser Anleitung: Cloudflare Turnstile, Turnstile plans, Turnstile widget modes, Turnstile server-side validation, Google Cloud: compare reCAPTCHA tiers, reCAPTCHA v3, reCAPTCHA FAQ (badge), hCaptcha pricing, hCaptcha: switch from reCAPTCHA. Formgong für HTML, wo die Daten gespeichert werden.
Diesen Artikel als Markdown lesenVerwandte Anleitungen
- Lovable-Formular an E-Mail und Telegram senden
- HTML-Kontaktformular ohne Backend: ein funktionierendes Beispiel
- So senden Sie Website-Einsendungen an Telegram
- Kontaktformular sendet keine E-Mail? So finden Sie die Ursache
- Website-Leads in Telegram verwalten – ohne CRM
- Formular-Backend für KI-Websites: Lovable, Bolt, v0, Cursor
- Telegram-Bot fürs Kontaktformular: selbst bauen?
- Formular-Backend und DSGVO: 7 Prüfpunkte
- Kontaktformular-Spamschutz ohne Captcha
- Mailto-Formular in HTML: warum es scheitert
- HTML-Formular in Google Sheets: 2 kostenlose Wege
- Webflow-Formular-Limit: was tun nach 50?
- Contact Form 7 und Elementor an Telegram senden
- Squarespace-Formular sendet keine E-Mail?
- Shopify-Kontaktformular: Wohin gehen Mails?
- Google Formular an Telegram: kostenlos
- Wix-Kontaktformular sendet keine E-Mail?
- EU-/DSGVO-Formspree-Alternativen im Vergleich
- WordPress-Kontaktformular ohne Plugin
- Kontaktformulare, die nichts senden: 793 KI-Websites im Test