Website contact form not sending emails? The failures nobody reports to you
When a website breaks, it usually doesn't announce it. There's no alert, no red banner, no email telling you something has gone wrong. The site still loads, still looks the way it did last year, and still sits there behaving perfectly well for you. Meanwhile the one thing it's meant to do — put people in touch with you — has quietly stopped working.
The reason this goes on so long is simple. Someone who fills in your contact form, gets a "thanks, we'll be in touch" message, and then hears nothing back doesn't ring you up to complain. They assume you're busy, or rude, or closed. They go to whoever's next on the list. You get no signal at all. You just get a quiet month, and you put it down to the time of year.
Here's what actually breaks, and how to check it yourself.
Forms that stopped sending, with no error
This is the big one, and it's the most common. The form submits, the page says thank you, and nothing arrives in your inbox. From the visitor's side everything worked. From yours, nothing happened.
The usual causes:
- The notification is going to spam. Form emails often come from your own domain but are sent by your web host's server, which mail providers are increasingly suspicious of. One day they start filtering. Nothing on your site changed.
- It's going to an old address. An inbox from a previous provider, a member of staff who left, or an address you set up during the build and forgot about. It's still being delivered — just not to anyone who reads it.
- A plugin update broke it. Form plugins get updated, so do the platforms around them. An update can change a setting, or stop talking to whatever was handling the sending, and the failure is usually silent.
- An integration expired. If your form feeds a mailing list, a booking system, a CRM or an automation tool, that connection relies on a login or a key that can expire, be revoked, or lapse with a card that got replaced. The form carries on looking fine; the enquiry just stops at the join.
- A mailbox is full or was closed. Rare, but it happens, and it's invisible from the website.
Booking forms are worse, because there's money attached and the customer genuinely believes they have an appointment.
The rest of the quiet list
- Dead internal links and 404 pages. A page gets renamed or deleted and every link pointing at it now goes nowhere. Old links from Google, social posts and directories keep sending people to a dead end.
- Buttons that go nowhere. A button with an empty link, or one pointing at a page that no longer exists. They look completely normal until someone clicks.
- An expired SSL certificate. Certificates renew automatically until the day they don't — a lapsed card, a changed host, a domain moved. Visitors then get a full-screen browser warning telling them your site isn't safe. Almost nobody clicks past that.
- Images that stopped loading. If photos were hosted somewhere else — an old site builder, a free image host, a cloud drive, a previous designer's account — and that account lapsed, the images vanish and you're left with broken placeholders.
- A phone number that isn't tappable. On a mobile, your number should be a link that starts a call. If it's plain text, or worse, sitting inside an image, the visitor has to memorise it and dial manually. Many won't.
- Out-of-date opening hours and prices. Not broken in a technical sense, but it costs you the same way — people turn up when you're shut, or arrive expecting last year's price.
How to test a form properly
Most people "test" a form by filling it in from their office computer, seeing the thank-you message, and calling it done. That proves almost nothing. The thank-you message is usually just the next page loading — it doesn't know whether the email was sent, let alone delivered.
Test it the way a customer would:
- Use a different device. Your phone, off wifi, on mobile data. Not the computer you built the site on.
- Use a different email address. A personal address, not your business one. Some setups quietly behave differently when the sender and recipient are on the same domain.
- Put something identifiable in the message. "Test Tuesday morning" — so you know exactly which submission arrived.
- Then go and look in your inbox. Not the website. The inbox. Did it actually arrive?
- Check spam and junk. If it landed there, the form isn't working — you just haven't noticed yet, because real enquiries are landing there too.
- Check every route. If the form is supposed to add someone to a mailing list or create a booking, check those too, not just the email.
- Test every form on the site. Contact, booking, newsletter, the quote form on the services page. They're often set up separately, and they fail separately.
Checking for dead links and broken buttons
You don't need a tool for a small site, though free broken-link checkers exist and will crawl the whole thing for you in a few minutes. Either way, open your site on your phone and behave like a stranger. Click every item in the menu, every button, every link in the footer, every "read more" and every "book now". Anything that lands on a "page not found" goes on the list.
While you're there: tap the phone number and see whether it offers to call. Tap the email address. Tap the map. Scroll the whole homepage and check every image has actually loaded.
Your ten-minute monthly check
Put it in the diary once a month. On your phone, on mobile data, with a fresh pair of eyes:
- Send a real test through every form, from a personal email address, and confirm it arrives
- Check the spam folder of the inbox those notifications go to
- Confirm the notifications are still going to an address someone actually reads
- Look for the padlock in the browser bar — no warnings, no "not secure"
- Click through every menu item, button and footer link
- Confirm all images load
- Tap the phone number and the email address
- Read your opening hours, prices and services as if you'd never seen them
- Check anything the form feeds into — mailing list, calendar, booking system
- Search your business name on Google and click the result, in case the listing points somewhere stale
Why "it looks fine to me" is the trap
You are the one person on earth who cannot see your own website properly.
You know where everything is, so you never click the broken route. Your browser has cached old versions of pages and images, so things load for you that don't load for anyone else. You're often logged in, which can hide problems entirely. You look at it on the same device, on the same connection, at the same screen size, every time. And you already know your phone number, so you've never once needed to tap it.
A stranger arrives with none of that. They arrive on a phone, on a patchy signal, with no idea what your menu is called, and they will give you roughly one attempt before moving on.
The good news is that everything above is checkable in an afternoon, and most of it in ten minutes a month. The cost of not checking isn't a dramatic failure — it's just a slow, unexplained quiet that looks exactly like a bad season.
If you want to see it rather than read about it: send us your website — or just your Instagram — and we'll rebuild your main page properly and send it over as a link. Free, no call, nothing to book. You get the new page and a short note on what we changed and why, so you can judge the thinking as well as the result. Get my free website here.
If you'd rather talk it through than read it, there's a free 15-minute call too.
