New Inspiro AI Demo Generator — can't find the perfect demo? Describe your website and AI builds a custom one in about 2 minutes. Learn more →

Knowledge Base

Documentation

Theme Documentation



Plugin Documentation



Resources

WPZOOM Forms Spam Protection Guide

This article refers to WPZOOM Forms

WPZOOM Forms protects your forms in layers: an invisible honeypot on every form, an optional CAPTCHA (Google reCAPTCHA or Cloudflare Turnstile), automatic Akismet filtering, and a Spam folder where suspicious entries wait for review instead of disappearing. This guide explains each layer, how to set it up, and how to deal with spam that still gets through.


Table of Contents

  1. How the layers fit together
  2. Honeypot (on by default)
  3. Google reCAPTCHA
  4. Cloudflare Turnstile
  5. Akismet
  6. CleanTalk and other anti-spam plugins
  7. Reviewing spam submissions
  8. Choosing a setup
  9. Troubleshooting

How the layers fit together

Layer Where Scope What happens to a blocked submission
Honeypot Builder → Settings → Enable spam honeypot field per form (default on) Silently discarded — the bot sees a “success” message, nothing is stored or emailed
reCAPTCHA / Turnstile WPZOOM Forms → Settings → Spam Protection global, one service for all forms Submission is rejected with an error; nothing stored
Akismet automatic when the Akismet plugin is active global Stored with the Spam status, not emailed; you can review and restore
Manual Submissions list per entry Mark as Spam / Not Spam, Delete All Spam

Use the honeypot always, add one CAPTCHA service for bot traffic, and Akismet for human-written spam.


Honeypot (on by default)

Every form created in the 2.0 builder includes a hidden field that visitors never see but bots tend to fill in. It is enabled per form under Settings → Enable spam honeypot field in the builder and needs no configuration.

Honeypot toggle in Form Settings

Leave it on unless you are debugging a submission problem.


Google reCAPTCHA

reCAPTCHA is configured once under WPZOOM Forms → Settings → Spam Protection and applies to every form.

reCAPTCHA selected in Spam Protection

Which type?

  • reCAPTCHA v3 (recommended) — completely invisible; Google scores each submission from 0 (bot) to 1 (human). WPZOOM Forms accepts scores of 0.5 and above; lower scores are rejected. The threshold is fixed.
  • reCAPTCHA v2 — on forms built with the 2.0 builder it shows the “I’m not a robot” checkbox above the Submit button (with an image challenge only when Google is suspicious). Forms created with WPZOOM Forms 1.x and not yet re-saved in the builder use the invisible v2 badge instead — the Badge Location setting (bottom right / bottom left / inline) applies to those.

Step 1 — create the keys

  1. Open the Google reCAPTCHA admin console and sign in.
  2. Label: any name, e.g. your site name.
  3. reCAPTCHA type: choose Score based (v3) for v3, or Challenge (v2) → “I’m not a robot” Checkbox for v2 on 2.0 forms. (For 1.x forms that still use the badge, choose Invisible reCAPTCHA badge.)
  4. Domains: add your domain (and localhost / staging domains if you test there).
  5. Accept the terms and Submit, then copy the Site Key and Secret Key.
Registering a new site in the reCAPTCHA console

Step 2 — enter them in WPZOOM Forms

  1. WPZOOM Forms → Settings → Spam Protection → click the reCAPTCHA card.
  2. Pick the Type (v2 or v3) and paste the keys into the matching fields — v2 keys only work in the v2 fields and v3 keys only in the v3 fields.
  3. Save Settings. The CAPTCHA is now added to all forms automatically.

Cloudflare Turnstile

Turnstile is a privacy-friendly alternative: no cookies, no tracking, and usually no interaction — it runs a quick check and only shows a challenge when needed.

Turnstile selected in Spam Protection

Step 1 — create a widget

  1. Log in to the Cloudflare dashboard and open Turnstile in the sidebar.
  2. Click Add widget, give it a name, add your hostname(s), and choose the Widget ModeManaged (recommended), Non-interactive or Invisible.
  3. Click Create and copy the Site Key and Secret Key.
Add widget
Hostnames
Site and secret keys

