Im April hat Google reCAPTCHA leise in ein neues Produkt namens Google Cloud Fraud Defense eingegliedert. Im Juli folgte eine Challenge, bei der niemand mehr Ampeln anklicken muss: Sie scannen einen QR-Code mit dem Smartphone, und Google nennt das „AI-resistant“. Die eigene Dokumentation schreibt inzwischen, CAPTCHAs würden „aufgrund der Fortschritte bei Computer Vision und maschineller Intelligenz“ immer weniger nützlich.
Die meisten Anleitungen sprechen trotzdem noch von „v2 vs. v3 vs. Enterprise“, als hätte sich nichts geändert. Tatsächlich sind die Versionsnamen verschwunden, jeder Schlüssel liegt in einem Google-Cloud-Projekt, das kostenlose Kontingent teilt sich Ihre ganze Organisation, und der Score hat ohne Abrechnung nur vier mögliche Werte. Dieser Leitfaden zeigt reCAPTCHA, wie es heute funktioniert – jeden Schlüsseltyp, echte Preise, den Score, funktionierenden Code, mobile Apps, KI-Agenten, DSGVO – und die Fehler, die ich beim Einbau in die Formulare dieser Website gemacht habe.

Was ist ein CAPTCHA, und was ist reCAPTCHA heute?
Ein CAPTCHA – Completely Automated Public Turing test to tell Computers and Humans Apart – ist jeder Test, mit dem eine Website Menschen von Bots unterscheidet: verzerrte Buchstaben, „Wählen Sie alle Ampeln aus“, ein Schiebe-Puzzle. reCAPTCHA (oft auch „Google re Captcha“ geschrieben) ist Googles CAPTCHA-Dienst und der, den die meisten Websites nutzen.
Technisch ist reCAPTCHA ein Dienst zur Bot-Erkennung für Websites, mobile Apps und APIs. Ihre Seite oder App holt sich bei Google ein Token, Ihr Backend schickt dieses Token in einem Assessment an Google, und Google antwortet mit einem Urteil: Ist das Token gültig, für welche Aktion wurde es erzeugt, und wie wahrscheinlich hat ein Mensch es erzeugt – ein Score von 0,0 (sehr wahrscheinlich Bot) bis 1,0 (sehr wahrscheinlich Mensch).
Drei Änderungen der letzten zwei Jahre wiegen schwerer als jede Versionsnummer:
- Jeder Schlüssel ist ein Google-Cloud-Schlüssel. Neue „Classic“-Schlüssel gibt es seit Q3 2024 nicht mehr, die automatische Migration der restlichen Classic-Schlüssel begann in Q4 2025, und Googles Zeitplan sah den Abschluss für Q1 2026 vor – inklusive gesperrtem API-Zugriff für Schlüssel ohne Cloud-Projekt. Migrierte v2- und v3-Schlüssel funktionieren ohne Codeänderung weiter, verwaltet werden sie aber in der Google Cloud Console.
- reCAPTCHA gehört seit dem 22. April 2026 zu Google Cloud Fraud Defense. Für bestehende Integrationen ändert sich laut Google nichts; Doku, Console und Marketing tragen nur den neuen Namen. reCAPTCHA ist der Kern der Bot-Erkennung, Fraud Defense ergänzt Schutz vor Konto-, SMS- und Zahlungsbetrug.
- Stufen statt Editionen. Essentials (kostenlos), Premium (nutzungsbasiert) und Enterprise (Abo) bestimmen, welche Funktionen Sie bekommen – mehr dazu bei den Kosten.
v2 vs. v3 vs. Enterprise: Namen, die es nicht mehr gibt
Wenn Sie nach „reCAPTCHA v2 vs. v3“ gesucht haben, hier die kurze Antwort. Die Google Cloud Console verwendet keine Versionsnummern mehr. Googles Begriffszuordnung sieht so aus:
| Bekannt als | Name in der Google Cloud Console | Was Nutzer sehen |
|---|---|---|
| reCAPTCHA v3 | Website · score | Nichts. Sie bekommen pro Anfrage einen Score. |
| reCAPTCHA v2 Checkbox | Website · checkbox | „Ich bin kein Roboter“, manchmal eine Bildauswahl |
| reCAPTCHA v2 Invisible | Website · invisible with challenge fallback | Nichts oder eine Challenge nach Risikoanalyse. Nicht mehr neu anlegbar. |
| — | Website · policy-based challenge | Eine Challenge nur unter einem selbst gesetzten Score-Schwellenwert |
| — | Android / iOS | Nichts. Natives SDK, nur Score. |
| reCAPTCHA Enterprise | Kein Schlüsseltyp | Die Cloud-API, die Console und die kostenpflichtigen Stufen |
„Enterprise vs. v3“ ist also keine echte Wahl. Ein Score-basierter Schlüssel ist das v3-Erlebnis, und Sie rufen ihn über die reCAPTCHA Enterprise API (recaptchaenterprise.googleapis.com) auf – ob Sie zahlen oder nicht. Der alte Endpunkt siteverify funktioniert noch für Plugins, die einen geheimen Schlüssel brauchen, aber Google empfiehlt für alles Neue CreateAssessment, weil nur Assessments Reason Codes und die erweiterten Funktionen liefern.
So funktioniert ein reCAPTCHA-Assessment
Jede Integration, vom Kontaktformular bis zur Android-App, folgt denselben fünf Schritten.

