Back to Blog
Dec 20, 2025 12 min read FormShield Team

WordPress Contact Form Spam: Complete Prevention Guide

Stop spam from flooding your WordPress forms. Covers Contact Form 7, WPForms, Gravity Forms, and why plugins alone aren't enough.

wordpress spam protection contact forms plugins
Hand-drawn illustration of WordPress forms being protected from spam bots

WordPress powers about 43% of the web. That’s a lot of contact forms. And spammers know it.

According to OOPSpam’s 2024 Spam Report, 69% of all spam targets WordPress sites. Contact Form 7 leads as the most spammed form plugin, followed by WPForms and Elementor Forms. If you run a WordPress site with a contact form, you’re a target.

The good news? You can fight back. This guide covers the spam prevention features in the three most popular form plugins, the best anti-spam plugins to add on top, and why you might want to go beyond plugins entirely.

Why WordPress Forms Attract So Much Spam

Three reasons make WordPress forms irresistible to spammers:

Market share. With 43% of all websites, WordPress offers the biggest attack surface. Spammers can write one script that works across millions of sites using the same form plugins.

Predictable structures. Contact Form 7, WPForms, and Gravity Forms all have documented form field names and submission endpoints. A bot designed for CF7 can spam thousands of sites without modification.

Default configurations. Many site owners install a form plugin and never touch the anti-spam settings. The default setup for most plugins is permissive enough to let basic bots through.

Spam bots crawl the web constantly. When they find a form, they test it. No CAPTCHA? No honeypot? They flag it and hit it repeatedly. WPForms estimates that an unprotected form can receive hundreds of spam submissions per day.

The motivation varies. Some bots push links for SEO manipulation. Others advertise sketchy products. Some probe for vulnerabilities. And increasingly, spam is a vector for phishing attempts and malware links.

Contact Form 7 Spam Protection

Contact Form 7 (CF7) is the most popular WordPress form plugin with over 5 million active installations. It’s also the most spammed, largely because of its popularity and because many users don’t enable its built-in protections.

Built-in Options

CF7 includes several anti-spam modules you should enable:

Akismet integration. If you have Akismet installed (it comes bundled with WordPress), you can connect it to CF7 by adding special options to your form fields:

[text* your-name akismet:author]
[email* your-email akismet:author_email]
[url your-website akismet:author_url]

These tags tell Akismet which fields to check. The more fields you tag, the more accurate the filtering. Contact Form 7’s documentation explains that Akismet learns from reports across all its users, so it catches spam patterns quickly.

Cloudflare Turnstile. CF7 now supports Turnstile as a CAPTCHA alternative. Unlike reCAPTCHA, Turnstile often runs invisibly without requiring user interaction. You add a Turnstile field to your form and configure the integration under Contact > Integration.

Disallowed list. WordPress includes a comment blocklist under Settings > Discussion. CF7 respects this list. Add known spam IPs, email addresses, or keywords to block them site-wide.

What’s Missing

CF7 doesn’t include a honeypot field by default. You’ll need a separate plugin like Honeypot for Contact Form 7 to add one.

There’s also no built-in submission time check. Bots fill forms instantly while humans take time to read and type. Without timing analysis, CF7 can’t distinguish between them.

  1. Install and configure Akismet with API key
  2. Add akismet:author and akismet:author_email tags to relevant fields
  3. Enable Cloudflare Turnstile or reCAPTCHA v3
  4. Add the Honeypot plugin
  5. Consider Flamingo to store submissions and mark spam manually

This layered approach catches most spam, but it requires managing multiple plugins and configurations.

WPForms Anti-Spam Features

WPForms takes a different approach than CF7. They’ve moved beyond traditional honeypots entirely.

Modern Anti-Spam Token

WPForms replaced their honeypot with a token-based system in recent versions. Here’s why: honeypots have become too easy to bypass. Modern bots can detect hidden fields and skip them.

The new system generates a unique anti-spam token for each form submission. It’s invisible to users and bots alike, but bots can’t interact with it properly. The result is a higher catch rate than honeypots with zero user friction.

You’ll find this under Settings > Spam Protection and Security in the form builder. The “Enable modern anti-spam protection” toggle should be on by default.

CAPTCHA Options

WPForms supports multiple CAPTCHA services:

  • Google reCAPTCHA v2/v3 - The checkbox or invisible version
  • hCaptcha - A privacy-focused alternative
  • Cloudflare Turnstile - Often runs invisibly

All three are available in WPForms Lite (the free version). You configure them under WPForms > Settings > CAPTCHA.

Country and Keyword Filtering

