Anti-spam

Twelve ways to stop form spam, and what each one actually does

Every one of these is recommended somewhere as the answer. One of them genuinely is — and we do not sell it. The rest are worth running, worth understanding, and worth being honest about.

Corey Haines · San Diego · Aug 2026

Written from ~22 independent practitioner accounts. Bypass techniques change; each page carries its date.

We mined about forty threads and a hundred and fifty reviews looking for what people complain about in form builders. Spam was not the most frequent complaint. It was the angriest one — and the only bucket where nobody had a solution.

What made it worth writing about is that the failures are described so specifically. People do not say “CAPTCHA didn’t work.” They say which service solved it, how long it took, and what was running at the time. That level of detail is missing from every page currently ranking for these terms, and it is the only reason these teardowns are worth reading.

“I think that’s the problem with contact form 7, wp forms, jotform, squarespace, and all others. They all are ok to get setup, some even offering SMTP setup. But none have nailed anti-spam to a science.”
u/kjdscott · web developer / agency · r/Entrepreneur · Sep 2025

Each page below covers how the method works, what it genuinely stops, how it is defeated, when it is still worth using, and what to pair it with. Where a method works, we say so — the OTP verification page concludes that you should go and implement it, and that it is not a thing we are selling you.

The scorecard

Four kinds of unwanted submission, and what each defense does about them. The last column is what the method costs the buyer you actually wanted.

Anti-spam methods compared against four classes of unwanted submission, plus the friction each imposes on real visitors.
MethodScripted botsTargeted automationPaid humansReal people, bad leadsBuyer friction
reCAPTCHA v2YesNoNoNoHigh
reCAPTCHA v3YesNoNoNoNone
hCaptchaYesNoNoNoHigh
TurnstileYesPartlyNoNoLow
HoneypotYesNoNoNoNone
Time-trapsYesNoNoNoNone
Geo-blockingYesNoPartlyNoLow
Rate limitingYesNoNoNoLow
Email verificationYesPartlyNoNoMedium
OTPYesYesPartlyNoHigh
Disposable emailPartlyNoNoPartlyLow
Removing the formYesYesYesYesHigh

Read the bottom row carefully. Removing the form is the only method here that scores yes on every column, and it is on this list because practitioners in our research actually did it. The perfect defense costs you the entire business the form was doing.

The teardowns

  1. Challenge

    reCAPTCHA v2

    The “I’m not a robot” checkbox. Still the default recommendation, still the most-cited failure in our research corpus.

  2. Challenge

    reCAPTCHA v3

    The invisible one. It returns a score, not a decision — and almost every integration throws the score away.

  3. Challenge

    hCaptcha

    The privacy-positioned alternative. The honest reason to choose it is data protection, not protection.

  4. Challenge

    Cloudflare Turnstile

    The best of the challenges, and it is not close — mostly because it asks the visitor for nothing.

  5. Trap

    Honeypot fields

    A field the visitor cannot see and a bot fills in anyway. Free, invisible, and it fails silently in both directions.

  6. Trap

    Time-traps and submit-delay heuristics

    Reject anything filled in faster than a human could. One line for you, one line for them.

  7. Gate

    Geo-blocking

    Refuse traffic from countries you do not sell to. Blunt, effective on volume, and its false positives are your best customers.

  8. Gate

    IP reputation and rate limiting

    Cap submissions per address. It protects your infrastructure reliably and your CRM barely at all.

  9. Filter

    Email verification

    Three different things share this name. Only one of them proves a person exists — and the best of the other two is not an anti-spam tool at all.

  10. Gate

    OTP and SMS verification

    The one that works. It is expensive, it costs completion, and you should probably use it.

  11. Filter

    Disposable-email blocking

    Block the throwaway domains. The list is always behind, and privacy relays look identical to it.

  12. Last resort

    Taking the form down

    The only defense here with a perfect score. It stops one hundred percent of spam and one hundred percent of your leads.

What none of them can tell you

Every method on this page works at the door. CAPTCHAs, honeypots, timing rules, geo-blocks, rate limits, address checks, one-time codes — all of them are attempts to decide whether to accept a submission.

Not one of them tells you what the submissions you accepted turned out to be. Whether they were called. Whether the number was real. Whether anybody bought anything. You can win the entire defensive war and still be unable to answer which of your forms made money, because that question is asked at a different time and no form builder is listening when the answer arrives.

“Cost per lead is amazing. Under $15 per lead. Sales are struggling with the leads.”
u/AfraidGuarantee5858 · B2B agency · r/PPC · Nov 2025

Every one of those people could have passed a CAPTCHA. Several of them would have passed an OTP check. Spam defense and lead quality are adjacent problems that get talked about as one, and conflating them is how a team ends up tuning a challenge for six months while the actual problem sits downstream, unmeasured.

That argument, in full and with the counter-arguments at their strongest, is the dishonest dashboard. The vocabulary is in the glossary, and if you want to put a number on what the junk is costing you, the calculators will do it.