Step 2 — enter them in WPZOOM Forms

  1. WPZOOM Forms → Settings → Spam Protection → click the Turnstile card.
  2. Paste the Site Key and Secret Key.
  3. Watch the Widget Preview: it renders the real Turnstile widget for your domain and then verifies the Secret Key with Cloudflare, so you know the keys work before saving.
  4. Save Settings. The widget appears above the Submit button on every form.

The widget’s look (light/dark, size) is controlled by the mode you picked in Cloudflare; the Widget Theme setting applies only to forms created with WPZOOM Forms 1.x.


Akismet

Akismet filters content, so it catches human-written spam that CAPTCHAs let through. WPZOOM Forms integrates automatically:

  1. Install and activate the Akismet Anti-Spam plugin and enter your API key under Settings → Akismet Anti-Spam (free for personal, non-commercial sites).
  2. The Spam Protection tab shows the Akismet box as Active. Nothing else to configure.
  3. Each submission is sent to Akismet for analysis (name, email, website, message, IP, user agent, referrer). Spam is stored with the Spam status and is not emailed to you.
  4. In Submissions, Mark as Not Spam restores a false positive and reports it to Akismet; Mark as Spam on a missed one reports it too — so Akismet learns your site’s traffic.

CleanTalk and other anti-spam plugins

CleanTalk Anti-Spam has a direct integration with WPZOOM Forms (since July 2025): install it, enter your CleanTalk access key and make sure Contact Forms protection is enabled in its settings. It checks submissions invisibly against CleanTalk’s database and works alongside the honeypot, a CAPTCHA and Akismet. Other anti-spam plugins that hook into generic form submissions may work as well, but are not tested by WPZOOM.


Reviewing spam submissions

Anything Akismet flags (or you mark) sits in WPZOOM Forms → Submissions → Spam:

Spam view with Delete All Spam
  • Check it occasionally for false positives — real messages from new customers sometimes trip Akismet. Mark as Not Spam restores them.
  • Delete All Spam clears the folder permanently (asks for confirmation).
  • Spam entries don’t count towards a form’s Responses.

Details in Managing Form Submissions.


Choosing a setup

Situation Suggested setup
Most sites Honeypot + reCAPTCHA v3 or Turnstile + Akismet
Privacy-sensitive / EU audience Honeypot + Turnstile (no cookies, no tracking) + Akismet
Heavy targeted spam Honeypot + reCAPTCHA v2 checkbox (forces interaction) + Akismet, review Spam weekly
Intranet / low traffic Honeypot only

All CAPTCHA scripts load only where a form is rendered (or everywhere if Load assets on all pages is on); Akismet checks run server-side, so none of this slows pages without forms.

Privacy: reCAPTCHA sends behavioural data to Google and Turnstile to Cloudflare; Akismet and CleanTalk receive the submitted content. Mention the services you use in your privacy policy. Keys are stored in your WordPress database like other plugin settings — don’t share exports of your options table.


Troubleshooting

The CAPTCHA widget doesn’t show up – Keys pasted into the wrong fields (v2 vs v3), or a domain missing in the Google/Cloudflare console. – The page is built with a page builder/widget and the plugin’s scripts aren’t loaded — turn on Settings → General → Load assets on all pages. – A caching or JavaScript-optimisation plugin delays the script; exclude recaptcha/api.js / challenges.cloudflare.com from deferral, and clear caches. – Check the browser console for errors.

“ERROR for site owner: Invalid key type” on the widget The reCAPTCHA v2 keys were created as Invisible; 2.0 forms need “I’m not a robot” Checkbox keys (see Step 1). Create a new key pair of the right type.

Real visitors are rejected (false positives) – reCAPTCHA v3 scores under 0.5 are rejected and the threshold can’t be changed — switch to Turnstile or v2 if your audience (VPNs, privacy browsers) scores low. – Check the Spam view: if entries land there, it’s Akismet, not the CAPTCHA — restore them with Mark as Not Spam so Akismet learns.

The form doesn’t submit at all after enabling protection – Verify the Secret Key; for Turnstile use the Widget Preview on the settings page, which tells you whether the secret is accepted. – Your server must be able to reach www.google.com / challenges.cloudflare.com (outbound connections, cURL). System Status (PRO) shows whether cURL is enabled. – Temporarily select None, save, and test — this isolates the CAPTCHA from other causes.

Using two services at once Only one CAPTCHA service can be active. Akismet, CleanTalk and the honeypot always work in addition to it.


What’s Next?

Last updated on August 23, 2026