Spam protection your visitors never see. No image grids, no “I’m not a robot” checkbox, no puzzles, nothing to click. Your visitors just hit Send — while their browser silently solves a tiny cryptographic challenge (proof-of-work) in a few milliseconds. Real humans never notice. Mass-spam bots eithe
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 4.8 and PHP 7.1.
SourceWordPress plugins · Nov 4, 2026
01 / Source details
Aboutthistool.
Spam protection your visitors never see. No image grids, no “I’m not a robot” checkbox, no puzzles, nothing to click. Your visitors just hit Send — while their browser silently solves a tiny cryptographic challenge (proof-of-work) in a few milliseconds. Real humans never notice. Mass-spam bots either fail the challenge or have to burn so much computing power per message that spamming your site stops being worth it.
Every form, out of the box. WordPress logins, registrations and comments, WooCommerce checkout and reviews, and virtually every form plugin — Contact Form 7, Elementor Pro Forms, WPForms, Gravity Forms, Ninja Forms, Fluent Forms, Formidable and dozens more (full list below). One plugin protects all of them, and the most popular builders are detected and configured automatically on activation.
Truly universal — not a list of integrations
Most anti-spam tools protect only the form plugins they ship an integration for. If your builder is not on their list — or you use a hand-coded form, a theme’s built-in form, or three different builders on one site — you are on your own.
This plugin works differently: it recognizes submissions by their signature — the characteristic fields and actions of the request itself — instead of hooking into specific form plugins. That is why it covers any form:
Popular builders are recognized automatically: their signatures ship with the plugin and are pre-configured on activation.
Everything else — custom-coded forms, exotic builders, legacy themes — you teach the spam check yourself in under a minute: turn on direct analysis mode, submit the form once, click save . Done. No code, no waiting for the developer to add your builder.
And because no integration code is involved, nothing breaks when your form builder updates.
In practice that solves two everyday problems:
Real sites mix. A typical site has comments, a contact form from one builder, a newsletter signup from another, WooCommerce reviews — protecting each with its own anti-spam solution means more plugins, more settings pages, more things that can conflict. Here, one plugin covers the whole site.
Designers and agencies standardize. If you build sites for clients, you can install the same proven plugin on every project — no matter which form stack the client uses (or switches to later). One tool to know, one place to look when something needs attention.
Every CAPTCHA interaction costs you real visitors: an extra click here, an unreadable image there, “select all traffic lights” on a phone screen — and the contact request or sale is gone. This plugin flips the deal: instead of making humans prove themselves, it makes the device pay. The visitor’s browser proves it is a real, JavaScript-running client by doing a moment of invisible computation. Zero friction for people, real costs for bots.
Self-contained and featherweight
Everything runs on your own web server — there is no external service in the loop. That is not just a privacy nicety, it is an operational one:
Nothing external can fail. No third-party API whose outage, rate limit or latency silently breaks your forms. Your spam protection is exactly as available as your site.
Nothing external slows you down. No remote scripts, no extra DNS lookups or connections — your PageSpeed and Core Web Vitals stay untouched.
Tiny footprint. A few kilobytes of JavaScript and lean server code; runs fine on shared hosting, staging environments and even intranets without internet access.
Why not just use …
Google reCAPTCHA, hCaptcha or Turnstile? They require an account and API keys, load scripts from external servers (hello, consent banners) and still challenge real users when in doubt. This plugin needs no keys, loads no third-party scripts and never challenges anyone.
Akismet? Sends the content of every submission to an external service for analysis, and commercial sites need a subscription. Here, everything stays on your own server.
Honeypot fields and time checks? Modern bots skip honeypots routinely, and browser autofill loves to fill them by accident. Proof-of-work attacks the economics of spam instead of playing hide-and-seek.
And they all share one structural limit: they protect the forms they ship an integration for. This plugin protects the forms you actually have (see “Truly universal” above).
Key features
Invisible — zero user interaction, ever
Protects everything : logins, registrations, comments, WooCommerce, every form builder — even hand-coded custom forms
No account, no API keys, no external service for the spam check — install and you are done
Brute-force protection for logins, with optional Fail2Ban log support
Adaptive under-attack mode : the challenge automatically gets harder for everyone while a spam wave is running, and relaxes afterwards
Your choice per site : block spam, deliver it flagged, or just collect it in a spam inbox and watch
Teach it live : unrecognized custom form? Direct analysis mode adds it with one click, straight from the live page
Lightweight : a few KB of JavaScript, no render-blocking, no layout shift
Privacy-friendly by design : no cookies, no sessions, no tracking, no visitor data leaves your server, IP addresses are only stored as hashes — GDPR/DSGVO/RGPD-friendly without a consent banner
Free
Setup Guide
Works with
Pre-configured out of the box — as soon as the plugin is active, these are recognized automatically, no setup:
WordPress: Login, Password Reset, Comments
WooCommerce: Checkout, Login, Password Reset, Product Reviews (the shopping cart is deliberately not checked)
Form and page builders: Contact Form 7, WPForms, Elementor Pro Forms, Ninja Forms, Fluent Forms, Forminator, Gravity Forms, Formidable Forms, Everest Forms, WS Form, SureForms, MetForm, JetFormBuilder, Otter Blocks, Spectra, Kadence Blocks, Essential Blocks, Divi Forms, MW WP Form, Jetpack Forms, Mailchimp for WordPress, MailPoet, WP User Frontend, wpDiscuz, bbPress (topics & replies), Thrive Architect, Thrive Leads, Thrive Apprentice, Thrive Quiz Builder, Thrive Comments, UserFeedback, Popup Maker (subscription form), YITH WooCommerce Wishlist, Newsletter (subscription forms), CoBlocks, Popup Builder, Hustle, MailerLite, Email Subscribers, Quiz and Survey Master, WP-Polls, Form Maker, Gutena Forms, Happyforms, Brevo, Mailchimp List Subscribe, Calculated Fields Form, Crowdsignal Forms (NPS & feedback), Pirate Forms, Hostinger Reach, FormLayer, My Sticky Elements, Cool FormKit, Visual Form Builder, Royal Elementor Addons (forms), Happy Addons (Mailchimp form), Chaty (contact form), Jeg Kit (Mailchimp form), Element Pack Lite (contact form), Depicter (lead forms), Hello Plus (forms), PopupKit (subscription form), Brave Popup Builder (forms), Jetpack CRM (lead forms), Back In Stock Notifier (waitlist form)
Reviews, testimonials and guestbooks: Customer Reviews for WooCommerce, Strong Testimonials, Site Reviews, WP Ultimate Review, WP Customer Reviews, Gwolle Guestbook
Checkout and registration forms (recognised and recorded; blocking them is a separate switch, off by default): BuddyPress (registration), WP-Members (registration), ProfilePress (registration & checkout), Easy Digital Downloads (checkout), CartFlows (checkout login), Amelia (booking), Bookly (booking)
Added in under a minute, without code — switch on direct analysis mode, submit the form once, click save: registration forms (WordPress and WooCommerce), Ultimate Member, BuddyForms, MemberPress, Paid Memberships Pro, CheckoutWC & Flux Checkout, Quform, NEX-Forms, Bit Form, Funnelforms, Mailjet, SiteOrigin Page Builder, weForms, Responsive Contact Form Builder, Smart Forms, Kali Forms, ApplyOnline, FormCraft, CRM Perks Forms, Tripetto, Easy Form Builder, SimpleForm — and any hand-coded or custom form.
One honest limit: a form that is hosted elsewhere and only embedded on your page (Typeform, Jotform, Zoho Forms, HubSpot, OptinMonster and the like) sends its data straight to that service. The submission never reaches WordPress, so no WordPress plugin — this one included — can check it.
See it in action
Screenshots & previews.
Settings at a glance: protection status strip, topic tabs and short explanations with built-in help for every optionThe message inbox: real submissions and spam side by side — open any message to see exactly which fields were submittedDirect analysis mode: teach the spam check a new form with one click, straight from the live pageEvery option explained in place — no documentation hunting
02 / Source details
Gettingstarted.
01Install & activate the plugin via the WordPress Plugins page — protection starts immediately with balanced defaults, and popular form builders are configured automatically
02Watch the short setup video (see above) to understand the message inbox and the analysis modes
03After a few days, check the message inbox: real submissions arrive as messages, spam lands in the spam folder
04Using a custom or exotic form that was not recognized? Turn on direct analysis mode and add it with one click, straight from the live form
05(Optional) Decide how to treat spam: block it, deliver it flagged, or just collect it
03 / Source details
Frequently asked questions.
Does it actually work?
Yes. For the kind of spam that plagues almost every site — automated, mass-sent — the typical experience after activation is that it simply stops: every message now costs the sender real computing power, which breaks the economics of sending thousands of them. That result has held up across years of production use. And the protection is actively maintained: when a new generation of protocol-aware bots learned to reuse a solved challenge across many submissions, version 5.0 closed that route with single-use, signed tokens. For the rare rest — targeted spam written by humans — the flag-and-inbox workflow keeps you in control instead of promising magic.
Will my visitors notice anything?
No. There is nothing to see, click or solve. The proof-of-work starts in the background as soon as the page has loaded and is typically finished within a second or two — long before they hit Send .
Do I need an account or API keys?
No. Unlike reCAPTCHA, hCaptcha or Turnstile the spam protection involves no external service at all — no keys, no registration, no third-party scripts, no rate limits.
Will it slow down my site?
No. The plugin ships a few kilobytes of JavaScript, loads no external resources and causes no layout shift. The computation happens on the visitor’s device in the background; the server-side check is a single fast lookup.
Does it work with caching plugins?
Yes. The challenge token is fetched via Ajax at runtime, so fully cached pages stay protected. One thing to know: right after installing or updating, clear your page cache once so the plugin’s JavaScript is included everywhere.
Which forms are supported?
All public forms — including hand-coded and custom ones. The plugin recognizes submissions by their signature (the request’s characteristic fields and actions) instead of integrating with specific form plugins, so it is not limited to a fixed list. WordPress core, WooCommerce and the several dozen builders listed above come pre-configured; any other form is added without code in under a minute via direct analysis mode: submit it once, click save.
What data is stored? Is it GDPR compliant?
Everything the spam protection touches stays on your server: no cookies, no sessions, no tracking, no external requests. IP addresses are only stored as SHA-256 hashes, and password fields are never stored with saved messages. That means no consent banner is needed for the spam protection — friendly to GDPR (DSGVO, RGPD) and similar privacy laws. The one thing that can leave your server is a message you type yourself when deactivating the plugin — see the next question.
Does the plugin send anything to an external service?
The spam protection: never. There is exactly one exception, and it only happens if you make it happen. When you deactivate the plugin, a box asks what went wrong. If you type something and press Send and deactivate , that text is sent to the plugin author’s server at programmiere.de and kept for 90 days. The plugin’s name and version number travel with it. Nothing else is stored with it — no IP address, no address of your site, no referring page, no browser details, and nothing from your forms. Press Deactivate without sending , or leave the box empty, and nothing at all is transmitted. Full details: https://programmiere.de/GDPRCompliantRecaptcha/
Does it protect WooCommerce?
Yes: checkout, login, registration, password reset, comments and product reviews are covered out of the box.
What spam does it stop — and what not?
Every submission has to pay for itself with a small proof-of-work computation. This makes mass spam economically expensive and silently filters out low-effort bots — the vast majority of spam. Like any anti-spam solution (including CAPTCHAs), it cannot fully prevent targeted, low-volume spam sent by a determined human or a bot that invests real computing power per message; for those rare cases, use the flag-instead-of-block option and the spam inbox to keep an eye on what comes through.
Submissions are incorrectly treated as spam
Right after installation this is usually a caching issue: the proof-of-work JavaScript is not yet included in cached pages. Clear the cache on your webserver (or caching plugin) and in your browser. JavaScript might crash due to an incompatibility with another plugin. Press F12 on the affected page and check the browser console for errors — and please report the issue in the support forum; such reports are usually addressed within a day.
A real message was refused as “Gibberish content”
Since 6.0, gibberish detection is off unless you switch it on for individual fields, so this should no longer happen on its own. If you did switch it on for a field: open the message, look at the reason line — it names the field that triggered it — and use that field’s button to stop checking it. Fields carrying tokens, licence keys or reference numbers are random by design and are not suitable for this check; message and subject fields are.
Neither messages nor spam show up in the inbox
Activate the Analysis mode Submit the affected form and look for the captured entry in the Analytic Box Open the entry and add it to the protection scope If the submission does not appear there either, please post in the support forum
After updating, (almost) every submission is flagged as spam
The protection works by having the visitor’s browser silently solve a small puzzle before a form is submitted. If that puzzle is never solved, a genuine submission looks exactly like a bot, so it gets flagged. Right after an update there are three common reasons for this, all quick to rule out:
01Stale server code / OPcache. The update changed the database schema, but your server may still be running the previous version’s PHP code from its OPcache — the two no longer match. Flush the OPcache (restart PHP-FPM, or use your host’s “Flush OPcache” button), then clear any page/object cache. 5.1 also tries to do this automatically on update, but some hosts still need it done once by hand.
02A cached page serving the old script. If a full-page cache is serving pre-update HTML, browsers load the previous version’s script against the new server. Purge your page cache (and CDN) once after updating.
03A reverse proxy / CDN without Trusted Proxies set. If your site sits behind Cloudflare, a load balancer or similar and the plugin sees the proxy’s IP instead of the visitor’s, the check cannot line up. Set your proxy’s address under Settings → Trusted proxies.
To confirm which one it is: open the affected page, press F12 → Console, and look for a warning from “gdpr-recaptcha”; on the Network tab, check that the get_stamp request returns clean JSON (no PHP notice/HTML before it). Sharing that in the support forum pins it down immediately.
Problems with Borlabs Script Blocker
When you use the Borlabs Script Blocker to scan for JavaScript, the scan does not work properly while this plugin is active. Deactivate this plugin for the scan and reactivate it afterwards.
Still stuck?
Check the browser console (F12) on the problematic page for messages Post in the support forum with as many details as possible — issues are usually fixed quickly If the protection does not work on a specific form, a short note with the form plugin’s name is enough to get it looked at
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati