How to Stop Spam Submissions in Gravity Forms (2026 Guide)
Gravity Forms is one of the most widely used form builders on WordPress, which also makes it a common target for spam — both automated bot submissions and human-submitted fake leads. If your entries list is filling up with garbage, here’s what’s actually causing it and how to fix it.
Why Gravity Forms gets spammed
Two different things get lumped together as “spam,” and they need different fixes:
- Bot spam — automated scripts that find your form and submit junk at scale, usually with broken or generic content (random characters, promotional links, fake but obviously bot-like emails).
- Human-submitted fake leads — real people filling out your form with fake or low-quality information, often because they’re testing competitor forms, gaming an ad campaign, or just not a genuine prospect. These look legitimate enough to slip past basic bot filters.
Most built-in fixes target the first problem. If you’re seeing the second, you need something different.
Step 1: Turn on the honeypot field
Gravity Forms has a built-in honeypot option. Go to Form Settings → General and enable Anti-spam honeypot. This adds an invisible field that bots fill in automatically but real users never see, since it’s hidden via CSS. Anything that fills it gets silently rejected.
This is free, has zero impact on legitimate users, and should be the first thing you turn on if it isn’t already. It won’t stop more sophisticated bots or human spam, but it clears out the low-effort junk.
Step 2: Add reCAPTCHA or Cloudflare Turnstile
Gravity Forms has a native CAPTCHA field that supports Google reCAPTCHA v2 and v3. Add it via Form Editor → Add Field → CAPTCHA. reCAPTCHA v3 runs invisibly in the background and scores the user’s behavior rather than showing a visible challenge, which keeps friction low.
If you’d rather avoid Google’s tracking, Cloudflare Turnstile is a privacy-friendly alternative that works similarly and integrates with Gravity Forms through a free add-on.
Step 3: Connect Akismet (for basic filtering)
Gravity Forms has an official Akismet integration. If you already use Akismet for comment spam, enabling it for your forms too is a one-click setting under Form Settings → Akismet. It’ll catch some bot-pattern spam but, as with comments, it isn’t built to evaluate whether a human-submitted lead is genuine.
Step 4: Add conditional logic and field validation
Spam submissions often skip subtlety — phone number fields with letters in them, email fields with disposable domains, message fields left blank or filled with the same repeated phrase. Gravity Forms lets you set field-level validation rules (e.g., requiring a phone number format, blocking certain domains) under each field’s Advanced settings. This won’t stop everything, but it raises the bar for low-effort spam.
Step 5: Filter fake leads, not just bots
If you’re running paid ads or B2B lead-gen forms and seeing submissions that pass every check above but are still clearly not real prospects — vague company names, mismatched intent, generic messages — that’s the fake lead problem, and it’s a different layer than bot blocking. This is where AI-based scoring tools like Spamvora come in: instead of pattern-matching for bot signatures, they evaluate the actual content and context of a submission and flag the ones that look like real form fills but aren’t real leads.
Quick checklist
- Honeypot field enabled (free, built-in)
- reCAPTCHA v3 or Turnstile added to the form
- Akismet connected (if already using it elsewhere)
- Field validation tightened on phone/email fields
- Fake lead detection in place if you’re running paid traffic
Bot filters and CAPTCHAs solve the automated-submission problem. If your spam is coming from real people filling out forms with junk information — which is increasingly common with ad-driven lead gen — you’ll need a tool that scores lead quality, not just bot behavior.
Want this handled automatically? Spamvora integrates with Gravity Forms and scores every submission for spam and fake-lead risk in real time — see how it works.