Running a site
Why your contact form is not working
A form that silently fails costs you customers without telling you. Here is how forms work, why they break, and how to test yours today.
“Why is my contact form not working?” is usually asked after a customer says “I tried to message you through your website”. The painful part is the opposite case: the form fails, nobody tells you, and the enquiries simply never arrive. This note explains how forms work, why they stop, and how to check yours.
How a form delivers a message
There are three common designs, and the right fix depends on which one you have.
- Form to e-mail. The page sends the details to a server, which sends an e-mail to you. This needs a working server, a correct address and a mail service that is not blocked. It is the most common design and has the most ways to fail.
- Form to a stored list or a CRM. The server saves the details and may notify you. Failure can happen at the saving step, at the notification step or both.
- Form that opens another app. The page builds a message and opens WhatsApp or your e-mail program with it filled in, and the visitor presses send. Nothing is stored on a server. The sites I build use this design: the enquiry form opens WhatsApp with the details ready, and nothing is sent until the visitor presses send.
The third design has few failure points, and it also means the site cannot store or e-mail anything for you. Storing or forwarding enquiries is backend work and is agreed in a written proposal; see frontend, backend and what your site needs.
The usual reasons a form fails
- The receiving address changed or never worked. Someone left, the address was mistyped, or the mailbox is full.
- Messages go to spam. Mail sent by a website is often filtered, especially when it appears to come from your own domain without the right settings.
- The mail service stopped. A free plan ran out, a key expired, a limit was reached.
- A plugin or theme update broke the form. Common on sites that depend on many add-ons.
- Spam protection blocks real people. A strict check can reject genuine visitors, especially on phones.
- Validation rejects honest input. For example, a phone field that refuses spaces or a “+91” prefix. See web.dev on form validation.
- The form works on a computer and not on a phone, because a button is covered, a field is hidden or a script fails.
- The success message shows even when sending fails. The visitor believes the message went, and so do you.
A ten-minute test
- Send a test enquiry from a phone, on mobile data, and one from a computer.
- Check where it arrives: inbox, spam, promotions and any other folder.
- Time it. Did it arrive in a minute? An hour? Never?
- Try a plain case and an awkward one: a short message, a long one, a phone number with a country code, a name with an accent.
- Turn off an ad blocker and test again.
- Test the error case: submit with a missing field and read the message.
Do this monthly. A short checklist at launch and after any update is in the launch checklist.
Make failure visible
- Send a copy of every enquiry to a second address, so one mailbox full does not hide everything.
- Make sure the form says clearly what happened, and does not claim success it cannot verify.
- Always show a phone number and a WhatsApp link next to the form. If the form fails, the customer still has a route. See counting enquiries from WhatsApp and phone for how to track them.
Who should fix it
If your site was built by someone else, send them the test results and ask them to explain, in writing, how the form delivers and what changed. If you want monitoring that includes checking the enquiry routes regularly, that is one of the items an optional maintenance and monitoring plan can cover. To talk about your site, message or call Harman with its address; I will say what I see before suggesting anything.