WPForms Pro includes advanced filtering:

Country filter. If your business only operates in certain regions, you can block or allow specific countries. Spam often originates from countries where you have no customers.

Keyword filter. Block submissions containing specific words. Common spam phrases like “click here,” “crypto,” or “SEO services” can trigger automatic rejection.

These filters live in Settings > Spam Protection and Security within each form’s settings.

Rate Limiting

You can limit how many times a user can submit a form. One submission per hour, for example. This prevents repeat spam attacks from the same IP or browser session.

  1. Ensure modern anti-spam protection is enabled
  2. Add Cloudflare Turnstile (less intrusive than reCAPTCHA)
  3. Enable country filtering if your audience is regional
  4. Set up keyword filtering for obvious spam phrases
  5. Configure rate limiting to prevent repeat submissions

Gravity Forms Spam Prevention

Gravity Forms positions itself as the premium option, and its anti-spam features reflect that.

Built-in Honeypot

Unlike WPForms, Gravity Forms still includes a honeypot option. You enable it in Form Settings > Form Options > Anti-spam honeypot.

The honeypot uses multiple detection techniques, not just a hidden field. This makes it harder for bots to bypass than a simple CSS-hidden input.

reCAPTCHA and Turnstile

Gravity Forms supports both Google reCAPTCHA and Cloudflare Turnstile natively. Configuration happens under Forms > Settings > reCAPTCHA (or Cloudflare Turnstile).

The reCAPTCHA integration stores the spam score with each entry. You can set a threshold, and entries below it automatically go to spam. This gives you visibility into why entries were flagged.

Zero Spam Add-on

The Gravity Forms Zero Spam add-on enhances the built-in honeypot with additional anti-spam measures. It works alongside other protections and requires no configuration. Just install and activate.

Conditional Logic

Gravity Forms lets you add conditional logic to your submit button. For example, you can add a simple question like “What is 2 + 3?” and only show the submit button when answered correctly.

This stops basic bots but won’t fool human spammers or sophisticated automation.

Entry Moderation

The Moderation Add-on holds entries in a pending state until you approve them. Combined with notifications, this gives you manual review capability for borderline cases.

  1. Enable the anti-spam honeypot
  2. Install the Zero Spam add-on
  3. Configure Cloudflare Turnstile
  4. Set up conditional logic for an additional verification step
  5. Consider entry moderation for high-stakes forms

Best Anti-Spam Plugins for WordPress

Beyond the built-in options, several plugins specialize in spam prevention.

Akismet

The most established anti-spam solution for WordPress. Akismet maintains a massive spam database and checks submissions against known patterns. It learns from reports across millions of sites.

Pros: High accuracy, learns over time, works with most form plugins Cons: Requires API key, free tier limited to personal sites, can have false positives

Akismet costs $8.33/month for commercial use. It integrates with CF7, Gravity Forms, WPForms, and Formidable Forms.

CleanTalk

A cloud-based anti-spam service that checks submissions against a global blocklist. At $12/year for unlimited checks, it’s the budget option.

Pros: Cheap, no CAPTCHAs, works site-wide Cons: Higher false positive rates reported by some users

WP Armour

A honeypot plugin that works across multiple form plugins. It adds enhanced honeypot protection with JavaScript-based detection.

Pros: Free, works with most form plugins, no user friction Cons: Honeypot approach can be bypassed by sophisticated bots

AntiSpam Bee

A free, privacy-focused anti-spam plugin for comments that some users extend to forms. It uses multiple detection methods without sending data to external services.

Pros: Free, no external API calls, GDPR-friendly Cons: Primarily designed for comments, less effective for form spam

Why Plugins Aren’t Enough

Here’s the uncomfortable truth: plugin-based spam protection has limits.

Honeypots are outdated. Modern bots use browser automation to interact with forms like humans do. They can detect hidden fields and skip them. WPForms discontinued their honeypot for this reason.

CAPTCHAs get solved. Services like 2Captcha charge $2-3 per 1,000 solutions. For a spammer sending thousands of submissions, that’s pocket change. The CAPTCHA only stops automated attacks, not motivated humans.

Static rules fail. Keyword filters and country blocks are easy to circumvent. Spammers adjust their content and use proxies or VPNs to appear from different locations.

No content intelligence. Plugin-based solutions rarely analyze the actual message content. A submission that passes the CAPTCHA and honeypot still gets through even if the message is obvious spam.

No IP intelligence. Most plugins don’t check if the submission comes from a datacenter, VPN, or known malicious IP range. These signals are strong spam indicators that plugins ignore.

