How to reduce contact-form spam without losing genuine inquiries

Start by validating submissions on the server, limiting abusive request volume and checking bot signals. Add message-content filtering when unwanted pitches still reach your inbox. Test new filters in an observation period before automatically blocking messages.

By FormShield · Integration guidance

1. Find where unwanted submissions enter

Identify the endpoint that actually sends email or creates a lead. A check attached only to the visible form cannot prevent a direct request to that endpoint. Validate required fields and message length on the server, and enforce bot-check results there when you use a CAPTCHA provider.

2. Separate volume abuse from unwanted content

Rate limits and bot checks address abusive traffic. Content checks address what someone wrote. A real person can send an irrelevant sales pitch; an automated client can submit a legitimate request. Avoid assuming that every message containing “SEO,” a URL or a price question is spam.

3. Label a sample from your own business

Collect legitimate inquiries and unwanted messages that you have permission to process. Remove unnecessary personal details. Keep purchase questions, short messages, non-native writing and support complaints in the legitimate sample so the evaluation reflects real visitors.

4. Observe first, then decide how to handle failures

During the initial evaluation, compare the filter’s decision with your own labels while preserving normal delivery. FormShield does not provide a built-in observation queue; implement observation and review handling in your application. Decide in advance whether an unavailable check should allow delivery, queue it for review or return an error.

Once you trust the behavior on your own sample, consider blocking clear spam while keeping uncertain messages reviewable. Repeat the evaluation when you change rules, providers or form integrations.

5. Choose the integration that matches your form

For a custom form backend, call the FormShield API before delivering the message. For WordPress, test the pre-release plugin with your installed form plugin. On Webflow, understand the browser helper’s limits before relying on it.

Official references

Cloudflare documents server-side Turnstile validation. Akismet documents its contact-form integrations. These are alternative or complementary tools; inclusion here is not an endorsement or partnership.

Understand FormShield’s decisions and limitations →