If A Web Form Falls in a Forest, Does Anyone See It?
An inquiry form that never arrives is one of the most expensive problems a small business website can have, precisely because it's invisible.
David Mitchell
Editor

A customer finds your business, likes what they see, and fills out the contact form on your website. They type their name, their phone number, a short note about the job they need done, and hit "Send." They assume you got it.
Sometimes you didn't.
The message that never arrives is one of the most expensive and frustrating problems a small business website can have, precisely because it's invisible. You don't get an angry email about the email you never received. The lead just quietly...dies. You don't see it. Your potential customer doesn't hear back. So, that viable customer goes to your competitor. And you never know it existed.
A lot of this comes down to how your form is processed by your website, and most website owners (and some web developers) don't understand hidden webform flaws that strangle your business.
This article walks through how to make your webforms more reliable and durable. We'll also show some ideas about making the forms more intelligent so you have a better idea about the prospect before you call them back.
Why a form service beats sending yourself an email
The simplest way to put a contact form on a website is something called a mailto link or a basic email form. "Mailto" is just the technical name for a link that opens the visitor's own email program with your address already filled in. The slightly more advanced version uses a small script on your website's server to send you an email whenever someone submits the form.
Both approaches lean on email actually working, every single time, with no one watching. That's a bigger assumption than it sounds.
To understand why, it helps to know one piece of plumbing: SMTP. SMTP (Simple Mail Transfer Protocol) is the standard method computers use to hand email off to one another across the internet. When your website tries to email you a form submission, it's using SMTP to do it. And SMTP can fail in ways nobody notices for weeks:
- Your web host changes a setting, and the script that sends the email silently stops working.
- The email gets sent but lands in your spam folder, where you never look.
- Your sending address ends up on a blocklist (sometimes called a blacklist), a shared list that email providers use to identify addresses and domains suspected of sending junk. Once you're on one, services like Gmail and Outlook may quietly reject or bury your messages. A small business can land on a blocklist through no fault of its own, often because of something a previous owner of the web address did, or because the whole shared server it sits on got a bad reputation.
The thread running through all of these is that your contact form becomes a single point of failure. That phrase means exactly what it sounds like: one weak link that, when it breaks, takes the whole thing down with it. If email is the only path your leads travel, then any hiccup in that path loses you business, and you find out long after the fact, if ever.
A form service fixes this by separating two jobs that the old approach jammed together: catching the submission, and notifying you about it.
A form service (Formspark is one example, and we'll look at others later) is a company whose entire job is to receive submissions from your website's form, store them safely, and then tell you about them. The submission gets saved in a dashboard you can log into, so even if the notification email fails, the lead itself is never lost. You can go look at it. Most of these services also let you route notifications to more than one place, such as two email addresses plus a text-message tool, so a single failure doesn't leave you blind. They handle spam filtering, and they keep a permanent record you can search later.
The short version: with a plain email form, a missed email is a missed lead, full stop. With a form service, a missed email is an annoyance, because the lead is sitting safely in a dashboard waiting for you.
What a form can tell you about where a lead came from
Once your form is saving submissions reliably, you can start asking it a more interesting question: where did this person come from before they landed on my site?
There's a useful piece of information for this called the referrer. The referrer is the web address (URL) of the page a visitor was on right before they landed on your site. If someone is reading an article on a local news site, clicks a link to you, and then fills out your form, the referrer would be that article's address. Your form can capture this and record it alongside the submission, so you can see patterns over time: this many leads came from a particular directory, these came from a partner's website, and so on.
It's worth capturing, but it comes with real limits.
The referrer URL is unreliable by nature. It comes up blank in a lot of normal situations: when someone types your address directly, clicks a bookmark, taps a link in a text message or an app, or has privacy settings that strip the information out. So you'll get useful data some of the time and nothing a good portion of the time. That's not a bug in your setup; it's just how the web works now.
You may ask "Why not capture the keyword someone used to find my page?" It's a good question, and the short answer is that you can no longer see the words someone typed into Google to find you never reach your website. This is the big misunderstanding worth clearing up.
Around 2011, Google began encrypting searches for privacy reasons and stopped passing the actual search words along to the websites people clicked through to. So when a visitor finds you through organic search (the unpaid, regular search results, as opposed to ads) and lands on your page, your website learns only that the person came from Google. The specific phrase they searched, "bathtub refinishing near me", never arrives. There's nothing for your form to capture because the information was stripped out by Google.
"But wait just a darn minute," you say, "I CAN see keywords in Google tools like Google Analytics and Google Search Console". Well, you're right and wrong.
- Google Analytics (the current version is called GA4) is a free Google tool that tracks what visitors do on your site once they arrive. It does not receive the search words either. It can show you that traffic came from Google's organic results, but not what was typed.
- Google Search Console (GSC) is a separate free Google tool that reports how your site performs in Google's search results. This one does have real search queries. But its data is aggregated, meaning it's combined into totals across all visitors rather than broken out person by person. Search Console can tell you that the phrase "tile reglazing cost" brought forty clicks to a certain page last month. It cannot tell you that the specific person who filled out your form used that phrase. There is no way to connect an individual submission back to an individual search.
The same limit holds wherever you look. Neither Google Ads nor an advertising platform like Meta, Tiktok, Bing, etc. can hand you the exact phrase that a specific person used to find yor site. That information simply isn't theirs to give anymore.
So the honest picture is this. You can capture where a lead came from in the broad sense (referral URL), sometimes. You cannot capture the search term that brought them. The closest practical move is to look at which page on your site a lead landed on, then open Search Console and see which search phrases tend to drive traffic to that page. It's a population-level clue about intent, not a per-customer fact, but for deciding what content to invest in, it's genuinely useful.
Adding a hidden field to your form to see referral URL
This last section is the one to hand to whoever maintains your website. Capturing the referrer comes down to adding what's called a hidden field: an input on your form that the visitor never sees, which your site fills in automatically with a value you want to record. When the form is submitted, that value rides along with everything else.
The visitor-facing part is identical no matter which form service you use, because it's standard website code. A small piece of script reads the referrer and drops it into the hidden field:
<input type="hidden" name="inbound_referrer" id="inbound_referrer">
<script>
document.getElementById('inbound_referrer').value = document.referrer || '(none)';
</script>
Defaulting the value to "(none)" when there's no referrer is deliberate. It makes a blank result obviously mean "no referrer was available" rather than looking like the field is broken.
The only thing that changes between services is the single web address your form points at, called the action, which is the destination the submission gets sent to. Each service gives you a unique one in your account dashboard.
-
Formspark. Your form's action looks like
https://submit-form.com/your-form-id. Add the hidden field above and the captured referrer shows up with each submission in your dashboard and notification email. One small rule specific to Formspark: don't start a field's name with an underscore, because Formspark reserves those names for its own settings and hides them from view. Use a plain name likeinbound_referrer. -
Formspree. A popular alternative. Your form's action looks like
https://formspree.io/f/your-form-id. The same hidden field works without changes. -
Basin. Another well-regarded option. Your form's action looks like
https://usebasin.com/f/your-form-id. Basin will accept the same hidden field, and it also offers a built-in setting to capture the page address automatically, which can save a step.
All three save every submission in a dashboard, so the reliability benefit from the start of this article applies equally to each. The choice between them usually comes down to pricing tiers and small feature differences rather than anything fundamental.
A couple of caveats to set expectations. The referrer field will be empty for a meaningful share of submissions, for all the reasons covered earlier, and that's normal. And if your form was built with a website tool like Elementor rather than written as plain code, the method of filling the hidden field may differ slightly, so it's worth flagging that to your developer rather than assuming the snippet drops straight in.
Is this thing working?
A contact form is the front door to your small business, and it's worth treating it like one. Route your submissions through a service that saves them, so a single email failure never costs you a lead. Capture the referrer to learn, in broad strokes, where people come from, while keeping clear eyes about the fact that the search terms themselves are gone for good.
None of this requires you to become technical. It requires knowing which questions to ask, and trying Kapient now to detect and fix this and 73 other common, hidden website errors.