Skip to main content
A contractor website analytics view showing 214 visitors and only 3 form submissions, with a flat line of leads under tall bars of traffic

“My form gets 50 spam messages a week.” The spam is a nuisance; the real cost is the homeowner’s message buried in the middle of it, or the homeowner a too-strict filter turned away and you never knew existed. The aim is not zero spam. It is every real lead arriving, with as little junk around it as you can manage.

What you are up against

OWASP, a community-led software security project, catalogs this as automated threat OAT-017, Spamming: “Malicious or questionable information addition to public or private content, or messages,” with “form spam” among its other names. Some of what reaches a contractor’s form is software that finds forms and fills in every field. Some is typed by people, and no bot check stops a person: OWASP notes that visible CAPTCHAs are “outsourced to human solver farms for fractions of a cent per solve.”

One problem is not spam at all. OWASP leaves “the mass abuse of broken form-to-email and form-to-SMS functions, to send messages to unintended recipients” out of the spam category because it is an implementation flaw. If your form can be made to send email to an address the visitor chooses, that is a bug for whoever built the site to fix, not something a filter should be hiding.

Start with checks the homeowner never sees

OWASP’s advice is to layer: “A single control is brittle.” For a contractor’s form, three layers can run without the homeowner seeing any of them.

1. A honeypot field

Add a field that people cannot see and software fills in. OWASP calls honeypots “cheap, effective, and zero impact on legitimate users.” “Bots fill it; humans do not. Reject the submission.” The details matter, because a careless honeypot catches real people. OWASP’s example moves the field off screen, hides it from screen readers, takes it out of the tab order and turns off autocomplete. That last one matters: if a browser’s autofill fills the hidden box for a real homeowner, her message is thrown away, which is why the autofill test below matters.

2. A minimum fill time

Record when the page loaded and compare it with when the form came back. A person typing a name, a phone number and a sentence about a leaking roof takes a while; software posting straight to your form can take no time at all. Keep the threshold short, a few seconds, because autofill makes real people fast too, and treat a too-fast submission as suspicious rather than proof.

3. A rate limit

OWASP calls rate limiting “the foundational control” and says to apply it at more than one level, not just by IP address. On a contact form, a cap on submissions from one address or session in an hour costs a homeowner nothing and stops a script that sends hundreds.

A fourth layer is a content filter: links in the message box, the same text arriving again and again, words that only spam uses. The W3C’s note on CAPTCHA and accessibility says properly tuned spam filters “can achieve results comparable to a traditional visual CAPTCHA, while also removing the added cognitive burden on the user and eliminating access barriers.” The note adds that most major blogging software has spam filtering built in or available as a plug-in, and that many filters can delete messages past a spam threshold and mark questionable ones for a person to review.

When you need more: invisible challenges

If spam still gets through, add a challenge that usually asks nothing of the visitor.

  • Google reCAPTCHA v3 returns a score for each submission: “1.0 is very likely a good interaction, 0.0 is very likely a bot,” and Google says “by default, you can use a threshold of 0.5.” Google’s guidance is to “take action behind the scenes instead of blocking traffic.” Its FAQ says the Enterprise version offers up to 10,000 assessments a month at no cost, and that more than 1,000,000 calls a month requires Enterprise or an approved exception. You may hide the floating badge only if you “include the reCAPTCHA branding visibly in the user flow,” starting with the line “This site is protected by reCAPTCHA.” reCAPTCHA also sets a cookie, which your privacy policy should mention; Does a Small Contractor Website Need a Privacy Policy? covers what goes in it.
  • Cloudflare Turnstile “can be embedded into any website without sending traffic through Cloudflare and works without showing visitors a CAPTCHA.” Its modes are managed, which decides whether to show a checkbox based on the visitor’s risk; non-interactive; and invisible. The free plan allows up to 20 widgets, 10 hostnames per widget and unlimited challenges, and Cloudflare says Turnstile meets WCAG 2.2 AA.

Either one only works if your server checks the result. Cloudflare is blunt about it: “The client-side widget alone does not protect your forms.” Its tokens can be forged if you never verify them, last 300 seconds and work once. Whoever installs it should confirm the form’s back end calls the verification step, and should test what happens when a homeowner takes longer than five minutes to finish typing.

Visible puzzles last, if at all

