splitforms.com
← Back to the journal

Best CAPTCHA for Contact Forms (2026): 5 Options Compared

Which CAPTCHA should protect your contact form? Turnstile, hCaptcha, reCAPTCHA, Friendly Captcha and honeypots compared on cost, friction and privacy.

Start free — 500 submissionsSee pricing →No card, no time limit. Pro is $5/mo.
Short answer
For most contact forms the best CAPTCHA is Cloudflare Turnstile: it's free, usually invisible, and verified with one server-side call. Use hCaptcha if you want a reCAPTCHA-style widget with a free plan that lists no evaluation cap, Friendly Captcha for strict EU privacy rules, and start every form with a honeypot and a time check before adding any CAPTCHA. splitforms verifies both Turnstile and reCAPTCHA tokens server-side.
Try it on your own form

Point any HTML form at one endpoint. 500 free submissions — no card, no time limit — and unlimited forms.

Create free account

Copy-paste: HTML contact form with Turnstile

This is a complete contact form with a hidden honeypot and a Cloudflare Turnstile widget. Replace the two placeholder keys and it works on any static site, WordPress Custom HTML block, or site builder that accepts HTML.

<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
  <!-- Honeypot: hidden from people, filled in by simple bots -->
  <input type="text" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">

  <label>Name <input type="text" name="name" required></label>
  <label>Email <input type="email" name="email" required></label>
  <label>Message <textarea name="message" required></textarea></label>

  <div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY"></div>

  <button type="submit">Send</button>
</form>

Paste your Turnstile secret key into the form's security settings in the splitforms dashboard so the token is verified server-side. The widget adds a cf-turnstile-response field to each submission; once it renders reliably, you can also turn on "Require a valid Turnstile token" so direct POSTs without one are dropped.

Want a styled starting point instead? Grab the free HTML contact form template and add the two Turnstile lines above, or follow the step-by-step Turnstile HTML form setup.

Which CAPTCHA is best for a contact form?

OptionCostVisitor experienceBest fitsplitforms support
Cloudflare TurnstileFreeUsually non-interactive; managed mode can request interactionMost contact forms: low friction, one Siteverify callNative verification
hCaptchaFree Basic plan (no published evaluation cap); Pro from $99/month billed annuallyWidget or passive modes, depending on plan and configurationA reCAPTCHA-style widget without GoogleBring your own backend
Google reCAPTCHAFree up to 10,000 assessments a month per organization, then billedv3 is score-based and invisible; v2 shows a checkbox or image puzzleExisting Google Cloud security workflowsToken verification when configured
Friendly CaptchaSee its pricing pageBackground proof-of-work with no image puzzleStrict EU privacy requirementsBring your own backend
Honeypot + server checksFreeNo visible challengeThe first layer on every contact formBuilt in

Prices checked September 27, 2026. Plans change, so confirm on the provider pages listed in the sources section before you commit.

How was this comparison evaluated?

This is a decision guide, not a controlled head-to-head test. We reviewed the providers' official documentation on July 20, 2026, rechecked prices on September 27, 2026, and compared the factors a contact-form owner can verify:

  • User interaction: whether a visitor may have to solve a challenge.
  • Server verification: how the backend validates the browser token.
  • Accessibility: the provider's documented approach and the burden placed on visitors.
  • Privacy: the third party receiving request data and the policies you must review.
  • Operational fit: pricing model, setup work, and native support in your form backend.

There is no honest universal "bot block rate." Results depend on your audience, attack type, challenge settings, and fallback rules. Test with your own traffic and track accepted spam, rejected humans, page performance, and completed forms.

Why is Cloudflare Turnstile the best default?

Cloudflare describes Turnstile as a CAPTCHA alternative that adapts its challenge to the visitor. Its managed, non-interactive, and invisible widget modes all produce a token that must be checked with Cloudflare's Siteverify API. Cloudflare's current free plan includes unlimited challenges, subject to its documented account limits.

In splitforms, add the public widget to the form (as in the copy-paste form above) and save the matching private secret in the form's security settings. Never place the secret in browser HTML. splitforms verifies the token only when that secret is configured.

When does another CAPTCHA fit better?

hCaptcha

hCaptcha supports a browser widget and a server-side Siteverify flow. Its Basic plan is free and its pricing page lists no evaluation cap; Pro costs $99/month billed annually ($139 billed monthly) for 100,000 evaluations a month and adds its passive mode. It is a reasonable choice when you want a familiar widget without Google, but splitforms does not currently verify its tokens for you. Privacy, GDPR and friction are covered in the full hCaptcha vs reCAPTCHA vs Turnstile comparison.

Google reCAPTCHA

reCAPTCHA offers score-based (v3) and challenge-based (v2) products within Google Cloud. Free use covers 10,000 assessments a month per organization, counted across every site and key; past that you need billing enabled. splitforms verifies reCAPTCHA tokens when you save the secret key, but it checks only that the token is valid. A v3 score policy needs your own threshold on your own backend.

Friendly Captcha

Friendly Captcha uses background proof-of-work instead of an image puzzle, which makes it a common pick for strict EU privacy rules. Review its current regional endpoint, browser support, pricing, and server-verification documentation. It is not a native splitforms integration today.

Is a honeypot enough on its own?

A honeypot is an extra field that humans should never see or complete. It catches simple form fillers without adding a visible task. Modern bots can detect or ignore it, so combine it with timing checks, rate limits, content analysis, and a managed challenge when the risk calls for one.

<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />

  <input
    type="text"
    name="botcheck"
    aria-hidden="true"
    tabindex="-1"
    autocomplete="off"
    style="position:absolute;left:-10000px;width:1px;height:1px"
  />

  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Send</button>
</form>

Keep the field out of the keyboard and accessibility trees. Do not use a normal business field name that a password manager may populate.

