WordPress Contact Form Not Working — 7 Things to Check
Few things are more frustrating than discovering your contact form hasn't been working for weeks. Potential customers tried reaching out — but their messages never arrived.
I've seen it hundreds of times as a freelance WordPress developer. A client calls and says: "We haven't received any enquiries in a month." Turns out the contact form has been silently broken the whole time.
Here are the 7 most common causes — and how to fix them.
Check it now
Send a test message through your own contact form right now. If you don't receive it within 5 minutes, there's a problem.
1. SMTP Is Not Configured
This is by far the most common cause. WordPress uses PHP's mail() function to send emails by default. The problem? Most hosting providers block or throttle that function, and emails end up in spam — or never get sent at all.
The fix: Install an SMTP plugin like WP Mail SMTP or FluentSMTP. Configure it with a reliable email service like Gmail SMTP, SendGrid, or Mailgun. This routes your emails through a proper mail server instead of the server's PHP function.
2. Plugin Conflict
WordPress plugins can conflict with each other. If you recently installed or updated a plugin, it may have broken your contact form.
The fix: Deactivate all plugins except your form plugin. Test the form. Then reactivate one plugin at a time, testing after each. When the form stops working, you've found the culprit.
Read more about solving plugin issues in my plugin troubleshooting guide.
3. Spam Filter Blocking Legitimate Messages
Plugins like Akismet or reCAPTCHA can be too aggressive. They block spam — but also real enquiries.
The fix: Check your spam filter settings. If you're using reCAPTCHA, make sure you're using v3 (the invisible version) rather than v2 with a checkbox. Lower the sensitivity if possible. Also check whether your form plugin has a spam folder with caught messages.
4. Caching Shows an Old Version of the Form
Aggressive caching can mean visitors see a cached version of your page — with a form that doesn't work properly, for example because a nonce token has expired.
The fix: Clear all cache (plugin cache, server cache, and CDN cache). Consider excluding your contact page from caching entirely. Most caching plugins have the option to exclude specific pages.
5. Emails Are Going to Spam
Your form might be sending just fine — but the email is landing in the recipient's spam folder.
Check your spam folder
Look in spam/junk in your email client. Mark the message as "not spam" if it's there.
Set up SPF, DKIM, and DMARC
These DNS records tell email servers that your server is authorised to send email from your domain. Without them, the chance of being marked as spam is very high.
Use a dedicated sender email
Make sure the "From" address in the form matches your domain. Never use a free email address as the sender (e.g., gmail.com).
6. Outdated PHP Version
Older PHP versions can create compatibility issues with newer plugins. If your hosting is running PHP 7.4 or older, it's time for an upgrade.
The fix: Log into your hosting control panel and check the PHP version. Upgrade to at least PHP 8.1, preferably 8.2 or 8.3. Remember to test your site after the upgrade.
PHP version and security
PHP 7.4 hasn't received security updates since November 2022. If you're still running that version, it's a security risk on top of the compatibility problems.
7. The Form Isn't Connected to an Email Address
It sounds trivial, but it happens more often than you'd think. Either the email field is empty in the form plugin's settings, or there's a typo in the address.
The fix: Go into your form plugin's settings (Contact Form 7, WPForms, Gravity Forms, etc.) and verify the recipient email is correct. Send a test. Also check that notification settings are enabled.
What If It Still Doesn't Work?
If you've checked all 7 points and the form still won't send, the problem may run deeper — in your server configuration, firewall rules, or a theme issue.
In that case, I recommend:
- Checking the server's error log for PHP errors
- Trying a different form plugin temporarily
- Contacting your hosting provider to ask about email restrictions
Need more help? See my guide to contact forms in WordPress or my general WordPress help guide.
Prevent the Problem Going Forward
The best strategy is to set things up correctly from the start:
- Always use SMTP for email sending
- Test your contact form after every update
- Set up email notifications to a backup address
- Consider saving form submissions in the database (most premium form plugins have this feature)
A contact form that doesn't work is lost business. Spend 15 minutes going through these 7 points — it can save you weeks of missed enquiries.