The picture grids and wavy letters are the one layer that asks real work of every homeowner. OWASP calls visible CAPTCHAs “accessibility-hostile, machine-solvable by ML, and outsourced to human solver farms.” The W3C note says interactive tests inherently exclude many people with disabilities, “resulting in a denial of service to these users.” Your customers include older homeowners and people filling in a form on a phone in a driveway. If you must use one, OWASP says to provide an accessible alternative, such as audio or another way to reach you.

Hold suspicious messages; do not delete them

OWASP’s response advice is “Don’t Always Block”: a graduated response, with suspicious traffic logged and flagged rather than refused. For a contractor that means three outcomes, not two:

  • Clearly fine: delivered to you as a lead.
  • Clearly junk (the honeypot filled): dropped quietly, with a count kept.
  • In between (a low score, a fast fill, a link in the message): saved to a separate folder or label you look through once a week.

The weekly look is quick, and it is how you find out a filter is catching people. One real roof leak in the held folder is worth the other 49 messages.

Test that homeowners still get through

After any change, send yourself real submissions the way customers do:

  • From a phone on cellular data, not your office Wi-Fi.
  • With the phone’s autofill filling the name, phone and address.
  • Slowly: open the form, wait six minutes, then send.
  • With the keyboard only, no mouse, to catch a hidden field or a challenge that traps the tab key.
  • From a privacy-focused browser or a VPN. OWASP warns: “Do not block users solely because their browser is hardened.”
  • And check where the notification email lands. A form that works and an alert that goes to your junk folder lose the lead just the same; Domain Email and Deliverability covers the settings behind that.

Then watch the count. Note how many real form leads you got in the month before the change and the month after. If spam fell and real leads fell with it, the filter is too strict, whatever the spam folder says. Your Answer Rate shows how to log every call and form for a week, and The Website Pages a Contractor Needs covers where the form belongs on the site.

Sources

  1. OAT-017 Spamming, OWASP Automated Threats to Web Applications Project (accessed October 22, 2026)
  2. Bot Management and Anti-Automation Cheat Sheet, OWASP Cheat Sheet Series (accessed October 22, 2026)
  3. Inaccessibility of CAPTCHA (Group Draft Note, 16 December 2021), W3C Accessible Platform Architectures Working Group (accessed October 22, 2026)
  4. reCAPTCHA v3, Google for Developers (accessed October 22, 2026)
  5. reCAPTCHA Frequently Asked Questions, Google for Developers (accessed October 22, 2026)
  6. Cloudflare Turnstile, Cloudflare Docs (accessed October 22, 2026)
  7. Turnstile: Validate the token (server-side validation), Cloudflare Docs (accessed October 22, 2026)
  8. Turnstile plans, Cloudflare Docs (accessed October 22, 2026)

Where this comes from

Written by the team at Tailgate Office, LLC. Every figure comes from the sources listed above, as of the day each was accessed; prices and rules change without warning. Nothing here is legal, tax or financial advice.

Field Notes by email

One email a week with the week's Field Notes. Unsubscribe in one click. We never sell or share your address.

We email you a link to confirm first. What we keep, and for how long.

Keep reading

A contractor website analytics view showing 214 visitors and only 3 form submissions, with a flat line of leads under tall bars of traffic
Websites

An FAQ Page Built From the Questions Customers Really Ask

An FAQ page earns its place when it answers the questions your phone and inbox already get, with numbers and limits. How to collect them, write answers people trust, decide what goes on the service pages instead, and why Google no longer shows FAQ rich results at all.

A contractor website analytics view showing 214 visitors and only 3 form submissions, with a flat line of leads under tall bars of traffic
Websites

AI Overviews and Local Search: What Changes for Contractors

Google's AI summaries cut clicks on some searches, mostly long questions. What the research found, which of a contractor's searches are affected, what Google says to do, and how to see the effect in Search Console.

A contractor website analytics view showing 214 visitors and only 3 form submissions, with a flat line of leads under tall bars of traffic
Websites

Google Profile Photos and Posts: What Is Worth the Time

Google's own ranking tips mention photos and reviews, not posts. Which photos answer a homeowner's questions, Google's file rules, how long a post stays up, why a phone number can get one removed, and a fifteen-minute monthly routine.

The office your truck never had.

Set it up tonight. It quotes tomorrow's leads, and every missed call you log gets answered from one inbox. Free for 30 days, no card required.