How to prevent spam contact form submissions in WordPress
At WPCentrify, we bring inquiries from connected WordPress sites into one list. This guide explains how to reduce spam at the form and review what gets through.

The short answer
To prevent WordPress contact form spam, combine a honeypot, a supported bot check and targeted filtering. Apply protection to every public form, then test that real inquiries still arrive. Keep suspicious messages available for review where your tools support it, because aggressive filtering can hide genuine leads.
Disclosure: WPCentrify is our product. Facts about other tools come from their own pages, checked 30 October 2026.
Why does your WordPress contact form get spam?
Public forms accept messages without requiring an account. Bots can submit repeated sales pitches, fake inquiries and suspicious links; people can send unwanted messages manually, too. That is why a bot check and a content filter solve different parts of the problem.
Contact form spam in WordPress is also different from genuine notifications landing in junk or a compromised site sending unauthorized mail. Our guide to WordPress spam emails helps you identify which problem needs fixing.
Six ways to stop form spam in WordPress
1. Enable protection on every public form
Check the spam settings for contact, quote, booking and newsletter forms, including forms inside popups. Confirm which controls your plugin supports and whether each is enabled. Installing a form builder or a comment spam plugin does not automatically protect every form.
Start with the controls you already have. Add another plugin when it supplies a specific missing feature, rather than stacking several tools that perform the same check.
2. Add a honeypot to catch simple bots
A honeypot is a hidden field that should stay empty when a person submits a form. A filled field signals possible automation. Use your plugin's supported honeypot feature or a compatible extension, then test it with browser autofill and keyboard navigation.
Some bots avoid hidden fields. Treat the honeypot as an initial layer, and check that it stays hidden without interfering with assistive technology.
3. Configure a supported bot check
Use Cloudflare Turnstile or Google reCAPTCHA through an integration supported by your form plugin. Register the correct website, enter the matching site and secret keys, and test the published page. A bot check added to one form may leave another unprotected.
For custom WordPress forms, ask your developer to verify the complete submission handler. Cloudflare requires server-side token validation; displaying a widget alone does not validate a submission.
4. Filter recurring content without blocking customers
If messages pass the bot check but contain repeated promotions, add content filtering through a compatible service such as Akismet, or use narrow phrase and sender rules. Build rules around patterns you actually receive.
A link, an unfamiliar name or another language is not enough to prove spam. For uncertain messages, favor a reviewable spam folder where available. Check whether a particular control stores rejected entries before relying on recovery. Our guide to stopping contact form spam without losing leads explains why an over-eager filter can cost more than the spam it stops.
5. Limit submission bursts carefully
Ask your host or developer about rate limiting the form submission endpoint if you receive rapid bursts. Allow normal visitors to retry after a mistake, and avoid broad rules that block unrelated site functions.
Use submission speed as one signal. Autofill can make a genuine inquiry fast, and shared IP addresses can represent many visitors. Overly strict time limits or IP blocks can turn customers away.
6. Update forms and restrict file uploads
Keep WordPress, your form plugin and its extensions updated. Back up before changes and send a test inquiry afterward. Remove file uploads if you do not need them; otherwise, allow only the necessary file types and sizes using supported settings. Spam filtering does not replace software maintenance.
How do you reduce Elementor forms spam?
For the Elementor Pro Form widget, edit the form, add an item under Form Fields and select Honeypot as its type. Update the page and test a genuine submission.
For reCAPTCHA, follow Elementor's integration guide. Add the appropriate keys under Elementor > Settings > Integrations and save. Then edit each form and add the corresponding reCAPTCHA field. Entering keys alone does not add that field to every form.
Test the live page on mobile as well as desktop. If legitimate submissions fail, investigate the integration and any script-blocking or optimization settings before making the filter stricter.
Review inquiries across multiple WordPress sites
When you manage multiple WordPress sites, separate submission lists make it harder to notice missed inquiries. WPCentrify's contact form submissions feature collects entries from enabled sites and supports plugins including Contact Form 7, Elementor Forms, WPForms and Gravity Forms.
Its own spam rules set suspicious inquiries aside with an explanation. You can restore an entry with Not spam. Collection is off until you enable it for a website.
WPCentrify filters after submission while your form plugin continues sending its usual notification emails. Keep prevention on the form itself to reduce spam notifications, and use centralized review to organize what gets through.
Check that your protection still lets customers through
After changing WordPress spam protection, test every important form from the public page.
- Submit on desktop and mobile, including over mobile data.
- Try keyboard navigation, autofill and a privacy-focused browser.
- Confirm the success message, stored entry where supported, and notification email.
- Check spam folders regularly and recover legitimate inquiries.
Track genuine inquiries alongside spam counts. Fewer messages are only an improvement if customers can still reach you.
Contact Form 7 settings worth knowing
The questions below cover Contact Form 7 step by step. For Akismet, the form's name and email tags carry the Akismet options. With the default field names they can read:
[text* your-name akismet:author]
[email* your-email akismet:author_email]
Keep your existing field names if they differ, then save the form and send a test inquiry.
Start with the form your customers use most
Enable its supported protection, send a genuine test inquiry and check where the message arrives. Repeat across your other forms, then review the spam rules as patterns change. The goal is fewer unwanted submissions and a reliable way for customers to reach you.
Sources
- Server-side validation, Cloudflare Turnstile
- Form widget, Elementor
- reCAPTCHA integration, Elementor
- Turnstile integration, Contact Form 7
- Save submitted messages with Flamingo, Contact Form 7
- Spam filtering with Akismet, Contact Form 7
- Using the disallowed comment keys, Contact Form 7
- Contact Form 7 honeypot, CF7 Apps
- Antispam Bee, WordPress.org
All sources checked on 30 October 2026.
Questions about WordPress contact form spam
Match the protection to the abuse. Use a honeypot or bot check for automated submissions, content filtering for unwanted pitches, and rate limits for bursts. Apply the controls to every public form and verify that genuine inquiries still arrive.
Use narrow rules and review uncertain messages rather than deleting them automatically. Remember that recovery depends on storage: an entry rejected before it is saved may be unavailable. Test your forms after changes and provide another contact method for visitors who cannot submit.
For Contact Form 7, start with its built-in Turnstile integration for bots, then add Akismet if unwanted promotional messages continue. For comment spam, Antispam Bee is an option, but it does not protect contact forms. For other form builders, choose their documented integrations first.
Your form plugin controls the notification recipient and any stored entries. In Contact Form 7, check the Mail tab's To field. Contact Form 7 does not store messages by default. Install Flamingo to save future messages and view them under Flamingo > Inbound Messages. Other form plugins have their own entry storage settings.
Use its built-in Turnstile integration. Create a Turnstile widget in Cloudflare for your website and select Managed mode. In WordPress, open Contact > Integration > Turnstile > Setup integration, enter the site and secret keys, and save. Contact Form 7 adds the widget automatically; you do not need to paste widget code into every form. Submit a genuine test inquiry afterward.
Install CF7 Apps, the extension previously listed as Contact Form 7 Honeypot. Open Contact > CF7 Apps > Dashboard, enable the Honeypot app and open its settings gear. Enable Honeypot and save the global settings, then check the Forms tab to confirm coverage. For individual settings, edit a form, click Honeypot in the tag generator, configure the field, insert the generated tag and save. Individual settings override global settings. Test autofill before enabling strict timing checks.
Activate Akismet and configure its API key. Then edit the form's name and email tags. For the default field names, the tags can be [text* your-name akismet:author] and [email* your-email akismet:author_email]. Preserve your existing field names if they differ, save the form and test it. Installing Akismet alone does not configure these fields. The integration sends submission data to Akismet for classification, so check that this fits your site's data handling arrangements.
Go to Settings > Discussion > Disallowed Comment Keys, enter the full address on its own line and save. Contact Form 7 treats matching content as spam. Matching is not restricted to the sender field, so avoid broad entries that could appear in genuine messages. This is useful for recurring abuse, but senders can change addresses.
Yes. Use a honeypot and content filtering, or choose a supported alternative such as Turnstile. In Contact Form 7, Turnstile is built in. Choose controls that work with your form plugin and test the experience rather than assuming reCAPTCHA is required.
A successful bot check does not prove a message is useful. People can send spam, and some automation passes checks. First confirm that every live form has the correct integration. If protection works but promotional messages continue, add content filtering instead of only tightening the challenge.
No. SMTP handles outgoing email delivery. It can help deliver genuine notifications, but it does not decide who may submit your form. Reduce junk at the form and submission handler; changing the mail service alone leaves that problem in place.
Related reading
Stop contact form spam without losing leads
Why an over-eager spam filter costs more than spam, and the ten minute test for your own forms.
Read the guideWordPress spam emails, the 3 kinds
Junk submissions, real form emails landing in spam, or a hacked site sending spam: how to tell them apart.
Read the guideEvery inquiry in one list
Contact form submissions from every WordPress site you manage, with a spam filter that keeps what it sets aside.
See the featureMore on this topic: how to spot a broken WordPress contact form and how fast to answer live chat.
See every inquiry from every site in one list
WPCentrify collects contact form submissions from every WordPress site you manage, sets the spam aside with a reason and deletes nothing.
Plan prices to be revealed. Start free on one website today.