Contact form spam comes in two kinds, and most fixes only stop the first.
- Bots find forms and fill in every field: links, gibberish, crypto, the same text on thousands of sites. Cheap checks stop most of them.
- People, or tools that act like them, type a pitch by hand: SEO services, guest posts, a website redesign, "I noticed a few issues with your site". A captcha doesn't stop them, because a person is there to solve it.
1
Stopping bots
A hidden field. Add an input people never see. Bots fill in every field they find; people leave it empty. Drop any submission where it has a value.
HTML<input name="_honey" style="display:none" tabindex="-1" autocomplete="off">
tabindex="-1"keeps it out of keyboard navigation, andautocomplete="off"stops a browser from filling it in for a real visitor. This one field costs your visitors nothing and stops a large share of bot traffic.Checks on what's sent. A message that's mostly links is rarely from a customer. An email address from a throwaway-mail service rarely belongs to someone who wants an answer.
A captcha, if you still need one. A captcha or a challenge like Cloudflare Turnstile stops automated bots that get past the hidden field. It also asks every real visitor to prove themselves, and some give up. Try the cheap checks first.
2
Stopping the hand-typed kind
Nothing about the form tells these apart: a person typed the message, in a real browser, with a real email address. The only way to catch them is to read what they wrote.
- Read the message, not the form. An SEO pitch, a guest-post offer and a crypto scheme each read like what they are. A filter that reads the text catches them; a filter that only checks the form can't.
- Catch the blast. The same pitch is pasted into many sites' forms within hours, under different names. Seen across many forms at once, it stands out.
- Don't reply. An answer tells the sender your form is read, and the next pitch follows.
3
Where spam should go
Not straight to the bin. Every filter makes mistakes, and a real lead can read like a pitch. Spam should go to a folder you can check, with the reason it was caught, for a few weeks.
Not to you either. Spam shouldn't be emailed to you, forwarded to a colleague, posted to Slack or answered. And when the filter gets one wrong, correcting it should be one press.
4
How InboxPanda does it
Every form that posts to InboxPanda gets all of this, on every plan:
- 1
The hidden field. The install code has it, as
_honey. Submissions that fill it in are dropped. - 2
Cheap checks first. Link counts and disposable email domains stop the obvious bots before anything reads them.
- 3
Panda reads the rest. Each message that gets through is read once and labeled. Hand-typed SEO, guest-post and crypto pitches are labeled spam.
- 4
Blasts. The same pitch pasted into many sites' forms at once is caught as a blast.
- 5
Email too. Mail forwarded to your inbox also gets the mail server's own spam scan.
Spam goes to the Spam folder with the reason. It's never emailed to you, sent to Slack or your webhook, forwarded or answered, and it doesn't count toward your monthly messages. Not spam brings a message back and trusts its sender from then on. Spam is deleted after 30 days.
- 1