# reCAPTCHA-Alternativen für Website-Formulare

> Vergleiche reCAPTCHA-Alternativen für Formulare, von Turnstile und hCaptcha bis Proof-of-Work und ganz ohne Captcha, und wechsle mit einer kleinen, sicheren Änderung.

Veröffentlicht am 2026-10-25 · https://ikiform.com/de/guides/spam-protection/recaptcha-alternatives

Cloudflare Turnstile ist der naheliegendste Ersatz für reCAPTCHA: Es ist meist unsichtbar, nutzt dasselbe Muster aus Site Key und Secret Key, und seine Serverprüfung nimmt dieselben Parameter. hCaptcha passt zu Sites, die Bild-Challenges von jemand anderem als Google wollen, und Proof-of-Work-Tools wie ALTCHA laufen ganz ohne Drittanbieter. Bei vielen Kontaktformularen machen Honeypot, Inhaltsbewertung und Rate-Limit ein Captcha überflüssig.

## Warum Leute von reCAPTCHA wegwechseln

reCAPTCHA funktioniert noch. Die Gründe für einen Ersatz drehen sich meist um die Kosten für Besucher und für dich. Version 2 zeigt manchen Besuchern Bilderrätsel, was auf dem Handy langsam und für Screenreader-Nutzer schwierig ist. Version 3 ist unsichtbar, liefert aber einen Score, für den du selbst die Schwelle setzen musst, ohne Challenge als Rückfallebene. Und reCAPTCHA ist jetzt ein Google-Cloud-Produkt: Googles Abrechnungsdokumentation nennt ein kostenloses Kontingent von 10.000 Assessments pro Monat, mit kostenpflichtigen Stufen darüber.

Manche Teams wollen außerdem weniger Drittanbieter-Skripte auf ihren Seiten. Ob das für deine Datenschutzpflichten relevant ist, ist eine Frage für deine eigene rechtliche Prüfung; diese Seite vergleicht nur, wie die Tools funktionieren.

## Die Alternativen im Vergleich

