← Back to blog

How to stop form spam without annoying your users with captcha

Every website with a public form attracts spam. The knee-jerk reaction is to add a CAPTCHA — make visitors click traffic lights or decipher warped text before they can submit. It works, but it comes at a cost most people underestimate.

This post makes the case for going CAPTCHA-free on most forms. If you want a hands-on walkthrough of every spam protection technique and how to set each one up, read our complete guide to form spam protection.

The real cost of CAPTCHAs

Multiple studies have found that adding a CAPTCHA to a form reduces completions by 10 to 30 percent. That number varies by audience, but the direction is always the same: down.

The reasons stack up:

For a marketing landing page, a 15% drop in form completions translates directly into lost revenue. For a contact form, it means legitimate inquiries that never arrive. Is that trade-off worth it?

What actually works (without annoying anyone)

The majority of form spam comes from dumb bots — scripts that parse raw HTML, find every <input>, and POST data without ever rendering the page. These bots do not execute JavaScript, do not wait, and do not think. Two invisible techniques catch nearly all of them:

Combined, these two techniques block 80-90% of automated spam. They require no user interaction, no external scripts, no privacy trade-offs, and no conversion penalty. FormBlade enables both by default on every form, including the free Personal plan.

When you do need a visible challenge

Invisible techniques have limits. If your form is being targeted by someone using headless browsers (Puppeteer, Playwright) that fully render JavaScript, honeypots alone will not stop them. In that case, you need behavioral verification:

For high-stakes forms or targeted attacks, Pro plans unlock reCAPTCHA v3 (invisible scoring), Cloudflare Turnstile, and GeeTest v4 (behavioral, strong in Asia). See the complete spam protection guide for setup details on each.

Why "reject on failure" is wrong

Most form services reject submissions that fail spam checks. The user sees a generic error, the data is gone, and if it was a false positive — which happens more than you think — you just lost a real lead with no way to recover it.

FormBlade never rejects a submission for failing a spam check. Instead, it accepts the submission and flags it as spam. The submission is stored, hidden from your inbox by default, but always accessible in the Spam tab. You can review flagged submissions, unflag false positives with one click, and see exactly which check triggered the flag (honeypot, JS verification, or CAPTCHA).

For forms where every submission matters — sales inquiries, job applications, support requests — this is the only sane approach.

The bottom line

Most forms do not need a CAPTCHA. Honeypots and JS verification handle the bulk of spam silently. When you do need more, start with hCaptcha or the built-in math challenge before reaching for reCAPTCHA.

The goal is not to build an impenetrable fortress. It is to filter out 95% of junk without making a single real user jump through hoops. That is what invisible spam protection does.

For the full technical breakdown of every technique and plan-specific setup instructions, read the complete guide to form spam protection.

Every FormBlade form comes with invisible spam protection. No CAPTCHAs, no setup, no friction.

Create free account