Guide
How to tell if your contact form is quietly broken
A broken form and a quiet week produce exactly the same evidence: an empty inbox. That is what makes this failure so expensive — the signal that something is wrong is the absence of a signal, and absence is easy to explain away.
Why you cannot rely on noticing
Enquiry volume is naturally lumpy. Three quiet days in a row is completely normal for most small businesses, so nobody investigates until a fortnight has passed and someone rings to ask why their message was ignored.
By then the trail is cold. If the data never reached the server, there is nothing to go back and recover.
Check 1 — submit it yourself, from outside
Not from the editor, not from a preview, not while logged in as an administrator. Open the live public URL in a private window, on mobile data if you can, and send a real submission.
Logged-in administrators often bypass caching and see markup no visitor is served.
Check: Private window, live URL, real submission. Then confirm it arrived — do not assume.
Check 2 — inspect for fields with no name
Right-click each field, Inspect, and read the name attribute. If any is empty, that field is discarded by the browser and has never once been submitted.
Pay closest attention to email and phone. Those are the fields that make a lead contactable, and a lead you cannot reply to is not a lead.
Check: Any name="" in the form is a field that has never worked.
Check 3 — watch the network request
Devtools, Network tab, submit. You want to see a request go out and come back 200. A 404, 419, 422 or 500 tells you where to look. No request at all means JavaScript failed before it sent anything.
Check 4 — check every template, not just one page
Sites rarely have one form. They have a contact page, a sidebar, a footer, a landing page and a popup, and those are often four different templates that drifted apart over the years.
We swept one client estate and found fourteen broken forms across six sites. Several sites had a working contact page and a broken footer form on every other page.
Check: List every page with a form. Test each one. The one you never test is the one that is broken.
Check 5 — do it again next month
Forms break without anyone touching the form: a plugin updates, a theme changes, a cache rebuilds, a spam key expires, a domain is added. A test proves the form worked at the moment you tested it and says nothing about next Tuesday.
This is the argument for monitoring rather than testing. A check that only runs when you remember to run it is a check that runs least often when you are busiest.
FormHam runs these checks against every page of every site we look after, every night, and tells you the morning a form stops being able to submit — not the fortnight after somebody complains.
Frequently asked
Is there a quick way to check without devtools?
How often do forms break on their own?
What is the most commonly missed fault?
Want us to check it for you?
We will test every form on your site and tell you exactly what we find. If nothing is wrong, we will say so.
Talk to us