Troubleshooting
Contact Form Not Working? How to Find and Fix It
A broken contact form is easy to miss. The page looks fine, nobody complains — the enquiries just stop. This guide helps you work out what kind of broken it is, fix the usual causes on the platform you use, and make sure you hear about it next time before a week of leads goes missing.
- A 2-minute test to see what is actually broken
- Fixes for WordPress, Elementor, Divi, Squarespace and Shopify
- How to know the next time it breaks
By Nicky Christensen· Founder, Sitewatch
01Do this first
Work out what kind of broken it is
"The contact form isn't working" can mean three quite different problems, with different fixes. A two-minute test tells you which one you have.
The test
- Open your contact page in a private (incognito) window, so you see what a visitor sees, not a cached or logged-in version.
- Fill in the form with a real email address you can check, and press send.
- Watch what happens on the page, then check the inbox the form is meant to send to — including spam.
What the result tells you
- Nothing happens, the button spins forever, or you get an error. The form itself is broken on the page. Usually a plugin conflict, a caching problem, or spam protection that failed to load. See common causes.
- You see "Thank you, your message was sent" — but no email arrives. The form works; the email doesn't get delivered. This is the most common problem by far, especially on WordPress. Jump to your platform.
- The email arrives, but in spam. A delivery problem too. The fix is the same: send the form's emails from a properly set up address on your own domain.
Also check the form's own list of entries, if it has one (most form plugins, Squarespace and many builders store submissions). If the entries are there, you haven't lost the messages — they just never reached your inbox.
028 common causes
Why contact forms stop working
Your host won't deliver the email
CriticalMany website hosts limit or block the basic way websites send email. The form says "sent", but the message is dropped or lands in spam. The most common cause on WordPress.
The "from" address doesn't match your domain
CriticalIf the form sends as the visitor's address, or as an address on a different domain, inbox providers treat it as suspicious and quietly filter it out.
A plugin or theme update
CriticalAn update to the form plugin, the theme or an unrelated plugin clashes with the form. The send button stops responding, or the form disappears.
Spam protection failed
CriticalreCAPTCHA, hCaptcha or a honeypot fails to load or is misconfigured, so every submission is rejected — including real ones.
Caching
ModerateA caching plugin or CDN serves an old copy of the page, or caches a security token the form needs. The form looks normal and fails when sent.
A security plugin or firewall
ModerateSome forms send in the background. A security plugin or firewall that blocks that request makes the form fail with a vague error.
Wrong or old recipient address
ModerateThe form still sends to a former employee, an old mailbox or a typo. Everything works — to an inbox nobody reads.
Email or DNS settings changed
ModerateMoving email provider or changing domain settings can break delivery for the whole domain, forms included.
03Fixes
How to fix it on your platform
WordPress (Contact Form 7, WPForms and others)
If the form says "sent" but nothing arrives, the fix is almost always the same: stop relying on your host to send email. Install an SMTP plugin (WP Mail SMTP, FluentSMTP or Post SMTP) and connect it to a real email account or sending service — Google Workspace, Microsoft 365, or a service like Brevo or Postmark. Then send a test email from the plugin's settings page.
In Contact Form 7, open the form's Mail tab. Make sure the "From" address is on your own domain (for example website@yourdomain.com) and put the visitor's address in "Reply-To" instead. Contact Form 7 shows a warning in the form editor when the settings are likely to cause delivery problems — fix anything it flags.
If the send button just spins, or you see a red error: clear your caching plugin, then temporarily switch off other plugins one at a time to find a conflict. Security plugins that block background requests are a common culprit with Contact Form 7.
Elementor forms
Edit the form widget and open Actions After Submit. Check that "Email" is one of the actions, then open the Email section and confirm the "To" address is correct. Elementor sends through WordPress, so if the email never arrives, the WordPress SMTP fix above applies. If the form shows an error on submit, check the reCAPTCHA keys in Elementor's settings and clear any cache.
Divi contact form
Open the Contact Form module and check the Email field in its settings. If it's empty, Divi sends to the site's admin email address — which may be an address nobody checks. Divi also sends through WordPress, so if messages don't arrive, set up an SMTP plugin as described above. If you use Divi's spam protection or captcha, test that it isn't rejecting real submissions.
Squarespace
Edit the form block and open its Storage settings. Check which email address submissions go to, and that it's one you can still receive. Look in spam, and add Squarespace's sending address to your contacts. Squarespace can also send submissions to Google Drive or a mailing list tool — if a connected account was disconnected, that storage stops too.
Shopify
The contact form sends to your store's contact email. Check it under Settings → Store details (or General on older admin layouts), and make sure it's an inbox you read. If you use a theme or app for a custom contact form, check that app's own settings too — theme updates are a common reason a customised contact page stops sending.
GoDaddy
If your site uses GoDaddy's website builder, open the contact section and check the email address submissions go to. If you run WordPress on GoDaddy hosting, the WordPress SMTP fix above is usually the answer — hosting providers commonly restrict how websites send email.
20
Detection rules
23+
Stack playbooks
Free
1 site
04Never again
How to find out the next time it breaks
Send yourself a test every month
Put a monthly reminder in your calendar to submit your own form and check it arrives. It's the only way to be sure email delivery still works end to end.
Test after every update
Most forms break right after a plugin, theme or site update. Make "send a test message" part of every update.
Watch for a sudden drop
If you normally get a few enquiries a week and suddenly get none, check the form before assuming it's a quiet week.
Have the page checked for you
Sitewatch checks your contact page on a schedule and alerts you when the form or anything it needs to work stops loading — so you hear about it from an alert, not from a customer who gave up.
Contact form FAQ
Because the form did its job and the email got lost on the way. Usually your website host is limiting how the site sends email, or the message is sent from an address that doesn't match your domain, so inbox providers filter it out. Check spam first, then send the form's emails through a proper email account using an SMTP plugin or your platform's email settings.
WordPress sends email through your web host by default, and many hosts restrict or don't properly set up that kind of email. Install an SMTP plugin such as WP Mail SMTP or FluentSMTP, connect it to a real email account or sending service, and set the form's "From" address to an address on your own domain.
Clear every cache first — your caching plugin, your CDN and your browser. If it still fails, switch off plugins one at a time (starting with the one that just updated) until the form works again, then roll that plugin back or contact its developer. Our guide to fixing a site after an update, linked below, covers the full process.
Open the page in a private window, fill in the form with an email address you can check, and send it. Confirm you see the thank-you message, that the email arrives (check spam), and that the entry appears in your form plugin or platform if it stores submissions.
Sitewatch checks your contact page on a schedule and alerts you when the form, its spam protection or anything else it needs stops loading — the kind of breakage that makes a form impossible to send. It doesn't submit your form or check that the email lands in your inbox, so a monthly test message is still worth doing.
06Keep reading
Related resources
Stop finding out from customers that your form is broken
Free plan for 1 site. Your contact page checked in minutes.