| Option | Was Besucher sehen | Wer verifiziert | Gut zu wissen |
| --- | --- | --- | --- |
| reCAPTCHA v2 | Eine Checkbox, manchmal Bilderrätsel | Dein Server, bei Google | Vertraut. Die Rätsel sind der Hauptkritikpunkt |
| reCAPTCHA v3 | Nichts | Dein Server, bei Google | Liefert einen Score von 0,0 bis 1,0. Du wählst die Grenze und kümmerst dich um die Grauzone |
| [Cloudflare Turnstile](https://ikiform.com/de/guides/spam-protection/cloudflare-turnstile.md) | Meist nichts, manchmal eine Checkbox | Dein Server, bei Cloudflare | Keine Bilderrätsel. Kostenlos für bis zu 20 Widgets |
| hCaptcha | Eine Checkbox, manchmal Bilderrätsel | Dein Server, bei hCaptcha | Vom Aufbau her ähnlich wie reCAPTCHA v2, von einem anderen Unternehmen. Ein kostenloser Basic-Tarif, mit kostenpflichtigen Pro- und Enterprise-Tarifen |
| Friendly Captcha | Ein kleines Widget, das im Hintergrund ein Rätsel löst | Dein Server, bei Friendly Captcha | Proof-of-Work statt Tracking-Signalen. Kostenlos für kleine nicht kommerzielle Sites, kostenpflichtige Tarife für alle anderen |
| ALTCHA | Ein kleines Widget, das im Hintergrund ein Rätsel löst | Nur dein eigener Server | Open Source und selbst gehostet, also ohne Drittanbieter. Du betreibst und pflegst es |
| [No captcha](https://ikiform.com/de/guides/spam-protection/without-captcha.md) | Nichts | Dein Server | Honeypot, signiertes Timing, Inhaltsbewertung und Rate-Limits. Stoppt die meisten Bots, nicht alle |

Jede Option außer der letzten hängt weiterhin von einer serverseitigen Prüfung ab. Ein Widget allein stoppt nichts, weil ein Bot an deinen Endpunkt senden kann, ohne die Seite zu laden.

## Was jede Option von Menschen verlangt

Beurteile jede Option nach dem Besucher, der sich damit am schwersten tut. Bilderrätsel sind auf dem Handy langsam und für jemanden, der schlecht sieht, schwer oder unmöglich; Audio-Alternativen helfen manchen und frustrieren andere. Unsichtbare Prüfungen wie der übliche Modus von Turnstile, reCAPTCHA v3 und Proof-of-Work-Widgets verlangen von den meisten Besuchern nichts, können aber bei Leuten mit datenschutzorientierten Browsern, strengen Netzwerken oder alten Geräten trotzdem scheitern. Wenn das passiert, braucht die Person einen Ausweg: eine sichtbare Checkbox, eine klare Meldung oder eine E-Mail-Adresse, an die sie stattdessen schreiben kann. Ein Formular, das still scheitert, verliert genau die Nachrichten, von denen du nie erfährst.

## In zwei Fragen entscheiden

Diagramm: Einen reCAPTCHA-Ersatz in zwei Fragen wählen

1. Frag zuerst, ob Bots an unsichtbaren Prüfungen vorbeikommen. Wenn nicht, bleib ohne Captcha, mit Honeypot, Bewertung und Rate-Limit.
2. Wenn doch, frag, ob du Servercode ausführen kannst. Wenn ja, wähle ein Widget wie Turnstile, hCaptcha oder ALTCHA und verifiziere es auf deinem Server.
3. Ohne Server sende das Formular an ein Backend, das deine Turnstile-Schlüssel für dich verifiziert, oder nutze eine verwaltete Prüfung, die keine Schlüssel braucht.

Die meisten Kontaktformulare enden bei der ersten Frage. Miss deinen Spam, bevor du irgendein Widget hinzufügst.

## Von reCAPTCHA zu Turnstile wechseln

Die beiden sind sich so ähnlich, dass der Wechsel auf jeder Seite nur ein paar Zeilen umfasst. Leg im Cloudflare-Dashboard ein Turnstile-Widget für dieselben Hostnamen an und ändere dann Markup und Serverprüfung gemeinsam.

| Teil | reCAPTCHA v2 | Turnstile |
| --- | --- | --- |
| Skript | `https://www.google.com/recaptcha/api.js` | `https://challenges.cloudflare.com/turnstile/v0/api.js` |
| Element | `<div class="g-recaptcha" data-sitekey>` | `<div class="cf-turnstile" data-sitekey>` |
| Token-Feld | `g-recaptcha-response` | `cf-turnstile-response` |
| Verifizierungs-URL | `https://www.google.com/recaptcha/api/siteverify` | `https://challenges.cloudflare.com/turnstile/v0/siteverify` |
| Verifizierungsparameter | `secret`, `response`, `remoteip` | `secret`, `response`, `remoteip`, `idempotency_key` |

**Vorher** (`contact.html`)

```html
<form action="/api/contact" method="POST">
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <div class="g-recaptcha" data-sitekey="RECAPTCHA_SITE_KEY"></div>
  <button>Send</button>
</form>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
```

**Nachher** (`contact.html`)

```html
<form action="/api/contact" method="POST">
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <div class="cf-turnstile" data-sitekey="TURNSTILE_SITE_KEY" data-action="contact"></div>
  <button>Send</button>
</form>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
```

**Vorher** (`verify.ts`)

```ts
const form = await request.formData();
const body = new URLSearchParams({
  secret: process.env.RECAPTCHA_SECRET_KEY!,
  response: String(form.get("g-recaptcha-response") ?? ""),
});
const check = await fetch("https://www.google.com/recaptcha/api/siteverify", { method: "POST", body });
const { success } = (await check.json()) as { success: boolean };
```

**Nachher** (`verify.ts`)

```ts
const form = await request.formData();
const body = new URLSearchParams({
  secret: process.env.TURNSTILE_SECRET_KEY!,
  response: String(form.get("cf-turnstile-response") ?? ""),
});
const check = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { method: "POST", body });
const { success, action } = (await check.json()) as { success: boolean; action?: string };
const human = success && action === "contact";
```

- Das gilt für klassische reCAPTCHA-Schlüssel, die bei `siteverify` verifiziert werden. In Google Cloud erstellte Schlüssel werden stattdessen über die Assessments-API von reCAPTCHA Enterprise geprüft; die Turnstile-Seite ist dieselbe.
- Wenn du v3 genutzt hast, entferne deine Score-Schwelle. Turnstile antwortet mit bestanden oder nicht bestanden; prüfe stattdessen `action` in seiner Antwort.
- Aktualisiere deine Content Security Policy: Erlaube `https://challenges.cloudflare.com` in `script-src` und `frame-src` und entferne die Google-Einträge, sobald nichts sie mehr nutzt.
- Liefere Markup und Serveränderung im selben Deployment aus. Eine Seite mit dem neuen Widget, die an einen Server sendet, der noch `g-recaptcha-response` erwartet, lässt jede Einsendung scheitern.

## reCAPTCHA durch Ikiform ersetzen

Wenn dein Formular an Ikiform sendet, entferne das reCAPTCHA-Widget komplett. Ikiform verifiziert keine reCAPTCHA- oder hCaptcha-Tokens. Der übrig gebliebene Wert `g-recaptcha-response` käme als zusätzliches Feld an oder würde mit `422 validation_failed` als unbekanntes Feld scheitern, wenn du die Felder des Formulars definiert hast. Wähle dann, was es ersetzt:

- **Nichts weiter.** Honeypot, Inhaltsbewertung und Rate-Limits laufen bei jedem Formular. Viele Kontaktformulare brauchen nicht mehr.
- **Spamprüfung auf Ikiform.** Cloudflare Turnstile, von Ikiform ausgeführt, ohne Konto oder Schlüssel. Ein einfacher HTML-Post bekommt eine kurze Prüfseite; `fetch`-Code ruft `challenge()` aus `@ikiform/sdk` auf.
- **Eigene Turnstile-Schlüssel.** Behalte dein eigenes Widget auf der Seite, füge die Schlüssel in die Einstellungen des Formulars ein, und Ikiform verifiziert das Token.

**HTML** (`contact.html`)

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="POST">
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Send</button>
</form>
```

Dieses Formular hat gar kein Widget. Mit **Spam check** auf **Ikiform** findet die Menschlichkeitsprüfung nach dem Post auf ikiform.com statt, deine Seite lädt also kein Captcha-Skript. Die [Spam-Dokumentation](https://ikiform.com/de/docs/spam.md#human-check) behandelt jeden Modus.

> Wenn du gleichzeitig von einem gehosteten Formulardienst wegwechselst, behandeln die Vergleichsseiten zu [Formspree](https://ikiform.com/alternatives/formspree) und [Netlify Forms](https://ikiform.com/alternatives/netlify-forms), was sich sonst noch ändert.

## Prüfen, ob es funktioniert

1. Sende das Formular nach dem Wechsel ab. Der Post wird angenommen, und du hast höchstens eine Checkbox gesehen.
2. Sende mit curl ohne Token an den Endpunkt. Er wird abgelehnt, was beweist, dass der Server das neue Token prüft.
3. Durchsuche deine Seiten nach `g-recaptcha` und `recaptcha/api.js`. Nichts ist übrig.
4. Öffne **Submissions** im Dashboard. Die neue Einsendung ist da, mit jedem Feld, das du gesendet hast.
5. Nichts angekommen? Stell den Statusfilter im Dashboard auf **Spam**. Spam bekommt dieselbe Erfolgsantwort wie eine echte Einsendung.

## Stolperfallen

- **Baukasten-Einstellungen.** Website-Baukästen mit eingebauter reCAPTCHA-Einstellung verlangen das Element eventuell in jedem Formular, solange sie aktiv ist. Schalte die Einstellung aus, bevor du die Elemente entfernst.
- **Gecachte Seiten.** Besucher mit einer alten gecachten Seite senden nach dem Deployment noch eine Weile `g-recaptcha-response`. Rechne mit ein paar Fehlschlägen oder akzeptiere einen Tag lang beide Tokens.
- **v3-Scores in Berichten.** Wenn Dashboards oder Alerts den reCAPTCHA-Score lesen, verstummen sie nach dem Wechsel. Aktualisiere sie.

## Fragen

### Was ist die beste Alternative zu reCAPTCHA?

Für die meisten Formulare Cloudflare Turnstile: Es ist meist unsichtbar, kostet in kleinem Umfang nichts und verifiziert mit denselben Parametern secret und response. Wenn du gar keinen Drittanbieter willst, funktioniert ein selbst gehostetes Proof-of-Work-Tool wie ALTCHA. Viele Kontaktformulare brauchen kein Captcha, sobald Honeypot, Bewertung und Rate-Limit vorhanden sind.

### Ist reCAPTCHA noch kostenlos?

Googles Abrechnungsdokumentation nennt ein kostenloses Kontingent von 10.000 Assessments pro Monat, mit kostenpflichtigen Stufen darüber. Prüfe die aktuellen Preise von Google, bevor du darauf planst.

### Kann Ikiform reCAPTCHA- oder hCaptcha-Tokens verifizieren?

Nein. Ikiform verifiziert nur Cloudflare Turnstile, entweder mit seiner eigenen verwalteten Prüfung oder mit deinen eigenen Turnstile-Schlüsseln. Entferne andere Captcha-Widgets aus Formularen, die an Ikiform senden.

### Ist der Wechsel von reCAPTCHA zu Turnstile viel Arbeit?

Meist nicht. Du änderst die Skript-URL, die Klasse des Elements, den Namen des Token-Felds und die Verifizierungs-URL und behältst dieselben Parameter secret und response. Deploye Seite und Serveränderung gemeinsam.

## Weitere Anleitungen

- [Spam im Kontaktformular stoppen](https://ikiform.com/de/guides/spam-protection.md): Stopp Kontaktformular-Spam mit Schichten, die echte Menschen nichts kosten: Honeypot, Timing, Inhaltsbewertung, Rate-Limits und eine Menschlichkeitsprüfung nur bei Bedarf.
- [Cloudflare Turnstile](https://ikiform.com/de/guides/spam-protection/cloudflare-turnstile.md): Füge Cloudflare Turnstile zu einem einfachen HTML-Formular hinzu: das Widget, serverseitiges siteverify, Testschlüssel und ein Weg ganz ohne eigene Schlüssel oder Server.
- [Ohne Captcha](https://ikiform.com/de/guides/spam-protection/without-captcha.md): Stopp den meisten Formular-Spam ganz ohne Captcha: Honeypot, signierte Render-Zeit, Inhaltsbewertung und Rate-Limit, zusammen statt einzeln eingesetzt.
- [Honeypot-Feld](https://ikiform.com/de/guides/spam-protection/honeypot.md): Füge jedem Formular einen Honeypot hinzu, der Bots abfängt, ohne Screenreader, Tastatur oder Autofill zu stören, mit der Serverprüfung für jeden Stack.
- [Rate-Limits](https://ikiform.com/de/guides/spam-protection/rate-limiting.md): Begrenze Formulareinsendungen pro Besucher mit einem gemeinsamen Speicher, antworte mit 429 und Retry-After und sperre keine Büros aus, die sich eine IP teilen.
- [Statische Sites](https://ikiform.com/de/guides/spam-protection/static-site.md): Stopp Spam in einem Formular einer statischen Site, obwohl sie kein Geheimnis verwahren und keine Posts zählen kann, mit einem Honeypot-Partial, einem sicheren Skript und serverseitigen Prüfungen.
