WordPress Contact Form Not Working
Your WordPress contact form either refuses to submit, or it submits happily and the email never arrives. Those are two different problems with two different fixes.
Common signs of this issue
- You click Send and the button spins forever, or nothing happens at all.
- The form shows an error like "There was an error trying to send your message" or a red or orange border after submitting.
- The form says "Thank you" or "Message sent" — but no email ever shows up in your inbox.
- A customer says they filled in the form and you never received anything.
- Messages used to arrive and quietly stopped, often after a plugin, theme, or WordPress update.
- The reCAPTCHA box is missing, shows an error, or the form rejects every submission as spam.
Safe checks you can do yourself
None of these require sharing passwords with anyone.
- Test the form yourself from a personal email address, write a normal-looking sentence rather than the word "test", and note the exact time.
- Work out which of the two failures you have. If the form shows an error or never finishes submitting, the form itself is broken. If it says "message sent" and nothing arrives, the email delivery is broken. Everything else follows from this.
- Check the plugin's own entries screen. WPForms, Formidable, Gravity Forms, and Ninja Forms store every submission in your WordPress dashboard even when the email fails — look for an Entries or Submissions menu. If entries are there, only the email is failing. Contact Form 7 keeps no entries unless you add its Flamingo companion plugin, so a lost email there is simply gone.
- Search your inbox's spam folder — and any Promotions tab — for your own site's name. The messages may have been arriving all along.
- Ask what changed recently. A plugin update, a theme update, or a new plugin installed around the time messages stopped is the prime suspect.
- Try the form in a private or incognito browser window. If it works there but not normally, a caching plugin or your browser's stored copy of the page is serving an outdated form.
- If you use a caching plugin, clear its cache and, if it has the option, exclude the contact page from caching — cached pages can serve stale security tokens that make every submission fail.
- If the form uses reCAPTCHA, check the plugin's settings for a key error. Keys are tied to your domain, so a domain change, an https switch, or keys copied from another site silently reject every visitor.
What this usually means
When the form won't submit, something on the page is interfering — most often a caching plugin serving an old copy of the page, a JavaScript error from a recent plugin or theme update, or reCAPTCHA keys that no longer match your domain. The form runs in the visitor's browser, so anything that breaks the page's scripts breaks the form, even though the rest of the site looks fine.
When the form submits but no email arrives, the culprit is almost always how WordPress sends mail. Out of the box, WordPress hands email to the web server's built-in mail function — a method so widely abused by spammers that many hosts restrict it and many inboxes distrust it. These emails also tend to claim to come "from" your domain without your domain's permission, failing the authentication checks (SPF and DMARC) that Gmail and Microsoft now enforce — so the message is binned before you ever see it.
The two failures have completely different fixes. A submission problem is solved on the website side — clearing cache, fixing the conflicting plugin, correcting the reCAPTCHA keys. A delivery problem is solved on the email side, and the honest, permanent fix is an SMTP plugin: it connects your forms to a real mail service — your business email account or a transactional sender — so messages go out properly authenticated. That one change resolves most "sent but never arrived" cases for good.
What not to do
- Don't assume an empty inbox means nobody is contacting you. A broken form and a quiet week look identical from your side — test it rather than infer it.
- Don't delete and reinstall the form plugin as a first move. Settings, entries, and the form itself can be lost, and the underlying cause is usually elsewhere.
- Don't deactivate all your plugins at once on a live site to hunt for a conflict. Do it one at a time so you know what actually helped.
- Don't install two or three form plugins side by side to see which one works — overlapping form scripts conflict with each other and make everything less reliable.
- Don't switch the form's From address to a personal Gmail address to dodge delivery problems — sending "from" Gmail via your web server makes authentication failures worse.
- Don't consider it fixed until one real test submission has gone end-to-end and landed in the right inbox.
When to get help
If your test message never arrives and the plugin's entries screen is empty too — or you use Contact Form 7 with no entry log at all — you are debugging blind, and that is the point where a WordPress-experienced freelancer earns their fee. Tracing a form through caching layers, plugin conflicts, and email authentication is routine work for someone who does it weekly, and usually takes one short session. It is also worth paying to have SMTP or a transactional mail service set up properly: done once, it fixes delivery for your forms, shop receipts, and password-reset emails alike, and for a business site one recovered lead usually covers the cost.
Not sure what to do next?
Answer a few short questions and we'll point you to the safest next step — DIY, a freelancer, or a direct review. No passwords required.
Is this a business website? If this issue may be costing you leads, sales, or trust, you may want a direct review instead of trial and error.
Frequently asked questions
Why does my WordPress form say the message was sent but no email arrives?
The form did its job — it handed the message to WordPress for emailing, and the email step failed. WordPress's default mail sending is unreliable and often fails modern spam checks. An SMTP plugin routing mail through a real email service fixes it permanently.
Where do WordPress contact form submissions go if the email fails?
It depends on the plugin. WPForms, Formidable, Gravity Forms, and Ninja Forms save every entry in your WordPress dashboard, so nothing is truly lost. Contact Form 7 keeps no log by default — a failed email is gone unless you add its Flamingo companion plugin.
Why is Contact Form 7 not sending email?
Usually because WordPress's built-in mail sending is being blocked or spam-filtered, not because of Contact Form 7 itself. Check spam first, then set up an SMTP plugin. If the form shows an orange border instead, the submission itself is failing — often caching or reCAPTCHA.
Can a caching plugin break my contact form?
Yes, and it is a classic cause. Cached pages can serve outdated security tokens or old copies of the form, so every submission fails. Clearing the cache and excluding the contact page from caching usually resolves it.
Why did my form break after a plugin or theme update?
Updates change code, and a script error from one plugin can stop the form's script from running. If the timing matches an update, that update is the prime suspect — deactivating it briefly confirms it.
What is an SMTP plugin and do I really need one?
It is a small plugin that makes WordPress send email through a proper mail service instead of the web server itself. For any WordPress site that sends form notifications or receipts, it is the single most effective reliability fix available.