In short: Contact form emails go missing for 5 common reasons: unauthenticated email landing in spam, a disabled send button, a wrong recipient address, a bad spam filter, and submissions not being stored. I hit two of these myself; my site now scores 10/10 on mail-tester.com.
Contact form emails not arriving is the most expensive error a website can have, because you do not know about it. If the site goes down, someone notices. But if the contact form does not reach you, the visitor thinks they sent it, and you think nobody wrote. There is no error message, no alert, and it goes unnoticed for weeks.
I describe five common causes. I ran into two of them on my own site, so I know how easy they are to miss.
1. The email is sent but lands in spam or gets dropped
This is the most common one. By default WordPress sends through the hosting's own mail system, with no authentication at all. And since 2024 Gmail, Outlook and Yahoo treat such messages much more strictly: they either put them in spam or silently drop them.
The fix is for the site to send through an authenticated mailbox (SMTP), with SPF, DKIM and DMARC set up on the domain. These DNS records prove the message really comes from you. I did this on my own site, and it turned out that before, anyone could send email in my company's name.
2. The form's send button is disabled
I found this one on my own site. At the bottom of the form there was a required privacy checkbox, and because of one setting the send button stayed grey and unclickable until the visitor ticked it. Many people did not notice the box, pressed the button, nothing happened, and they left.
It did not show up in any error log, because technically it was not an error. In Contact Form 7 a single setting fixes it: the checkbox should leave the button active and show an error on sending if it is not ticked.
3. It goes to the wrong address
It sounds simple, but it is common: the form sends to the former developer's address, a closed mailbox, or an info@ address nobody reads. If nobody reviews the form settings when a site is taken over, it can stay like that for years. I wrote about takeovers separately.
4. The spam filter is too strict, or too lenient
Form spam protection can go wrong in both directions. Too strict, and it filters out real enquiries, typically ones with links or lots of punctuation. Too lenient, and your inbox fills with spam, the real message gets lost among it, or your email client learns that messages from the form are spam and starts putting all of them there.
5. It is not saved anywhere
If the email gets lost for any reason, the enquiry is gone for good, because WordPress does not store form submissions by default. With a storage plugin (for Contact Form 7, for example, Flamingo) every submission is also saved to the database, so it can be found even if the email never arrived. This has to be mentioned in your privacy policy, and it is worth setting old submissions to be deleted after a while.
Contact form emails not arriving? Test it in ten minutes
- Fill in your own form, from a different email address, and from a phone too. Check the spam folder as well.
- Check when the last real enquiry came in. If nothing for months although traffic has not dropped, be suspicious.
- Send a test message to mail-tester.com through the form. It shows how trustworthy your email is and what is missing. My own site scores 10/10.
- Check whether submissions are stored. If there is no list of submissions anywhere in the WordPress admin, they are not.
Doing this once is not enough: a plugin update, a hosting move or a DNS change can break it at any time. That is why in my Business maintenance plan I test the forms by hand every month. I wrote about the prices and plans here.
If you suspect your form is not working properly either, write to me and I will check. And if it is exactly that form that is not working, call me or email me directly. The details are on the contact page.