Fragmented data. Each WordPress site fights spam alone. There’s no shared intelligence about new spam patterns or emerging threats.

Beyond Plugins: API-Based Protection

This is where API-based spam detection changes the game.

Instead of relying on local rules and plugin logic, an API-based approach sends submission data to a specialized service that combines multiple detection signals:

IP intelligence. Check if the IP belongs to a datacenter, VPN, or proxy network. Legitimate users typically don’t submit forms through AWS or Google Cloud.

Email validation. Verify the email domain exists, check for disposable email providers (tempmail.com, guerrillamail.com), and assess domain reputation.

Content analysis. Use machine learning to detect spam language patterns, promotional content, and suspicious phrases that static keyword filters miss.

Behavioral signals. Analyze submission timing (did the form load 2 seconds ago?), interaction patterns, and other signals that distinguish humans from bots.

Shared intelligence. Every submission across all customers improves detection. A new spam pattern detected on one site immediately protects all others.

How FormShield Works

FormShield provides exactly this kind of API-based protection. One endpoint receives your form data and returns a spam score with detailed breakdown:

{
  "verdict": "spam",
  "score": 7.8,
  "action": "block",
  "signals": {
    "ip": { "vpn": true, "datacenter": false, "threat_score": 72 },
    "email": { "disposable": true, "mx_valid": false },
    "content": { "spam_score": 0.85, "promotional": true },
    "behavioral": { "time_to_submit": 1.4 }
  },
  "ruleMatches": ["disposable_email", "vpn_ip", "fast_submission"]
}

You see exactly why something was flagged. No black box decisions.

For WordPress specifically, you can integrate FormShield at the server level using a custom plugin or by processing submissions through a middleman endpoint. The form submits to your server, your server calls FormShield, and you decide what to do based on the result.

This approach works regardless of which form plugin you use. Contact Form 7, WPForms, Gravity Forms, or a custom form - they all benefit from the same intelligence layer.

When to Use API-Based Protection

Plugin-based solutions work fine for low-traffic sites with occasional spam. But consider API-based protection when:

  • You receive hundreds of submissions per day
  • False positives cost you leads or revenue
  • Spammers actively target your forms
  • You need audit trails showing why submissions were blocked
  • You’re running multiple sites and want unified protection

The cost-benefit shifts as spam volume increases. At 50 spam submissions per day, manually reviewing them costs hours of staff time. An API that catches 95% of them pays for itself quickly.

Practical Recommendations

Here’s how to approach WordPress form spam based on your situation:

Low-Traffic Personal Site

  1. Enable your form plugin’s built-in anti-spam features
  2. Add Akismet (free for personal use)
  3. Consider Cloudflare Turnstile as a lightweight CAPTCHA

Business Site with Moderate Traffic

  1. Use WPForms or Gravity Forms with all anti-spam features enabled
  2. Add Turnstile for CAPTCHA protection
  3. Configure keyword and country filtering
  4. Enable rate limiting
  5. Monitor submission patterns and adjust filters

High-Traffic or Targeted Site

  1. Start with the business setup above
  2. Add an API-based solution like FormShield
  3. Implement review queues for borderline submissions
  4. Log all spam for pattern analysis
  5. Regularly update filters based on new attack patterns

Multi-Site Deployment

  1. Standardize on one form plugin across sites
  2. Use API-based protection for unified intelligence
  3. Share blocklists across sites
  4. Centralize monitoring and response

The Silent Failure Strategy

One tactical note: don’t tell spammers when they’re blocked.

When you detect spam, return a fake success message. The spammer thinks their submission went through and moves on. If you return an error, they’ll adjust their approach and try again.

Both FormShield and most modern spam solutions support this pattern. The form appears to submit successfully, but the data never reaches your inbox.

Conclusion

WordPress form spam isn’t going away. The platform’s popularity makes it a permanent target, and spam techniques keep evolving.

The good news is that layered defense works. Start with your form plugin’s built-in features. Add Akismet or similar for pattern-based filtering. Use Turnstile for lightweight CAPTCHA protection. And when spam volumes justify it, add API-based intelligence that combines IP reputation, email validation, content analysis, and behavioral signals.

No single approach stops everything. But multiple layers make spam economically unfeasible for attackers while keeping legitimate submissions flowing.

FormShield provides the API layer that WordPress plugins can’t match - real-time IP intelligence, disposable email detection, AI content analysis, and shared spam intelligence across all customers. Check out how it works or sign up free to start protecting your forms.

Stop fighting spam by hand

One API call. IP, email, content & behavior signals in a single intelligence platform. Start free, no credit card required.