- Ausführen. Die Seite ruft
grecaptcha.enterprise.execute(siteKey, { action: 'signup' })auf. Der Aktionsname ist ein frei gewähltes Label pro Nutzeraktion –login,signup,checkout. - Token. reCAPTCHA liefert ein undurchsichtiges Token. Es ist zwei Minuten gültig und lässt sich nur einmal prüfen – das verhindert Replay-Angriffe.
- Senden. Ihr Formular oder
fetchschickt das Token zusammen mit den eigentlichen Daten an Ihr eigenes Backend. - Bewerten. Ihr Backend ruft
projects.assessments.createmit Token, Site Key und erwarteter Aktion auf. Das ist die abgerechnete Einheit. - Entscheiden. Sie prüfen
tokenProperties.valid, vergleichentokenProperties.actionmit der erwarteten Aktion, lesenriskAnalysis.scoreundreasonsund wählen: zulassen, nachprüfen (E-Mail-Code, MFA, Moderation) oder blockieren.
Der häufigste Fehler, den ich sehe: das Token beim Laden der Seite erzeugen. Braucht der Nutzer drei Minuten für das Formular, ist das Token tot, bevor es ankommt. Erzeugen Sie es beim Absenden.
Jeder reCAPTCHA-Schlüsseltyp und wann Sie ihn nutzen
Diesen Teil überspringen die meisten Anleitungen. reCAPTCHA hat vier Plattformen und zehn Schlüsseltypen, und der falsche kostet entweder Genauigkeit oder Conversion.

