Your Website Contact Form Is Not Working: How to Fix It

A broken contact form is a silent business killer. Unlike a website crash or a visible error, a broken form does not announce itself. Your website looks fine. Visitors fill out the form and click submit. They see a "thank you" message and assume everything worked. But the submission never reaches you. For days, weeks, or even months, potential leads vanish into the void.
This is one of the most common (and most costly) small business website problems. The good news is that contact form issues are almost always caused by a handful of predictable issues, and every one of them is fixable. Let's walk through the diagnosis and solutions.
Step 1: Confirm the Problem
Before troubleshooting, verify that the form is actually broken and determine exactly how it is failing.
Test Your Form Yourself
- Submit a test entry from your website. Use a real email address that you can check.
- Check where submissions should arrive. Is it your email inbox? A CRM? A notifications dashboard in your form plugin?
- Check your spam and junk folders. This is the number one place "missing" form submissions end up.
- Test from a different device and browser. Some issues are browser-specific or device-specific.
- Test on mobile. Form problems on mobile are common and easy to miss if you only test on desktop.
Identify the Failure Point
The form submission process has several stages, and the break could be at any point:
- The form itself: Does the visitor see the form and can they fill it out? (Display issue)
- Form validation: Does the form accept the submission when the visitor clicks submit? (Validation error)
- Data transmission: Does the data get sent from the browser to the server? (Connection or JavaScript issue)
- Server processing: Does the server receive and process the data? (Server-side error)
- Email delivery: Does the notification email get sent and delivered? (Email configuration issue)
Understanding where the break occurs tells you exactly where to focus your troubleshooting.
Problem 1: Email Notifications Are Going to Spam
This is far and away the most common cause of "missing" form submissions. The emails are being sent, but your email provider is filtering them as spam.
Why This Happens
When your website sends an email, it typically sends it through your web server's built-in mail function. Email providers like Gmail, Outlook, and Yahoo have become increasingly aggressive about filtering emails from web servers because spammers frequently abuse them.
Common triggers include:
- The "from" address does not match the sending server's domain
- The sending server lacks proper email authentication (SPF, DKIM, DMARC)
- The email content looks generic or automated
- Your hosting server's IP has been flagged for spam by other users on the same shared host
How to Fix It
Step 1: Check your spam folder. This solves the problem for a surprising number of people.
Step 2: Set up SMTP email delivery. Instead of using your server's default mail function, configure your form to send emails through a proper SMTP (Simple Mail Transfer Protocol) service. This dramatically improves deliverability.
Popular SMTP services for small businesses:
- Gmail SMTP (free for low volume, using your existing Gmail/Google Workspace account)
- SendGrid (free tier: 100 emails/day)
- Mailgun (free tier: 5,000 emails/month for the first three months)
- Amazon SES (very affordable at scale)
For WordPress, install the "WP Mail SMTP" plugin and configure it with your chosen SMTP provider.
Step 3: Configure email authentication records. Add SPF, DKIM, and DMARC records to your domain's DNS. These tell email providers that your emails are legitimate. Your SMTP provider will give you the specific records to add.
Step 4: Use a "from" address on your own domain. Set the form's "from" address to something like noreply@yourdomain.com rather than a third-party email address.
Problem 2: JavaScript Errors Are Breaking the Form
Modern contact forms rely on JavaScript for validation, submission handling, and user experience features. If JavaScript is not loading or has errors, the form may not work.
Signs This Is Your Problem
- The submit button does nothing when clicked
- The form does not show validation messages (required field warnings, format errors)
- You see error messages in the browser console (press F12 and look at the Console tab)
How to Fix It
Step 1: Check the browser console for errors. Open your browser's developer tools (F12), go to the Console tab, and try submitting the form. Any JavaScript errors will appear here.
Step 2: Check for script conflicts. If you recently added a new plugin, script, or widget to your site, it may be conflicting with your form's JavaScript. Try deactivating recent additions one at a time.
Step 3: Check if scripts are loading. In the Network tab of developer tools, reload the page and check if your form plugin's JavaScript files are loading successfully. A 404 error on a script file means the file is missing.
Step 4: Clear your cache. If you use a caching plugin or CDN, clear the cache. Old cached versions of your site may be serving outdated JavaScript that conflicts with updated form code.
Step 5: Test in an incognito/private window. Browser extensions (particularly ad blockers and privacy tools) can interfere with form functionality. Testing in an incognito window rules out extension conflicts.
Problem 3: Server-Side Processing Failures
Sometimes the form submission reaches the server but is not processed correctly.
Signs This Is Your Problem
- The form appears to submit (loading indicator, no JavaScript errors) but no confirmation message appears
- You see a 500 Internal Server Error after submitting
- The page reloads without any feedback
How to Fix It
Step 1: Check your server error logs. Access your hosting control panel and look at the PHP error log. Errors related to form processing will appear here with specific file names and line numbers.
Step 2: Check PHP version compatibility. If you recently updated PHP on your server, your form plugin may not be compatible with the new version. Check the plugin's documentation for PHP requirements.
Step 3: Check file permissions. Some form plugins need write access to specific directories to store submissions. Verify that the plugin's directories have the correct permissions (typically 755 for directories, 644 for files).
Step 4: Increase PHP limits. If your form handles file uploads or large amounts of data, you may need to increase PHP limits in your php.ini or .htaccess:
php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_execution_time 300
Problem 4: Plugin Conflicts (WordPress)
If you are using WordPress, plugin conflicts are a frequent cause of form problems.
Signs This Is Your Problem
- The form stopped working after a recent plugin update
- Other plugins are generating JavaScript or PHP errors
- The form works on a fresh WordPress installation but not on your site
How to Fix It
Step 1: Update everything. Make sure WordPress core, your form plugin, and all other plugins are up to date.
Step 2: Test for conflicts. Deactivate all plugins except your form plugin. Test the form. If it works, reactivate other plugins one at a time, testing after each, to find the conflict.
Step 3: Check your theme. Switch to a default WordPress theme (like Twenty Twenty-Four) and test the form. If it works, the conflict is with your theme, not another plugin.
Step 4: Contact the plugin developer. If you identify a specific conflict, report it to the developer of your form plugin. They may already have a known fix or workaround.
Problem 5: CAPTCHA or Anti-Spam Measures Blocking Legitimate Submissions
Anti-spam tools are essential, but overly aggressive settings can block real people from submitting your form.
Signs This Is Your Problem
- You get very few (or zero) form submissions despite good website traffic
- Users report that the CAPTCHA is too difficult or not loading
- The honeypot or anti-spam filter is flagging legitimate submissions as spam
- reCAPTCHA shows errors or fails to load
How to Fix It
Step 1: Check your CAPTCHA configuration. If you use Google reCAPTCHA, verify that your site key and secret key are correct and that your domain is properly registered in the reCAPTCHA admin console.
Step 2: Lower the reCAPTCHA threshold. If you use reCAPTCHA v3 (the invisible version), the default score threshold might be too strict. Lower it from the default 0.5 to 0.3 or 0.4 to allow more legitimate submissions through.
Step 3: Switch CAPTCHA methods. If your current CAPTCHA is causing problems, consider alternatives:
- reCAPTCHA v3 (invisible, least friction)
- hCaptcha (similar to reCAPTCHA but with better privacy)
- Honeypot fields (invisible to users, catches most bots)
- Simple math questions ("What is 3 + 4?")
Step 4: Review your anti-spam log. Many form plugins keep a log of blocked submissions. Check if legitimate submissions are being caught.
Problem 6: SSL/HTTPS Mixed Content Issues
If your form submits data over an insecure connection (HTTP) while your site uses HTTPS, browsers may block the submission.
Signs This Is Your Problem
- The form worked before you switched to HTTPS
- You see "mixed content" warnings in the browser console
- The form works on HTTP but not HTTPS (or vice versa)
How to Fix It
Step 1: Ensure your form's action URL uses HTTPS. Check the form's HTML source. The form action should use https:// not http://.
Step 2: Update your site URL settings. In WordPress, go to Settings > General and make sure both "WordPress Address" and "Site Address" use HTTPS.
Step 3: Search for hardcoded HTTP URLs in your form plugin settings, theme files, and any custom code. Replace all HTTP references with HTTPS.
Problem 7: The Form Is Not Mobile-Friendly
A form that works perfectly on desktop can be completely broken on mobile devices.
Signs This Is Your Problem
- Mobile visitors rarely submit the form while desktop visitors do
- Form fields overflow the screen on mobile
- Dropdown menus or date pickers do not work on touch screens
- The submit button is hidden or unreachable on smaller screens
How to Fix It
Step 1: Test your form on actual mobile devices. Do not just resize your browser. Use a real phone.
Step 2: Use appropriate input types. Set input types correctly so mobile browsers show the right keyboard:
<input type="email" name="email"> <!-- Shows email keyboard -->
<input type="tel" name="phone"> <!-- Shows phone keypad -->
<input type="number" name="quantity"> <!-- Shows number keyboard -->
Step 3: Size form elements appropriately. All tap targets (fields, buttons, checkboxes) should be at least 44px tall on mobile.
Step 4: Use a single-column layout. Multi-column forms are difficult to use on mobile. Stack all fields vertically.
Setting Up Reliable Form Monitoring
Once your form is fixed, set up systems to catch future problems quickly.
Automated Monitoring
- Enable form submission notifications to multiple addresses. Send notifications to at least two email addresses so you have a backup if one stops receiving them.
- Set up a secondary storage method. Configure your form to save submissions to a database, Google Sheet, or CRM in addition to sending email notifications. This way, even if email delivery fails, the submissions are captured.
- Create a weekly test routine. Set a calendar reminder to submit a test form entry every week. It takes 30 seconds and catches problems before they cost you leads.
Monitor Form Analytics
Track these metrics to spot problems early:
- Submission volume: A sudden drop in submissions is a red flag.
- Completion rate: The percentage of visitors who start the form and successfully submit it.
- Error rate: How often visitors encounter validation errors.
- Mobile vs. desktop submission rates: A large disparity may indicate a mobile-specific issue.
Building Better Forms from the Start
If you are setting up a new form or redesigning an existing one, our guide on how to add a contact form to your website walks through the entire process, from choosing a form builder to optimizing for conversions.
For selecting the right tool, our review of the best form builders for small businesses compares the top options by ease of use, features, and pricing.
And to make sure your forms work seamlessly with your other business tools, read about essential website integrations for small businesses.
Preventing Form Problems: A Checklist
Keep your contact form working reliably with these practices:
- [ ] Test your form weekly (submit a real test entry)
- [ ] Use SMTP for email delivery instead of default server mail
- [ ] Configure email authentication (SPF, DKIM, DMARC)
- [ ] Keep your form plugin and CMS updated
- [ ] Save submissions to a database as a backup to email
- [ ] Monitor submission volume for unexpected drops
- [ ] Test after every website update (plugins, themes, CMS)
- [ ] Test on both desktop and mobile regularly
- [ ] Use a balanced anti-spam approach (not too aggressive)
- [ ] Check your spam folder regularly
For tips on improving form completion rates once the technical issues are resolved, read our guide on reducing form abandonment on your website.
Your contact form is one of the most important elements on your entire website. A few minutes of regular testing and maintenance can prevent weeks of lost leads. Make form health checks part of your routine, and you will never have to wonder how long your form was broken before you noticed.