When a contact form fills up with spam messages, real customer inquiries disappear among meaningless advertising copy, piles of foreign-language links, and fake email addresses. There is usually more than one source of the problem: some messages are sent by automated bots and others by people filling out forms manually. This is why blocking WordPress form spam requires several complementary layers rather than a single plugin. Elementor Form, Contact Form 7, and WPForms provide most of these layers internally or through official integrations.
This article covers spam types, invisible honeypot fields, a comparison of reCAPTCHA v3 and Cloudflare Turnstile, Akismet and disallowed word lists for Contact Form 7, server-side rate limiting, and spam’s effect on measurement data, in that order. Form notifications that never arrive are a separate problem, explained in the WordPress contact form not sending email article. Onur Freelance is not an official support channel for WordPress, form plugins, Google, or Cloudflare; the information here is based on the documentation published by these products and situations frequently encountered in practice.
Let us clean up the spam-filled form inbox together
We distinguish which spam arrives through which route by examining the current form settings and submission records. The free initial assessment checks which protection layers are enabled on the form; the scope of any potential work is clarified during the initial consultation.
What is contact form spam, and what types are there?
Contact form spam is the filling of website forms with messages that contain no real inquiry and are usually intended for advertising, fraud, or placing links. Three main types are encountered in practice, and each is caught by a different layer. Correctly diagnosing the type prevents real customers from being blocked by an unnecessarily strict filter.
Automated bot submissions
Bots scan forms across the internet and fill out their fields automatically. Some send requests directly to the server without even running a browser, while others behave like a real browser. Many similar submissions within the same minute, meaningless names, and identical text in every field are typical traces of this type.
Manually submitted spam
Some messages are written individually by real people: SEO offers, sales messages using the “we found an error on your website” template, or suspicious business proposals belong to this group. These submissions can pass through bot-focused layers such as CAPTCHA and honeypots. Content-based filters, word lists, and services such as Akismet are more useful against them.
Link spam
Link spam involves placing many links in the message body; the aim is to collect clicks or direct people to a harmful page. Clicking these links in a form notification email carries a separate security risk. Seeing these messages in the inbox does not mean the website has been hacked; it only shows that the form is not sufficiently protected.
A single plugin or layered protection?
Layered protection delivers better results than relying on a single plugin, because each layer catches a different type of spam and another takes over when one is bypassed. Contact Form 7’s spam filtering with Akismet documentation also recommends using different protection modules together. The difference between common practice and the recommended approach is as follows:
- Common practice: When spam increases, a visible “I am not a robot” checkbox is added to the form, and if that fails, the form is removed entirely.
- Recommended approach: First enable invisible layers (honeypot, invisible verification), then add a content filter and server-side rate limiting; test whether genuine submissions get through after every step.
Although removing the form may appear to solve the spam problem, it also closes the easiest contact route for real customers. For visitors who do not want to call or who write outside business hours, the form is often the only channel. The aim is to place the right filters behind the form rather than close it.
Honeypot fields: Catching bots without burdening visitors
A honeypot is a hidden trap field that real visitors do not see but bots fill out; if this field arrives filled in, the submission is classified as spam and rejected. Because it imposes no additional step on visitors, it is suitable as the first layer of protection. It is also the lowest-cost starting point for Elementor form spam problems.
Elementor’s Form widget help pagespecifically lists Honeypot among the field types. According to the documentation, this hidden field is bait for spam bots: people do not fill it in because they cannot see it, while bots fill it in because they cannot recognize that it is hidden, and submissions containing a value are automatically rejected. Add the field by selecting “Honeypot” as the type when adding a new field in the form editing panel.
WPForms includes similar protection by default. According to WPForms’ spam prevention documentation , the plugin’s “modern anti-spam protection” is based on the honeypot technique, operates in multiple layers, and is enabled by default; JavaScript must be enabled on the website for it to work. The same document also describes a “minimum time to submit” option, which defaults to 2 seconds: forms submitted before that time are rejected. The limitation of a honeypot should also be understood: it does not catch advanced bots that skip hidden fields or manually written spam.
Page contents
reCAPTCHA v3 or Cloudflare Turnstile?
Both perform bot checks in the background, usually without showing visitors a puzzle; the main differences concern the provider, pricing plan, and data processed. Contact Form 7’s documentation recommends Turnstile unless there is a specific reason to use reCAPTCHA. Elementor’s form field types include reCAPTCHA and reCAPTCHA V3.
According to Google’s reCAPTCHA v3 documentation , v3 never interrupts users and returns a score between 0.0 and 1.0 for each interaction; 1.0 most likely indicates a genuine interaction, while 0.0 most likely indicates a bot. The document recommends 0.5 as the default threshold and states that tokens expire after two minutes. In Elementor’s integration settings, this threshold can be changed in the “Score Threshold” field; increase the threshold if bots continue getting through.
Cloudflare’s Turnstile documentationdescribes the tool as a smart alternative to CAPTCHA: it can be added to any website without routing the website’s traffic through Cloudflare, and it aims to avoid showing visual puzzles to visitors. The documentation also emphasizes that the widget alone does not protect the form without server-side validation; when the form plugin’s official integration is used, the plugin handles this validation.
| Criterion | reCAPTCHA v3 | Cloudflare Turnstile |
|---|---|---|
| Visitor experience | Background scoring, no interaction required | Usually puzzle-free, with a short check in managed mode |
| Configuration | Site key, secret key, score threshold | Site key, secret key, widget mode |
| Free usage | Terms of use can change; check the current situation with Google | A free plan is available |
| Form plugin support | Elementor, Contact Form 7, WPForms | Contact Form 7, WPForms |
A note on user experience and KVKK (Turkey’s Personal Data Protection Law)
Both services load from a third-party provider and process some data about the visitor’s browser. Google’s reCAPTCHA FAQ states that a necessary cookie named _GRECAPTCHA is used for risk analysis; if the badge is hidden, information that the page is protected by reCAPTCHA must remain visible. Cloudflare states that Turnstile processes only the data necessary for its security function and does not access form inputs. How these services should be mentioned in the privacy notice and cookie policy should be assessed with legal counsel; this note is not legal advice.
Contact Form 7 spam: Akismet and the disallowed word list
For Contact Form 7 spam, the plugin’s own documentation highlights three approaches: content filtering with Akismet, bot checks with Cloudflare Turnstile, and WordPress’s disallowed word list. The Turnstile integration is enabled by entering the site key and secret key in the plugin’s Integration menu; the other two are described below.
Akismet integration
Akismet is a service provided by Automattic that classifies submitted content as “spam” or “clean”. According to Contact Form 7’s documentation, the Akismet plugin comes with WordPress, but an API key is required; free keys are available for personal blogs, while business and commercial websites are offered paid subscriptions. To activate Akismet in the form, add the options akismet:author, akismet:author_email, and akismet:author_url to the name, email, and website fields respectively. The documentation recommends using as many of these options as possible for more accurate results and explains that the filter can be tested with special values reserved for testing.
Disallowed word list (Disallowed Comment Keys)
Contact Form 7’s disallowed list documentationexplains that the “Disallowed Comment Keys” box on the Settings > Discussion screen in the WordPress dashboard can also be used for forms. Enter one word or IP address per line in the box; messages containing that word or coming from that IP are classified as spam and are not delivered. To see the sender’s IP address, the documentation recommends adding the [_remote_ip] tag to the notification email. Since this list also affects website comments, enter only spam-specific expressions rather than general words.
Additional filters for Elementor Form spam and WPForms
Alongside honeypots and reCAPTCHA, Elementor offers Akismet integration for form spam; WPForms groups country, keyword, and email list filters in the plugin’s own settings. Which features can be enabled depends on the plan and version in use.
According to Elementor’s help page on blocking spam messages, Akismet integration is available in Elementor Pro plans that support form integrations and requires an Akismet account. After setup, an “Akismet Spam Protection” section appears in the form panel; the fields to scan are specified by pasting their shortcodes into this section. The example values in the section do not work automatically; the shortcodes must be entered manually.
WPForms’ spam documentation describes country and keyword filter options under “Spam Protection and Security” in the form builder, as well as creating allowlists and blocklists based on email addresses. According to the same document, Akismet, reCAPTCHA, hCaptcha, and Cloudflare Turnstile integrations are available in all versions, including free WPForms Lite. The option to store submissions marked as spam in the database is also enabled by default; this option is important for recovering genuine inquiries caught by mistake.
Filters enabled but spam still arriving? Let us configure the layers together
Honeypot, invisible verification, and content filtering are enabled in the correct order, and the form is verified with a real test submission after every step. Server-side rate limiting is added if necessary. The scope of the work is clarified after the free initial assessment.
Server-side rate limiting and email field validation
Rate limiting stops large numbers of requests from the same source in a short time before they reach the form plugin; email field validation prevents submissions using malformed or unwanted addresses. Both reduce the load on the plugin layer.
WAF and rate limiting
According to Cloudflare’s rate limiting rules documentation , these rules define a limit for requests matching a particular expression and specify the action to apply when that limit is exceeded. According to the documentation, the free plan allows one rule; it matches a path, counts requests by IP address, and operates over a 10-second period. For example, setting a low limit only for the path receiving form requests slows down a bot making dozens of submissions within seconds. Cloudflare’s other contributions to a website are explained in the what is Cloudflare article, and general hardening steps are covered in the WordPress security guide.
Email fields and form design
Making the form’s email field required and using the email type instead of text eliminates malformed addresses at the browser level. Other adjustments that work in practice include the following:
- Removing the website field: If it is unnecessary for an inquiry, a URL field such as “website address” invites link spam.
- Creating a blocklist: Addresses or domains repeatedly sending spam are added to the WPForms blocklist or Contact Form 7’s word list.
- Validating the phone field: For a local service, refusing nonnumeric characters in the phone field reduces random text entries.
During WordPress form spam prevention, these adjustments do not eliminate spam on their own, but they reduce the number of submissions reaching the filters and make the inbox readable.
How do spam submissions distort GA4 and Google Ads conversion data?
If spam submissions count as form conversions, GA4 reports and Google Ads automated bidding strategies learn from inquiries that are not real. Reports can show “conversions increased” while the number of actual customers remains unchanged.
According to Google Analytics’ enhanced measurement documentation , the form_start event fires on the first interaction with a form in a session, while form_submit fires when the form is submitted. The event definition does not include whether the submission was rejected as spam on the server side. Bots running a browser and manually submitted spam can inflate this event; bots sending requests directly without running a browser may never appear in GA4. Comparing the form plugin’s submission records with GA4 counts reveals this difference.
On the Google Ads side, according to Google’s explanation, Smart Bidding strategies optimize for conversions or conversion value in every auction. If spam is processed as a conversion, the system may consider traffic that brings spam valuable. Counting conversions only on the thank-you page opened after successful submission or on the plugin’s success event is a common way to separate measurement from spam. The setup steps are explained in the Google Ads conversion tracking setup article.
False positive risk: Avoid blocking real customers
Any spam filter can eventually misclassify a genuine inquiry as spam; when tightening filters, keep a record where caught submissions can be reviewed. Contact Form 7’s Akismet documentation explicitly states that automated spam filtering cannot be flawless and that genuine messages can be classified as spam.
The most common causes of false positives in practice are adding words such as “price”, “quote”, or “urgent”, which real customers also use, to the disallowed word list; setting the reCAPTCHA score threshold unnecessarily high; and enabling a country filter for a company that accepts business from abroad. If the Flamingo plugin is installed for Contact Form 7, messages are stored in the database; according to the documentation, marking a message in the spam list as “Not spam” reports that information to Akismet. The option to store spam records in the database in WPForms serves the same purpose. A quick look through the spam folder once a week reveals lost inquiries.
Contact form spam checklist
After protection layers have been configured, verify both that spam has decreased and that genuine submissions arrive without problems. Review this list before considering contact form spam precautions complete:
- An invisible layer has been added to every form on the website (the Honeypot field in Elementor, modern anti-spam in WPForms).
- Only one of reCAPTCHA v3 or Turnstile has been selected, and the keys have been entered in the plugin’s integration screen.
- In Contact Form 7, Akismet options have been added to the name and email fields and tested with test values.
- Only spam-specific expressions have been entered in the disallowed word list.
- Submissions and those caught as spam are being stored in the database.
- Server-side or WAF rate limiting has been considered for the form path.
- GA4 and Google Ads conversions count only successful submissions.
- A real test submission has been made from a different device and browser, and delivery of the notification has been confirmed.
This list should be repeated after plugin or theme updates; key settings being reset or a field disappearing after an update is frequently encountered.
When should you consult a specialist for contact form spam?
Specialist support saves time if spam continues despite enabling the layers, if genuine inquiries are suspected of disappearing, or if advertising conversions are mixed with spam. Configuring server-side rate limiting, WAF rules, and conversion measurement together requires more access and care than form settings. An incorrect rule can stop the form from working entirely.
At Onur Freelance, this work is handled within annual WordPress maintenance and updates : forms are tested after updates, spam protection settings are checked to ensure they remain in place, and the work performed is recorded. Maintenance costs between 500–2,000 TL per month depending on the website’s size and scope; the scope is clarified in the initial consultation. If the form notifications themselves land in the recipient’s spam folder, that is a different issue, explained in the email going to spam guide. No protection method carries a promise to eliminate spam entirely; the aim is to reduce spam to a manageable level and deliver real inquiries reliably.
Keep genuine inquiries out of spam: Let us monitor forms regularly
If spam has just started, the first step is to enable invisible layers and record submissions. If spam has decreased, a maintenance plan can be discussed for regular testing and update monitoring. If the missing layer is still unclear, get in touch through WhatsApp or by phone for a free initial assessment.
Related guides
Frequently asked questions
Why does contact form spam suddenly increase?
Submissions can increase quickly when the form’s address enters bot lists or a new spam campaign begins. If the form has no invisible protection layer, bots can fill every field freely; the first step is adding a honeypot or invisible verification.
Does a honeypot field affect real visitors?
According to Elementor’s documentation, a honeypot is a hidden field; people do not fill it because they cannot see it, and submissions are rejected when a bot fills it. It adds no extra step for visitors, but does not catch advanced bots that skip hidden fields or manually written spam.
What options are available for Elementor form spam?
The Elementor Form widget includes Honeypot, reCAPTCHA, and reCAPTCHA V3 field types. According to Elementor’s documentation, Akismet integration is also available in Pro plans that support form integrations.
How do you block Contact Form 7 spam?
Contact Form 7’s documentation recommends content filtering with Akismet, bot checks with Cloudflare Turnstile, and word or IP blocking with WordPress’s Disallowed Comment Keys list. Using multiple modules together is recommended.
Should you choose reCAPTCHA v3 or Cloudflare Turnstile?
Both usually work without showing visitors a puzzle. Contact Form 7’s documentation recommends Turnstile unless there is a specific reason otherwise; Elementor’s form fields include reCAPTCHA options. The choice depends on the form plugin being used.
Is Akismet free?
According to Contact Form 7’s documentation, free API keys are available for personal blogs, while business and commercial websites are offered paid subscriptions. Current terms should be checked on Akismet’s own website.
Do spam form submissions affect Google Ads?
If spam submissions count as conversions, Smart Bidding strategies learn from inquiries that are not real. Counting a conversion only after successful submission and comparing form records with GA4 data is recommended.
How much do form spam protection and WordPress maintenance cost?
The scope of a one-time adjustment is clarified in the free initial assessment. At Onur Freelance, regular WordPress maintenance costs between 500–2,000 TL per month depending on the website’s scope and includes form tests after updates. Onur Freelance is not an official support channel for WordPress or form plugins.
Call us
Call us for detailed information.
Let us call you!
Share your number and let us call you!
Our other services
- › Corporate web design
- › E-commerce website development
- › SEO optimization
- › WordPress website development
- › Google advertising management
- › WordPress speed optimization
Service areas
- › Web design in Sakarya
- › Web design in Tekirdağ
- › Web design in Bursa
- › Web design in Beşiktaş
- › Web design in Şişli
- › Web design in Tuzla
- › Web design in Ümraniye
- › Web design in Kadıköy
- › Web design in Istanbul
- › Web design in Ankara
- › Web design in Ataşehir
- › Web design in Üsküdar
- › Web design in Kartal
- › Web design in Maltepe
- › Web design in Pendik
- › Web design in Kocaeli
- › Web design in İzmir
- › Web design in Antalya
