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

Safe checks you can do yourself

None of these require sharing passwords with anyone.

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

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.

Related free guides

WordPress site down?

Seeing “There has been a critical error on this website”?

Our guided repair tool logs in over secure FTPS and fixes the most common WordPress failures — safely, with every change backed up and reversible. Start with a free scan, no password needed.

Fix My WordPress Site → Free scan · No download of your site · Reversible