What should you check for accessibility and privacy?

  • Test the complete form with a keyboard and a screen reader.
  • Provide a usable error message and a retry path when verification fails.
  • Do not silently discard a real lead because a challenge timed out.
  • Load third-party scripts only on pages that need them.
  • Review the provider's current privacy terms, data location, DPA, and consent requirements for your jurisdiction.
  • Measure false rejections on your own traffic instead of copying a vendor or publisher benchmark.

In what order should you add spam protection?

  1. Enable the backend's honeypot, timing, rate-limit, and content controls.
  2. Measure unwanted submissions and investigate which controls caught them.
  3. If abuse remains, add Turnstile and configure its private secret in splitforms.
  4. Test valid, missing, expired, and deliberately invalid tokens before launch.
  5. Recheck completion rate, accessibility, and provider terms after major changes.

Moving off Google specifically? The reCAPTCHA alternatives guide covers the migration options in more depth.

Primary sources

Product details were checked on July 20, 2026; prices were rechecked on September 27, 2026:

Next steps

FAQ

How much do CAPTCHA services cost in 2026?

Cloudflare Turnstile is free. hCaptcha Basic is free, and its pricing page lists no evaluation cap; Pro is $99/month billed annually ($139 billed monthly) and includes 100,000 evaluations a month. reCAPTCHA is free for 10,000 assessments a month per organization, then $8 flat up to 100,000 with billing enabled. Check Friendly Captcha's pricing page for its current plans. Prices checked September 27, 2026.

What is the best CAPTCHA for Contact Form 7?

Recent versions of Contact Form 7 (6.1 and later) include a Cloudflare Turnstile integration under Contact > Integration, where you paste your site and secret keys. It also still supports reCAPTCHA v3, and Akismet catches content spam. For the full setup, see the spam-free WordPress contact form guide, or skip the plugin with a WordPress form without a plugin.

How do I add a CAPTCHA to an HTML contact form?

Load the widget script, place the widget element inside the form, and verify the token on the server with your secret key. With splitforms, paste the Turnstile or reCAPTCHA secret into the form's security settings and the check happens for you; the full copy-paste form is above.

Should I use reCAPTCHA v2 or v3 on a contact form?

v2 (checkbox or image puzzles) adds visible friction. v3 is invisible but returns a score you have to enforce with your own threshold. splitforms checks that the token is valid but does not apply a score threshold, so score rules need your own backend; for most forms, Turnstile avoids the tuning.

Which CAPTCHA is most accessible?

Options with no puzzle to solve, such as Turnstile's managed mode, Friendly Captcha's proof-of-work and honeypots, put no extra burden on users. Image puzzles fail many screen-reader and low-vision users, so always offer a clear error and a way to retry.

Which CAPTCHA should I use on a splitforms contact form?

Start with splitforms' built-in honeypot, timing, rate-limit and spam-scoring checks. If unwanted submissions continue, add Cloudflare Turnstile, or reCAPTCHA if you already use it: splitforms verifies either token server-side once you save the matching secret key.

Is this comparison based on a controlled benchmark?

No. It is a decision guide based on each provider's current documentation and pricing pages and the integration available in splitforms. Bot traffic varies too much by site to publish a universal block rate or conversion figure without a reproducible test.

Can I use a honeypot instead of a CAPTCHA?

A honeypot is a useful low-friction first layer, but it should be combined with rate limits and server-side checks. Add a managed challenge when your form attracts targeted or persistent abuse.

What spam protection does splitforms use?

splitforms combines honeypot and time-to-submit checks with rate limiting and automatic spam scoring of the message content. Turnstile or reCAPTCHA verification can also be enabled when the matching secret is configured.

Does adding a CAPTCHA hurt SEO?

A CAPTCHA is not an automatic search penalty. Its scripts and challenges can still affect page speed, accessibility, and form completion, so load it only where needed and measure the result on your own form.

Does splitforms automatically verify hCaptcha or Friendly Captcha?

No. Those providers require a backend integration that sends their token to the provider's verification endpoint. Do not add only the client-side widget and assume the submission is protected.

Why must CAPTCHA tokens be verified on the server?

The browser widget only produces a token. Your server must send that token and its private secret to the provider's verification endpoint before accepting the submission.

Ready to test a protected form? Create a free splitforms account.

Related articles

More practical guidance from spam & security.

Browse the journal →
Spam & Security

How to stop contact form spam (5 methods compared)

Honeypots, reCAPTCHA, hCaptcha, Cloudflare Turnstile and content scoring compared: what each…

11 min readRead →
Spam & Security

Is a Public Form Access Key Safe? What to Keep Secret

Understand public form keys versus secret API tokens, why CORS is not authentication, and ho…

5 min readRead →
Spam & Security

hCaptcha Pricing (2026): Is hCaptcha Free? Plan Limits

hCaptcha Basic is free (its plans page says up to 10,000 requests/month); Pro is $99–$139/mo…

7 min readRead →

Explore this topic

Start with the overview, then move into focused guides.

OverviewForm Spam Protection — Complete Guide (2026)Start here →GuideWhat Is a Honeypot Field?Read →GuideHoneypot vs reCAPTCHARead →GuideHow to Stop Contact Form SpamRead →GuidehCaptcha vs reCAPTCHARead →ReferenceSpam protection guideOpen →

Building forms with ChatGPT, Claude, Cursor, or v0? Connect the native MCP server and give your agent a production form backend.

Explore the MCP server →

Give your form a production backend.

One endpoint adds delivery, spam filtering, storage, and integrations. Start with 500 free submissions — no card, no time limit.

Create free accountRead the docs →
Secure checkoutSSL encryptionPrivacyProtected
VISAAMERICANEXPRESSstripe