Every public contact form on the internet attracts WordPress form spam eventually — it’s not a matter of if, just when. Left unchecked, that spam clutters your inbox, pollutes your CRM or email list with fake entries, and can even get your domain flagged as suspicious if a plugin auto-forwards submissions. The instinct is to add a CAPTCHA, but the old-school kind (distorted letters, “click all the traffic lights”) is easy for modern bots to solve and hard for real people, especially on mobile. Here’s what actually cuts down spam without making your visitors work for it.
Start with a honeypot field
A honeypot is a form field that’s invisible to real visitors (hidden with CSS, not type="hidden", since bots can spot that trick) but visible to bots that blindly fill in every field they find. If that field has anything in it on submit, you silently discard the entry — no CAPTCHA, no friction, no visible change for actual people.
Add a time check
Bots typically fill out and submit a form in under a second; real people take at least a few seconds to read the fields and type an answer. Recording when the form loaded and comparing it to when it’s submitted catches a large share of automated submissions with zero user-facing changes. This works especially well paired with a honeypot field, since the two catch slightly different categories of bot behavior — one relies on bots filling in fields blindly, the other relies on them submitting unnaturally fast.
Use Akismet
Akismet — the spam filter built by Automattic, the company behind WordPress — isn’t just for comments. Plugins like Contact Form 7 and WPForms both support Akismet integration, which checks each submission against a huge, constantly updated database of known spam patterns. It’s free for personal sites and low-cost for small businesses, and if you already have it protecting your blog comments, turning it on for your forms too is usually just a matter of ticking a box in your form plugin’s settings — often enough on its own to knock out most WordPress form spam with no extra setup.
Filter by content and email domain
Spam submissions often share patterns — a burst of links crammed into the message field, gibberish in the name field, or an email address from a disposable, temporary-inbox provider made specifically for spam and fake signups. Most modern form plugins let you set up keyword blocklists and reject submissions from known disposable-email domains, which catches a category of spam that behavioral checks like a honeypot or time check can miss entirely.
Reach for reCAPTCHA v3 only if you still need it
If honeypot fields and Akismet aren’t enough, Google’s reCAPTCHA v3 runs invisibly in the background and scores each visitor’s behavior instead of asking them to solve a puzzle. It’s a heavier tool — it adds a third-party script, requires a Google account and API keys to set up, and comes with a small amount of Google tracking — so it’s worth reaching for after the lighter options, not instead of them.
Layer a few of these together to stop WordPress form spam for good
No single method blocks everything forever — spammers adapt, and what stops every bot today won’t necessarily stop every bot next year. A honeypot field plus a time check plus Akismet stops the overwhelming majority of spam without a single visible CAPTCHA, and you can always add reCAPTCHA or a content filter later if a specific form starts getting targeted. Start with the lightest options and only add more friction if you’re still seeing spam get through.
Stopping WordPress form spam is one small piece of keeping a WordPress site secure overall. If you’d like a developer to set this up on your forms — or build something custom your current plugin doesn’t support — we’d love to help.
Ready to talk about your site?
Free consultation, no pressure — just a conversation.
Get a Free Quote