Blog > Bot and spam protection for forms — Cloudflare Turnstile vs. reCAPTCHA, the practical comparison

Bot and spam protection for forms — Cloudflare Turnstile vs. reCAPTCHA, the practical comparison

How to choose and implement bot / spam protection for public forms. reCAPTCHA, Cloudflare Turnstile, hCaptcha compared on UX, accuracy, and privacy. Plus the supplementary techniques that compound with CAPTCHA.

"Our survey is getting junk submissions" and "our contact form is flooded with spam links" — anyone running a public form hits this. Bot and spam protection is unavoidable.

This article covers the main options and the UX / accuracy / cost trade-offs.

What you're defending against

Common attack patterns

  1. Spam bots — bulk commercial spam, link injection
  2. Credential stuffing — login attempts with leaked credentials
  3. Data harvesting — automated form-fill to extract structure
  4. DDoS — mass form submissions overloading the server

Actual cost

Bot protection history

Gen 1: Simple CAPTCHA (2000s)

Distorted-text input. Early on it worked; AI now breaks it trivially. Severe accessibility problems too.

Gen 2: reCAPTCHA v2 / "I'm not a robot" (2014)

Checkbox click. Improved against bots, but image-recognition tasks killed UX.

Gen 3: reCAPTCHA v3 (2018)

Background scoring without user interaction. UX recovered, but privacy concerns about sending data to Google scaled.

Gen 4: Cloudflare Turnstile / hCaptcha (2022)

Privacy-focused alternatives. Cloudflare offers Turnstile free; UX is dramatically better; adoption is climbing fast.

Main options compared

Item reCAPTCHA v3 Cloudflare Turnstile hCaptcha
UX Good (background) Best (mostly no interaction) Good (occasional image task)
False-positive rate Slightly high Low Medium
Privacy △ Google data ◎ Cloudflare-internal ◎ Privacy-focused
Free tier 1M calls/mo Fully free 1M/mo
Implementation ease Easy Easy Easy
Mobile Good Best Good

How to choose

Repoan's defaults

Repoan ships Cloudflare Turnstile on every form by default. No config — protection applies to:

Users see a small "✓ Protected" indicator. In most cases, no clicks required — UX stays clean.

Supplementary defenses

CAPTCHA isn't the only layer. Stacking these compounds.

1. Honeypot

A hidden input field. Bots fill all fields; humans don't see it:

<input type="text" name="website" style="display:none;" tabindex="-1" autocomplete="off">

Any value in that field = bot, reject.

2. Submission time validation

Humans take several seconds to fill in. Sub-1-second submissions = bot.

3. Rate limiting

Multiple submissions from the same IP within a short window → trigger additional checks.

4. Email format validation

Block disposable email domains (10minutemail and friends).

Human-source junk responses

CAPTCHA stops bots. Human submitting low-quality answers is a separate problem.

Duplicate prevention

Low-quality detection

Repoan's AI analysis auto-flags these low-quality patterns too.

Recommended by use case

B2B (asset request / inquiry)

B2C (CSAT / campaigns)

Internal surveys

Public prize campaigns

What not to do

❌ Nothing

A public form without CAPTCHA hits spam saturation in days.

❌ Old text-recognition CAPTCHA

Bad UX, easily bypassed by modern AI.

❌ Honeypot only

Sophisticated attackers evade honeypots. CAPTCHA + honeypot is the combination.

❌ Over-aggressive validation

High false-positive rate hurts UX and conversion.

Summary

Modern best practice:

  1. Cloudflare Turnstile as the default (best UX × privacy balance)
  2. Honeypot + submission-time validation as supplements
  3. Duplicate prevention via email auth or fingerprinting
  4. Low-quality detection automated via AI analysis

Repoan ships Cloudflare Turnstile as default. No config — all forms protected. No reCAPTCHA-style UX hit, no data shipped to Google.

Build your survey in minutes with Repoan

Tell our AI your goal and get a professional question flow — or start from one of 25+ ready-made templates.

Start free