DadsFam AntiSpam blocks spam on contact forms, comment forms, user registrations, logins and WooCommerce checkout — without making real visitors solve puzzles, and built so that a real person is never turned away by a guess.
Everything described below works on every site. Nothing is capped, blurred, disabled or time-limited.
A spam filter that blocks one real customer has cost more than all the spam it stopped. So:
Contact Form 7, WPForms, Ninja Forms, Gravity Forms, Fluent Forms, Pagelayer, WooCommerce, WordPress comments, and WordPress login, registration and lost-password forms. Custom and theme contact forms that have no dedicated integration are protected on the server by the generic form guard, including reCAPTCHA v3 verification.
Declared compatible with WooCommerce High-Performance Order Storage and Cart & Checkout Blocks.
The visitor’s address is taken from the network connection, which cannot be forged. If your site sits behind Cloudflare, a load balancer or a reverse proxy, switch on “This site is behind a proxy” in Settings and choose which forwarded header to trust.
Cloudflare is recognised automatically. When a request arrives from one of Cloudflare’s published addresses, the real visitor address is read from the header Cloudflare adds — even with the proxy setting off — so a site behind Cloudflare can never mistake every visitor for Cloudflare itself.
This matters: a plugin that trusts a forwarded header by default can be defeated by anyone who sends a made-up one, which would let a blocked address straight through and reset its rate-limit allowance on every request.
Out of the box no data is sent anywhere: there are no external calls, no tracking and no accounts. The spam log lives in your own database, and if you would rather not store email addresses, names or page URLs at all, switch off “Store submission details” and only the reason and timestamp are kept. The Spam Brain stores one-way hashes of words, never the message itself. The Autopilot keeps the address ranges of the attackers it blocks, and only one-way hashes of the networks your real visitors use — never a customer’s address. It makes no outside connections.
When “Never lose a real message” holds a message that reads like a real person, a copy is emailed to your site’s own admin address through your site’s normal email — the same way your contact form would have sent it.
Some optional features, each off by default, make outbound connections. They are described in full under External services below. In short: the threat feeds download public lists to your server on a schedule and send nothing about visitors; the StopForumSpam live lookup sends the visitor’s IP address and email address to StopForumSpam; the optional CAPTCHA (Cloudflare Turnstile, hCaptcha or Google reCAPTCHA — whichever you choose) loads that provider’s script in the visitor’s browser and sends the resulting token, your secret key and the visitor’s IP address to the same provider; and the AI second opinion sends only borderline messages — the message and its subject, the kind of form, the sender’s email domain and your site’s name, tagline and web address, never the visitor’s IP address or name — through WordPress’s AI Client to the AI service you connected under Settings Connectors.
Right, let me be straight with you, because I hate being sold to as much as you do.
Everything above is free and it stays free. The honeypot, the time check, the blocklists, the public spam lists, the Spam Brain, the Autopilot, the AI second opinion, never losing a real message, the spam log, the self-repair and the remote control — none of those are premium features. Those are the things a spam plugin should just do, and if I put them behind a paywall I would be taking the mickey.
There is a PRO add-on. It exists because I am a dad in Cape Town, and this is one of the things that puts food on the table at my house. That is the honest reason. Not “unlock your potential”, not “supercharge your workflow”. Just: if this plugin kept the junk out of your inbox and you can spare it, PRO helps me keep building.
What PRO adds is for people who run more than one site or want a bit more reach: DadsFam Shield, where spam caught on one of your PRO sites is blocked on all of them and their Brains share what they learn, DNSBL reputation checks, country blocking for your forms, and a digest email of what was stopped. That is extra reach and convenience. It is not the plugin working properly, because the plugin already works properly.
So if the free one does everything you need, brilliant. Genuinely. Use it, and I hope your spam log stays boring. If you get to the point where your sites helping each other would save you time, PRO is at plugins.dadsfam.co.za.
Either way, thanks for using something I built. — Zak, DadsFam
Out of the box this plugin connects to nothing. Each service below is optional, switched off by default, and used only after you switch it on in Anti-Spam Settings.
What it is: a blocklist service, the way Akismet is an anti-spam service. Spamhaus, StopForumSpam and other volunteer projects publish the internet addresses that are sending spam and running attacks right now. The lists change several times a day, so they cannot be shipped inside the plugin; the FireHOL project collects them and keeps them current on GitHub. Your server downloads the lists and checks visitors against its own copy.
Setting: Anti-Spam Settings Threat intelligence Public spam lists, “Check visitors against the lists below”.
Server: raw.githubusercontent.com (GitHub). Each list is one file under https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/ — spamhaus_drop.netset and spamhaus_edrop.netset (Spamhaus DROP and EDROP), stopforumspam_toxic.netset and stopforumspam_7d.ipset (StopForumSpam), tor_exits.ipset (Tor exit nodes) and, only if you tick them, botscout_30d.ipset, firehol_webclient.netset, firehol_abusers_1d.netset and firehol_level1.netset.
Account: none — no sign-up and no key.
When: once a day, once about 20 seconds after you switch it on, when you press “Update now”, and when the daily self-check finds the lists more than three days old. Never while a visitor waits.
What is sent: a plain download request whose User-Agent names this plugin and its version. Nothing about your visitors, your site or your settings. Visitors are checked against the downloaded copy, on your own server.
Terms: GitHub Terms of Service https://docs.github.com/site-policy/github-terms/github-terms-of-service — GitHub Privacy Statement https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement — FireHOL https://iplists.firehol.org/ — Spamhaus DROP https://www.spamhaus.org/drop/ — StopForumSpam https://www.stopforumspam.com/ — BotScout https://botscout.com/
What it is: the open disposable-email-domains project’s list of thousands of temporary and ten-minute email services. New ones appear every week, so the list is fetched rather than shipped; it extends the short list built into the plugin.
Setting: “Throwaway email domains”, one of the public spam lists above.
Server: raw.githubusercontent.com (GitHub) — https://raw.githubusercontent.com/disposable-email-domains/disposable-email-domains/main/disposable_email_blocklist.conf
Account: none.
When: together with the public spam lists above.
What is sent: the same plain download request, nothing else. Email addresses typed into your forms are checked against the downloaded list on your own server and are never sent anywhere.
Terms: the project and its licence https://github.com/disposable-email-domains/disposable-email-domains — GitHub Terms of Service and Privacy Statement as above.
What it is: StopForumSpam’s database of addresses and email accounts reported for spamming, fed by thousands of sites.
Setting: Threat intelligence “Look visitors up on StopForumSpam”.
Server: https://api.stopforumspam.org/api
Account: none.
When and what is sent: each form submission, registration or comment from a visitor who is not on your whitelist sends the visitor’s IP address and the submitted email address, and receives back whether each has been reported as a spammer and with what confidence. Answers are cached for six hours, so each visitor is looked up once. If the service is slow or unreachable the visitor is let through.
Terms and privacy: https://www.stopforumspam.com/legal
Setting: “Use a CAPTCHA”, then “Which service”. Only the one service you choose is used, and only on the forms you tick.
Account: a free account with that service, for the site key and secret key you paste into Settings.
When and what is sent: the visitor’s browser loads that service’s script on the forms you ticked, and your server sends …