| Schlüsseltyp | Plattform | Reibung | Einsatz |
|---|---|---|---|
| Score-basiert (früher v3) | Web | Keine | Standard für Formulare, Logins, Registrierung, Checkout. Von Google empfohlen. |
| Checkbox (früher v2) | Web | Hoch | Alte Plugins oder bewusste Hürde für Formulare mit geringem Wert |
| Richtlinienbasierte Challenge | Web | Nur bei riskantem Traffic | Challenge unter einem selbst gesetzten Score. GA seit Oktober 2025. |
| Universal-Schlüssel + Policy Engine | Web | Regelbasiert | Ein Schlüssel mit Regeln auf Score, IP, User Agent, ASN oder verifizierter Bot-Identität. Preview seit Juli 2026. |
| Android / iOS | Mobil | Keine | Native Apps über das reCAPTCHA-SDK. Nur Score. |
| WAF Action-Token | Web, mobil | Keine | Schutz einzelner Aktionen am Edge, etwa mit Cloud Armor |
| WAF Session-Token | Web | Keine | Bewertung der ganzen Sitzung auf einer Domain |
| WAF Challenge-Seite | Web | Hoch | Zwischenseite für Traffic, den Sie bereits verdächtigen |
| Express | API, IoT, TV | Keine | Nur serverseitig, wenn kein JavaScript und kein SDK läuft. Geringere Genauigkeit. |
Ein paar Regeln aus dem Leitfaden zu Schlüsseltypen:
- Score-basierte Schlüssel sind auch die Antwort auf Barrierefreiheit. Google nennt Anforderungen an Barrierefreiheit ausdrücklich als Grund für sie und schreibt, dass CAPTCHA-Challenges nicht für alle Nutzer zugänglich sind.
- Checkbox- und richtlinienbasierte Schlüssel gibt es nur fürs Web. Android- und iOS-Schlüssel liefern nur Scores.
- Express tauscht Genauigkeit gegen Reichweite. Ohne clientseitige Signale erkennt es laut Google „typischerweise“ weniger als Integrationen mit Client-Komponente. Nutzen Sie es für APIs, Smart-TVs und Konsolen, nicht als Abkürzung für Websites.
- Die Policy Engine ändert auch das Frontend. Ihr AutoExecute-Modus prüft ausgehende
fetch-Anfragen und hängt Tokens automatisch an, die Seite braucht nur noch ein Script-Tag. Sie erfordert Abrechnung und ist in der Preview.
Ist reCAPTCHA kostenlos? Die Kosten in echten Zahlen
Kurz: Als kostenloses Captcha reicht reCAPTCHA, solange Ihre Organisation unter 10.000 Prüfungen im Monat bleibt. reCAPTCHA rechnet pro Assessment ab: jeder CreateAssessment-Aufruf oder jeder Aufruf des alten Endpunkts siteverify. Gezählt wird die Prüfung eines Tokens. Die Abrechnungsseite definiert drei Stufen:
| Essentials | Premium | Enterprise | |
|---|---|---|---|
| So bekommen Sie es | Standard, ohne Abrechnungskonto | Abrechnung im Projekt aktivieren | Vertrag mit dem Vertrieb |
| 0–10.000 Assessments / Monat | Kostenlos | Kostenlos | — |
| 10.001–100.000 | HTTP 429 für CreateAssessment |
8 $ pauschal | — |
| Über 100.000 | — | 0,001 $ pro Stück (1 $ pro 1.000) | Feste Menge zu 1 $ pro 1.000 |
| Bindung | Keine | Monatlich, nutzungsbasiert | Mindestens 12 Monate |
| Score-Stufen | 4 | 11 | 11 |
| Reason Codes | Nein | Basis | Erweitert |
| Richtlinienbasierte Challenge, Policy Engine | Nein | Ja (Policy Engine: 3 Regeln) | Ja |
| Konto-, Passwort-, SMS-, Transaktionsschutz | Nein | Ja (zusätzliche Assessments) | Ja |

Rechenbeispiele für Premium mit den veröffentlichten Preisen:
| Assessments pro Monat | Kosten Premium |
|---|---|
| 8.000 | 0 $ |
| 50.000 | 8 $ |
| 250.000 | 8 $ + 150.000 × 0,001 $ = 158 $ |
| 1.000.000 | 8 $ + 900.000 × 0,001 $ = 908 $ |
Zwei Details erwischen viele:
- Die 10.000 kostenlosen Assessments gelten pro Organisation, nicht pro Projekt oder Website. Zehn Nebenprojekte in einer Google-Cloud-Organisation teilen sich ein Kontingent.
- Die beiden Prüf-Endpunkte scheitern in entgegengesetzte Richtungen. Über dem freien Kontingent ohne Abrechnung scheitert
CreateAssessmentgeschlossen mit HTTP 429. Das altesiteverifyscheitert offen: Es liefert HTTP 200,success: true, einen festen Score von 0,9 und eine Fehlermeldung zum überschrittenen Kontingent.
Googles Preisseite und der Stufenvergleich widersprechen sich derzeit in einem Punkt: Die Preistabelle sagt, mobile SDKs seien in Essentials nicht enthalten, der Stufenvergleich führt das iOS- und Android-SDK als verfügbar. Wenn Mobile für Sie wichtig ist, testen Sie es in Ihrem Projekt, bevor Sie sich auf eine der beiden Aussagen verlassen.
So funktioniert der reCAPTCHA-Score
Der Score reicht von 0,0 bis 1,0, höher heißt geringeres Risiko. Kaum jemand weiß, wie grob er in der kostenlosen Stufe ist.

Aus der Assessment-Dokumentation:
- Es gibt 11 Stufen – 0,0, 0,1 … 1,0 –, aber ohne Abrechnungskonto nur 0,1, 0,3, 0,7 und 0,9. Auf dieser Website nutzt das Kontaktformular eine Schwelle von 0,7, der Newsletter 0,5. In einem Projekt ohne Abrechnung verhalten sich beide Schwellen identisch, weil keine Anfrage 0,5 oder 0,6 erreichen kann.
- Reason Codes erklären niedrige Werte:
AUTOMATION,UNEXPECTED_ENVIRONMENT,TOO_MUCH_TRAFFIC,UNEXPECTED_USAGE_PATTERNSundLOW_CONFIDENCE_SCORE(zu wenig Traffic für ein Urteil). Auch sie brauchen Abrechnung. - Scores brauchen Zeit. reCAPTCHA lernt aus echtem Traffic Ihrer Website; Scores in Staging und in den ersten sieben Tagen weichen vom Langzeitbetrieb ab. Google rät, Score-basierte Schlüssel erst ohne Reaktion laufen zu lassen und Schwellen aus der Verteilung abzuleiten.
- Im Hintergrund reagieren. Google empfiehlt je nach Anwendungsfall eine andere Reaktion statt einer harten Sperre: MFA oder E-Mail-Bestätigung beim riskanten Login, Moderation beim riskanten Kommentar, Prüfung bei der riskanten Bestellung.
- Annotieren. Premium und Enterprise können das Ergebnis zurückmelden (
annotateAssessment: legitim oder betrügerisch), was das Modell für Ihre Website schärft.
Ein reCAPTCHA-Score ist ein Indiz, kein Urteil. Der Code, der daraus Zulassen, Nachprüfen oder Blockieren macht, gehört Ihnen – und genau den testen Angreifer.
reCAPTCHA v3 einbinden: Produktionscode
Das ist eine gekürzte Fassung dessen, was hinter den Formularen dieser Website läuft: ein Score-basierter Schlüssel, das Enterprise-JavaScript wird erst bei Bedarf geladen, und das Assessment läuft serverseitig. Der Code läuft auf jeder Node.js-Laufzeit mit fetch.
Der Browser-Teil erzeugt das Token beim Absenden, nie beim Laden der Seite:
const SITE_KEY = '6Lc...ihr-score-schluessel';
function loadRecaptcha() { if (window.grecaptcha?.enterprise) return Promise.resolve(); return new Promise((resolve, reject) => { const s = document.createElement('script'); s.src = `https://www.google.com/recaptcha/enterprise.js?render=${SITE_KEY}`; s.onload = resolve; s.onerror = reject; document.head.appendChild(s); });}
export async function tokenFor(action) { await loadRecaptcha(); await new Promise((r) => grecaptcha.enterprise.ready(r)); return grecaptcha.enterprise.execute(SITE_KEY, { action });}
// form.addEventListener('submit', async (e) => {// e.preventDefault();// const token = await tokenFor('signup');// await fetch('/api/signup', { method: 'POST', body: JSON.stringify({ email, token }) });// });Der Server-Teil trifft die Entscheidung. Er prüft die drei Dinge, die zählen – valid, action, score – und behandelt ein fehlendes Token als Sperre:
export async function assess(token, expectedAction, { ip, userAgent } = {}) { if (!token) return { ok: false, reason: 'no-token' };
const url = `https://recaptchaenterprise.googleapis.com/v1/projects/${process.env.RECAPTCHA_PROJECT_ID}` + `/assessments?key=${process.env.RECAPTCHA_API_KEY}`; const res = await fetch(url, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ event: { token, siteKey: process.env.RECAPTCHA_SITE_KEY, expectedAction, userIpAddress: ip, userAgent }, }), signal: AbortSignal.timeout(6000), }); if (!res.ok) return { ok: null, reason: `http-${res.status}` }; // 429 = Kontingent, 5xx = Google
const { tokenProperties: t = {}, riskAnalysis: r = {} } = await res.json(); if (!t.valid) return { ok: false, reason: t.invalidReason }; if (t.action !== expectedAction) return { ok: false, reason: 'action-mismatch' }; return { ok: r.score >= 0.5, score: r.score, reasons: r.reasons ?? [] };}Drei Entscheidungen in diesem Code treffen Sie, nicht Google:
ok: nullbei HTTP-Fehlern. Auf dieser Website lässt ein Google-Ausfall oder ein erschöpftes Kontingent die Anfrage durch und schreibt eine Warnung ins Log, weil die übrigen Schichten (unten) weiter greifen und ein toter Newsletter schlimmer ist als eine Spam-Anmeldung. Ein Zahlungs-Endpunkt sollte dagegen geschlossen scheitern. So oder so: Machen Sie es zu einer Entscheidung, nicht zu einem Zufall.- Der API-Schlüssel. Die REST-API akzeptiert einen API-Schlüssel; beschränken Sie ihn in der Console auf die reCAPTCHA Enterprise API. Auf Google Cloud können Sie stattdessen die Client-Bibliothek mit der Identität des Dienstes nutzen und ganz auf den Schlüssel verzichten – mit derselben Begründung wie beim Abschaffen von Service-Account-Schlüsseln mit Workload Identity Federation.
- Der Hostname. Wenn Sie die Domain-Prüfung am Schlüssel abschalten (nötig ab 250 Domains), müssen Sie
tokenProperties.hostnameselbst prüfen.
In React oder Next.js ändert sich nichts: Rufen Sie tokenFor() im Submit-Handler auf, nicht in einem useEffect beim Mounten – aus demselben Zwei-Minuten-Grund.
reCAPTCHA testen, ohne es abzuschalten
End-to-End-Tests und CI erzeugen keinen menschlichen Score, und wer die Prüfung in Testumgebungen abschaltet, testet nie den Codepfad, der in Produktion läuft. Googles Antwort sind Test-Schlüssel, angelegt mit der gcloud CLI. Ein Test-Schlüssel liefert immer den Score oder die Challenge, die Sie festlegen:
# Score-basierter Schlüssel, der immer 0.9 liefertgcloud recaptcha keys create --web --integration-type=score \ --testing-score=0.9 --domains="localhost" --display-name="test-always-0.9"
# Checkbox-Schlüssel, der immer eine unlösbare Challenge zeigtgcloud recaptcha keys create --web --integration-type=checkbox \ --testing-score=0.0 --testing-challenge=challenge --domains="localhost" --display-name="test-unsolvable"Mit je einem Schlüssel für hohen und niedrigen Score testen Sie sowohl den Zulassen- als auch den Nachprüfen-Zweig. Test-Schlüssel lassen sich später weder in normale Schlüssel umwandeln noch bearbeiten, nur löschen – halten Sie sie in einem eigenen Projekt, getrennt von Produktion.
Kontaktformular und Login: reCAPTCHA ist nur eine Schicht
Ein Kontaktformular nur mit reCAPTCHA lässt sich weiterhin missbrauchen: Jemand schickt POST-Anfragen ohne Token an Ihren Endpunkt, spielt ein von einem Menschen erzeugtes Token innerhalb seiner zwei Minuten erneut ab oder bezahlt Menschen fürs Ausfüllen. Auf dieser Website hat jeder Formular-Endpunkt vier unabhängige Schichten, und keine reicht allein:
- Ein Honeypot-Feld, das Menschen nie sehen und einfache Bots ausfüllen.
- Ein Rate Limit pro IP – günstig und auf Serverless nur nach bestem Bemühen, aber es stoppt eine faule Flut. Wie es richtig geht, steht in Rate Limiting in der Praxis.
- Das reCAPTCHA-Assessment mit einer Aktion pro Endpunkt (
contact,subscribe) und eigener Schwelle. - Ein Bestätigungsschritt: Double-Opt-in für den Newsletter, eine menschliche Antwort fürs Kontaktformular.
Bei Login-Seiten sollte ein niedriger Score den Nutzer nicht blockieren, sondern eine Zusatzprüfung auslösen. Googles eigene Empfehlung für Logins: MFA oder E-Mail-Bestätigung unter Ihrer Schwelle. Noch besser: Schaffen Sie das Passwort ab, das Credential-Stuffing-Bots durchprobieren – mit Passkeys wird die ganze Angriffsklasse sinnlos.
reCAPTCHA in mobilen Apps: SDK oder Firebase App Check
Native Apps können das Web-Skript nicht ausführen, es gibt also zwei Wege.
Das reCAPTCHA-Mobile-SDK (Android und iOS) nutzt denselben Assessment-Ablauf mit einem Android- oder iOS-Schlüssel: execute(action) in der App, Assessment auf Ihrem Server. Es liefert nur Scores, keine Challenges. Das SDK wird aktiv weiterentwickelt – die neuesten Versionen erscheinen als Fraud Defense Mobile SDK, und die iOS-Beta aus dem August bringt macOS und tvOS mit.
Firebase App Check beantwortet eine andere Frage: nicht „Ist das ein Mensch?“, sondern „Kommt diese Anfrage aus meiner echten App auf einem echten Gerät?“. Es hängt jedem Aufruf an Firestore, Cloud Storage, aufrufbare Cloud Functions, Firebase AI Logic, einige Maps-APIs oder Ihr eigenes Backend ein App-Check-Token an. Die Anbieter:
| Plattform | App-Check-Anbieter |
|---|---|
| Android | Play Integrity, reCAPTCHA Enterprise |
| iOS und Apple-Plattformen | App Attest, DeviceCheck, reCAPTCHA Enterprise |
| Web | reCAPTCHA Enterprise (Score-basierter Schlüssel), reCAPTCHA v3 |
Achten Sie im Web auf die Kosten. Jede Erneuerung eines App-Check-Tokens ist ein reCAPTCHA-Assessment, die Standard-Lebensdauer beträgt eine Stunde, und das SDK erneuert nach etwa der Hälfte – also grob zwei Assessments pro Stunde aktiver Nutzung und Nutzer. Eine Web-App mit 1.000 täglichen Nutzern, die sie je eine Stunde offen haben, erzeugt rund 60.000 Assessments im Monat: über der kostenlosen Stufe und in Premiums 8 $. Die TTL lässt sich zwischen 30 Minuten und sieben Tagen einstellen; länger heißt weniger Assessments und ein längeres Fenster für ein gestohlenes Token. Play Integrity hat ein eigenes Standardkontingent von 10.000 Aufrufen pro Tag.
reCAPTCHA am Edge und vor APIs
Zwei weitere Integrationen holen reCAPTCHA aus Ihrem Anwendungscode:
- reCAPTCHA für WAF verbindet Tokens mit Google Cloud Armor und mit Edges von Drittanbietern wie Cloudflare, Fastly und Akamai (mehrere dieser Integrationen starteten als Preview). Ihre Edge-Richtlinie kann dann anhand des Scores zulassen, umleiten oder blockieren, bevor die Anfrage Ihren Dienst erreicht. Action-Tokens schützen einzelne Aktionen, Session-Tokens bewerten die ganze Sitzung, und die Challenge-Seite ist eine Zwischenseite für verdächtigen Traffic.
- reCAPTCHA Express ist eine rein serverseitige Integration für APIs und Geräte, die weder JavaScript noch das SDK ausführen können – IoT, Smart-TVs, Spielkonsolen. Es gibt keine Client-Komponente und damit keine clientseitigen Signale. Für diese Clients ist es die einzige Option, für Websites die schwächste.
Können KI-Agenten reCAPTCHA knacken?
Diese Frage stellen inzwischen viele, und die ehrliche Antwort steht in Googles eigener Dokumentation. In den Hinweisen zu Checkbox-Schlüsseln heißt es, CAPTCHAs würden „aufgrund der Fortschritte bei Computer Vision und maschineller Intelligenz“ weniger nützlich und seien „durch bezahlte Angreifer bedroht, die alle Arten von Challenges lösen können“. Bild-Challenges stoppen einfache Bots. Entschlossene Angreifer stoppen sie nicht, und menschliche Lösefarmen haben sie nie gestoppt.
Was Google stattdessen gebaut hat, zeigt, wohin Bot-Schutz geht:
- Der unsichtbare Score bleibt der Kern: Er bewertet Verhalten und Umgebung über die Sitzung hinweg, nicht ein einzelnes gelöstes Rätsel.
- Eine KI-resistente QR-Code-Challenge (Preview seit Juli 2026). Der Browser zeigt einen QR-Code, der Nutzer scannt ihn mit dem Smartphone, und die Prüfung läuft in der vertrauenswürdigen Ausführungsumgebung des Telefons. Android braucht Google-Play-Dienste ab Version 25.41.30, iOS nutzt App Clips ohne App-Installation. Die Aufteilung auf zwei Geräte erschwert Angriffe in großem Maßstab. Der Zugang läuft über eine Allowlist für Ihren Universal-Schlüssel.
- Ein Agent-Übersichts-Dashboard (Juli 2026), das verifizierte Agenten von mutmaßlichen Agenten trennt. Verifiziert wird über Web Bot Auth, bei dem ein Agent seine Anfragen kryptografisch signiert, oder über User-Agent- und IP-Identität.
- Policy-Engine-Regeln auf verifizierte Bot-Identität, damit Sie einen bekannten Shopping-Assistenten oder Suchcrawler durchlassen und alles andere weiter prüfen.
Die Frage lautet nicht mehr „Mensch oder Bot?“, sondern „Welche Automatisierung will ich, und kann sie beweisen, wer sie ist?“. Eine Checkbox kann das nicht beantworten. Eine Identität kann es.
Dieser Wandel reicht weit über CAPTCHAs hinaus: Agenten, die surfen, Formulare ausfüllen und APIs aufrufen, sind bereits ein Sicherheitsproblem, wie die KI-Agenten zeigten, die eine Regierungswebsite gehackt haben. Ist Ihre Website eher Ziel von Scrapern als von Spam, entscheidet auch der Unterschied zwischen Web Scraping und Web Crawling, welchen Traffic Sie behalten wollen.
reCAPTCHA funktioniert nicht: Ursachen und Lösungen
Ob das Captcha nicht funktioniert, die Überprüfung ständig fehlschlägt oder es sich nur dreht – die Ursache ist meist eine dieser:
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
invalidReason / timeout-or-duplicate |
Token älter als zwei Minuten oder doppelt geprüft | Token beim Absenden erzeugen; das Assessment nie mit demselben Token wiederholen |
action-mismatch |
Token für eine andere Aktion erzeugt | Ein Aktionsname pro Endpunkt, exakt vergleichen |
| „Invalid site key“ | Schlüssel gelöscht, falsches Projekt oder Tippfehler | Key ID aus der Console kopieren – sie ist der Site Key |
Läuft in Produktion, scheitert auf localhost |
localhost ist standardmäßig keine erlaubte Domain |
Eigener Entwicklungsschlüssel mit localhost; nie in den Produktionsschlüssel eintragen |
enterprise.js?render=KEY liefert HTTP 400, kein Token |
Der Schlüssel ist ein Checkbox-Schlüssel | render= funktioniert nur mit Score-basierten Schlüsseln. Der Typ lässt sich nicht ändern, legen Sie einen neuen an. Das war mein Fehler. |
Widget lädt nie, grecaptcha ist undefined |
Content-Security-Policy blockiert Google | Googles Liste: script-src https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/, frame-src https://www.google.com/recaptcha/ https://recaptcha.google.com/recaptcha/, connect-src https://www.google.com/recaptcha/ |
BROWSER_ERROR im Assessment |
execute() im Client fehlgeschlagen, meist Netzwerk |
execute() im Browser wiederholen |
| „This site is exceeding reCAPTCHA quota“ oder HTTP 429 | Organisation hat 10.000 kostenlose Assessments verbraucht | Abrechnung aktivieren oder Assessments reduzieren (nur beim Absenden prüfen) |
SecurityError: blocked a frame… |
Checkbox-Widget wurde nach dem Klick aus dem DOM entfernt | grecaptcha.enterprise.reset() statt Entfernen |
Region erreicht www.google.com nicht |
Netzwerkbeschränkungen | Stattdessen von www.recaptcha.net laden |
| Besucher sieht „Your computer or network may be sending automated queries“ | Geteiltes Netz (VPN, öffentliches WLAN), eine kürzlich auffällige IP oder ein laufender Angriff auf die Website | Im Code nichts zu tun; der Nutzer kann das Netz wechseln oder es später erneut versuchen |
Am meisten Zeit hat mich dieser gekostet: Mein erster Schlüssel war ein Checkbox-Schlüssel. Das Skript lieferte HTTP 400, kein Token erreichte das Backend, und das Backend – das damals bei fehlendem Token offen scheiterte – ließ jede Anfrage durch. Nichts sah kaputt aus. Heute ist ein fehlendes Token eine Sperre, und jede übersprungene Prüfung schreibt eine Warnung ins Log.
reCAPTCHA-Schlüssel: Site Key, Secret Key und API-Schlüssel
Drei verschiedene „Schlüssel“ verwirren fast alle:
- Site Key – öffentlich, steckt in Ihrer Seite oder App. In der Google Cloud Console ist es die Key ID des reCAPTCHA-Schlüssels.
- Alter geheimer Schlüssel (Secret Key) – nur für
siteverifyund Plugins, die ihn brauchen. Die Console blendet ihn standardmäßig aus; Sie finden ihn im Tab Integration des Schlüssels („Use legacy key“ oder „Integrate with a third-party service or plugin“). Behandeln Sie ihn wie ein Passwort. - Google-Cloud-API-Schlüssel oder Dienstidentität – damit ruft Ihr Backend
CreateAssessmentauf. Beschränken Sie einen API-Schlüssel auf die reCAPTCHA Enterprise API oder verzichten Sie darauf und authentifizieren Sie sich mit der Identität des Dienstes.
Plugins für WordPress, WooCommerce und Contact Form 7 verlangen meist Site Key und alten Secret Key – sie prüfen also über siteverify. Das funktioniert, ist aber genau die Konstellation, die über dem kostenlosen Kontingent offen scheitert. Behalten Sie die monatliche Zahl der Assessments im Blick.
reCAPTCHA, DSGVO und das Badge
reCAPTCHA schickt Geräte- und Verhaltenssignale an Google und gehört deshalb in jede Datenschutzerklärung. Für den deutschen Markt sind vier Punkte wichtig:
- Google ist seit dem 2. April 2026 Auftragsverarbeiter. Laut reCAPTCHA-FAQ ist Google für reCAPTCHA nicht mehr eigenständiger Verantwortlicher, sondern verarbeitet die Daten als Auftragsverarbeiter nach den Google-Cloud-Bedingungen und dem Cloud Data Processing Addendum. Sie sind alleiniger Verantwortlicher. Die Links „Google-Datenschutzerklärung und Nutzungsbedingungen“ wurden aus dem Badge entfernt, und Google empfiehlt, sie auch von der eigenen Website zu nehmen. In Ihre Datenschutzerklärung gehört jetzt der Zweck: Sicherheit, Betrugs- und Missbrauchsabwehr.
- Ein Cookie:
_GRECAPTCHA. Google bezeichnet es als notwendig für die Risikoanalyse. Wer vonwww.recaptcha.netstattwww.google.comlädt, vermeidet weiteregoogle.com-Cookies. - Einwilligung ist umstritten. In Deutschland wird diskutiert, ob das Laden des Skripts nach § 25 TDDDG eine Einwilligung braucht, weil dabei auf Informationen im Endgerät zugegriffen wird, oder ob es als unbedingt erforderlich für den Schutz eines Formulars gilt. Eine einheitliche Antwort gibt es nicht – klären Sie das mit Ihrem Datenschutzbeauftragten. Das hier ist keine Rechtsberatung.
- Datensparsam einbinden. Eine Maßnahme kostet nichts: Laden Sie das Skript nur dort, wo es gebraucht wird. Auf dieser Website lädt
enterprise.jserst beim ersten Fokus auf ein Formularfeld; wer nie ein Formular anfasst, spricht nie mit reCAPTCHA.
Darf man das Badge ausblenden? Ja. Google erlaubt .grecaptcha-badge { visibility: hidden; }, solange die Seite den Hinweis „This site is protected by reCAPTCHA.“ zeigt – etwa unter dem Formular. Native Apps zeigen gar kein Badge; ein Hinweis im Info-Bereich ist optional.
Fazit
Nutzen Sie im Web für alles einen Score-basierten Schlüssel, prüfen Sie ihn innerhalb von zwei Minuten mit CreateAssessment, kontrollieren Sie valid, action und score, und behandeln Sie den Score als ein Signal neben Honeypot, Rate Limit und Zusatzprüfung. Legen Sie im Code fest, was bei HTTP 429 passiert, und denken Sie daran, dass Ihr Score ohne Abrechnung nur vier Werte kennt. Für native Apps nehmen Sie das reCAPTCHA-SDK für „Ist das ein Mensch?“ und Firebase App Check für „Ist das meine App?“. Und behalten Sie Policy Engine und QR-Code-Challenge im Blick: Damit räumt Google ein, dass das nächste Bot-Problem kein Bot ist, der eine Checkbox anklicken kann, sondern ein KI-Agent, der das kann – und stattdessen beweisen muss, wer er ist.







Aus der Community
Diskussion auf Mastodon & Bluesky
Antworten auf diesen Artikel aus dem offenen Netz, live geladen. Keine Werbung, keine Tracking-Skripte.
Antworte dort — es erscheint hier automatisch.