The short answer
A contact form that shows a success message but never delivers is almost always an email delivery problem, not a broken form. Work the causes in order of likelihood: the spam folder, missing SPF and DKIM records, a plugin update, a host that blocks outbound mail, an over-eager spam rule, and a notification address nobody reads. Then run the ten-minute self-test at the end.
Key takeaways
- Check the junk folder and your inbox rules first. That is the single most common answer and it takes two minutes.
- If SPF and DKIM are not set for your domain, Gmail and Outlook can drop your form mail silently with no bounce.
- A plugin, theme, or PHP update is the usual reason a form that worked for two years stopped last Tuesday.
- Honeypots and aggressive spam rules do catch real people, especially older customers who type slowly.
- Email is a terrible system of record. Store every submission somewhere outside the email path so a delivery failure is never a lost customer.
A customer tells you they filled out your form last week. You never saw it. Now you are wondering how many others did the same thing. Website form submissions not showing up is one of the most expensive website faults there is, because nothing errors out and nobody complains until a job is already lost. The good news is that contact form submissions not received almost always trace back to one of six causes, and they have a reliable order of likelihood. Work them top to bottom and stop when you find yours.
Website form submissions not showing up: the six causes, ranked
This ranking comes from actually chasing these down on client sites, not from a generic list. The first two account for most of what we find.
| # | Cause | The exact check | Time |
|---|---|---|---|
| 1 | Spam folder or an inbox rule ate it | Search all mail (not just the inbox) for the form's subject line, then open your filters and rules list | 2 minutes |
| 2 | No SPF or DKIM, so the mail is dropped silently | Look up your domain at mxtoolbox.com/SuperTool.aspx and check for an SPF record and a DKIM selector | 10 minutes |
| 3 | A plugin, theme, or PHP update broke the handler | Check the update log date against the date of the last submission you actually received | 5 minutes |
| 4 | The host blocks outbound SMTP on port 25 or 587 | Search your host's help docs for 'SMTP port' or open a support ticket and ask directly | 15 minutes |
| 5 | A honeypot or spam rule is eating real submissions | Open the plugin's spam or blocked-entries view and read what is in there | 5 minutes |
| 6 | The notification address belongs to someone who left | Open the form's notification settings and read the address out loud, character by character | 2 minutes |
1. It is in spam, or a rule is filing it somewhere you never look
Start here even though it feels too obvious. Automated mail from a website looks a lot like bulk mail to a filter: same sender every time, same subject line, often a link in the body. Once one message gets marked as junk by anyone in your organization, the rest tend to follow.
The check: in Gmail, search in:anywhere plus part of your form's subject line, because a plain inbox search skips spam and trash. In Outlook, search Junk Email and Deleted Items separately. Then open your filters. Gmail keeps them under Settings, Filters and Blocked Addresses. Outlook keeps them under Rules. We have found forwarding rules set up years earlier by a former office manager, quietly diverting every inquiry to a mailbox nobody owns anymore.
The fix: mark the message Not Spam, then add the sending address to your contacts and create a rule that never sends it to junk. Two minutes.
2. Your domain has no SPF or DKIM, so the mail is being dropped without a bounce
This is the one that catches people out, because it fails silently and permanently. Your website sends mail claiming to be from your domain. Gmail and Outlook check whether your domain has published a record authorizing that server to send on its behalf. If there is no SPF record, no DKIM signature, and a DMARC policy that says reject or quarantine, the receiving server can throw the message away without telling anybody. Not even a bounce.
The check: go to MXToolbox, enter yourdomain.com and run the SPF Record Lookup. A missing record or a record that does not include your host is your answer. Then run a DMARC Lookup on the same domain. If DMARC says p=reject and SPF does not cover your web server, your form mail is being destroyed on arrival. Ten minutes including the reading.
The fix: stop sending through the web server. Route the form's mail through an authenticated mailbox with an SMTP plugin, or through a sending service like Postmark, Mailgun, SendGrid, or Amazon SES that gives you a DKIM key to publish. Then add the correct SPF include for whichever one you picked. DNS edits are the point where a lot of owners should hand it to somebody, because a bad SPF record breaks all of your email, not just the form.
3. An update broke the handler
Forms that worked for years stop on the day something updated. A form plugin changes how it hooks into mail. A security plugin starts blocking the submission endpoint. The host bumps PHP a version and a function the form relied on goes away. Nothing about the page looks different, which is why nobody notices.
The check: find the date of the last submission you know you received, then compare it against your update history. In WordPress that is under Tools, Site Health, or in the plugin update log your host keeps. If the two dates line up, you have your suspect. Five minutes.
The fix: roll the offending plugin back one version and test. If the form comes back, you know exactly what broke it and can then update deliberately with a test right after. This is also the argument for a staging site: updates get applied there first, the form gets submitted there first, and production never finds out the hard way.
4. Your host blocks outbound mail
Plenty of shared hosts block outbound SMTP on port 25, and some block 587 too, because spammers abused it for years. If your form plugin is configured to send directly, the connection is refused and the message never leaves the building. The plugin often reports success anyway, because handing the message to a queue counts as success from its point of view.
The check: search your host's documentation for "SMTP port" or "outbound mail", or open a ticket and ask two direct questions. Do you block outbound SMTP, and on which ports? Which relay do you want me to use instead? Fifteen minutes, most of which is waiting.
The fix: use the relay they name, or move to a sending service over an API instead of SMTP, which sidesteps port blocking entirely.
5. A honeypot or spam rule is eating real people
Anti-spam measures have false positives, and the false positives skew toward exactly the customers you want. A honeypot field catches anything that fills in a hidden input, which some password managers and accessibility tools do. A time-based rule rejects anything submitted in under a few seconds, which catches people who paste a prepared message. reCAPTCHA v3 scores users and quietly rejects the low scorers, and older browsers, VPN users, and privacy-focused setups score low.
The check: open your form plugin's spam folder or blocked-entry log and actually read the last fifty entries. Not the count, the entries. If there is a real name and a real question in there, you have found your problem. Five minutes.
The fix: loosen the rule rather than remove it. Turn off the time threshold before you turn off the honeypot, and if you use reCAPTCHA v3, set the score threshold so borderline submissions get flagged for review instead of rejected outright.
6. The notification goes to somebody who left
The address in the form settings was correct when the site launched. Then that person left, the mailbox got closed or converted to a shared alias nobody monitors, and the form kept doing exactly what it was told. Sometimes the address is fine and there is simply a typo in it, one that has been there since day one.
The check: open the notification settings and read the address character by character. Then send a test message to that exact address from your phone and see if it arrives anywhere. Two minutes.
The fix: point notifications at a shared mailbox that at least two people watch, not a personal one. Staff turnover should never be able to take your inquiries offline.
The ten-minute self-test anyone can run
Do this from your phone on cellular data, not from the office computer on the office network. You want the visitor's conditions, not yours.
- 1Open your website on your phone and fill in the contact form like a real customer. Put the current date and time in the message body so you can find it later.
- 2Note the exact minute you hit submit. Write it down.
- 3Screenshot whatever the page says next. If there is no confirmation message at all, that is a separate problem worth fixing.
- 4Wait five minutes, then search all mail for the timestamp you typed, spam and trash included.
- 5If nothing arrived, log into your form plugin and check whether the entry is stored there. If the entry exists but the email did not arrive, it is a delivery problem, causes 1, 2 and 4. If there is no entry at all, it is a handler or spam-rule problem, causes 3 and 5.
- 6Check the notification address in the settings against the mailbox you just searched.
- 7Repeat the whole test after every plugin update, or put it on the calendar monthly.
The real problem: email is a bad system of record
You can fix every one of the six causes above and still be exposed, because they all share the same root. If email is the only place your leads exist, then any delivery failure is a permanent, invisible data loss. There is no record to check against. You cannot audit what you never received, and you will not know to look until a customer tells you they tried.
Every serious form tool already solves this. Gravity Forms, WPForms, Formidable, Fluent Forms and Contact Form 7 with a database add-on all keep entries in the site's database whether or not the email goes out. Turn that on. It costs nothing and it means a bad SPF record becomes an annoyance instead of a lost month. If you use a hosted form service like Formspark or Basin, check that entries are retained in the dashboard rather than forwarded and forgotten.
We take the same approach with Venbit Analytics, the first-party analytics we built for our own clients. Every form submission and every phone tap is stored in a leads inbox outside the email path, so if the notification never lands, the lead is still sitting there. That is not a reason to switch tools if your form plugin already stores entries. It is a reason to make sure something, anything, is holding a copy that does not depend on a mail server being in a good mood.
When to bring in a professional
Installing an SMTP plugin is genuinely doable for most owners, and if that fixes it, you are done. Where it gets tricky is DNS. Setting up SPF, DKIM and DMARC correctly is fiddly, and a mistake there can affect all of your business email, not just the form. If you have tried SMTP and messages still do not land, or you are not comfortable editing DNS records, that is the point to hand it over.
On our maintenance plans, starting at $99 a month, we set forms up to send through authenticated email, keep entries stored independently of the email, and test them as part of routine care so a stray update never quietly takes your inquiries offline. We are based near Seattle and handle site edits within one business day.
Related services
More website answers
Every question in this series, from Website Problems, Solved.
Symptoms & emergencies22
- What Size Should Images Be for a Website? A Plain Guide With Numbers
- Why Is My Logo Blurry on My Website? How to Fix It for Good
- Images Not Loading on My Website? Nine Causes, Checked in Order
- Why Is My Website Down? How to Find Out and Fix It
- Why Does My Website Say "Account Suspended"?
- Error Establishing a Database Connection: What It Means
- Why Is My Contact Form Not Sending Emails? (you are here)
- White Screen of Death on WordPress: What to Do Now
- Why Is My Website Showing "Not Secure" in Chrome?
- Squarespace Site Not Showing Up on Google? Here's Why
- Why Did Google Remove My Website From Search Results?
- Why Did My Website Traffic Suddenly Drop? Top Causes
- Why Is My Website Sending Spam Emails? What It Means
- Why Is My Website Slow on Mobile but Fast on Desktop?
- Why Does My Website Look Broken on My Phone?
- Why Do My Website Images Look Blurry or Broken?
- How to Tell If Your Website Has Been Hacked: 9 Signs
- "This Site May Be Hacked": How to Remove Google's Warning
- "Deceptive Site Ahead" Warning: How to Fix It Fast
- How to Make Your Website Load Faster
- Why Is My Website Not Showing Up on Google?
- 10 Signs Your Business Website Needs a Redesign
What happens if...15
- Hosting Company Shut Down? What to Do About Your Website in the Next 24 Hours
- How to Get Your Website Files From Your Hosting Company
- Hosting Expired and the Website Is Down: What Is Still Recoverable
- How to Recover a Deleted Website (Backups, the Host, and the Wayback Machine)
- How to Move a Website to a New Host Without Downtime
- Is My Web Host Going Out of Business? The Signs, and What to Do Before It Does
- What Happens If You Don't Update WordPress Plugins?
- What Happens If Your SSL Certificate Expires?
- What Happens If Your Domain Name Expires? A Timeline
- What Happens If Your Web Host Goes Out of Business?
- What Happens If You Stop Paying Your Web Developer?
- Can an Old Website Hurt Your Google Ranking?
- Is an Outdated Website a Liability for Your Business?
- Why Are My Business Emails Going to Spam?
- What Happens If You Don't Maintain Your Website?
Cost & pricing9
- Web Developer Hourly Rate: What Small Businesses Actually Pay in 2026
- How Much Does It Cost to Update a Website? Real Ranges by Job
- How Much Does It Cost to Fix a Hacked WordPress Site?
- Why Is Website Maintenance So Expensive? A Breakdown
- Hourly Rate vs. Monthly Retainer for Website Updates
- How Much Do Freelancers Charge for Website Maintenance?
- How Much Does WordPress Maintenance Cost Per Month?
- How Much Does Squarespace Maintenance Cost?
- How Much Does Website Maintenance Cost?
Plans & hiring11
- Website Management for Dentists: What It Covers, What It Costs
- Do I Need a Website Maintenance Plan? An Honest Answer
- Maintenance Plan vs. Pay As You Go: Which Actually Wins
- One-Time Website Fix vs. Ongoing Care: Which Do You Need
- Does a Simple Website Need a Maintenance Plan?
- 12 Questions to Ask a Website Maintenance Company
- Freelancer vs. Agency for Website Maintenance
- What to Look For in a Website Maintenance Contract
- Is Your Website Maintenance Plan a Scam? How to Tell
- Website Maintenance Checklist for Non-Technical Owners
- What Does Website Maintenance Include? (And Why It Matters)
Ownership & switching15
- How to Find Out Who Built Your Website (and Who Still Has the Keys)
- How to Find Out Who Owns a Domain Name (Including Your Own)
- Locked Out of Your Own Website? How to Get Access Back
- How to Transfer a Website to a New Developer Without Losing Anything
- The Website Ownership Checklist: What a Small Business Should Actually Hold
- What Is My Website Built With? How to Check in Seconds
- How to Find Out Who Hosts and Manages Your Website
- Your Web Developer Disappeared: What to Do Now
- How to Switch Web Hosting Without Losing Your Email
- Who Is My Email Provider? How to Find Out in Two Minutes
- How to Fire Your Web Developer (Without Losing Your Site)
- Can You Maintain Your Own Website Without Coding?
- How Often Should You Update Your Website Content?
- How to Back Up a WordPress Site Yourself (Two Ways)
- Do You Really Own Your Website? How to Check Before You Hire
Platform-specific7
- Do Squarespace Sites Need Maintenance? The Honest Answer
- Do Wix Websites Need Maintenance? What Owners Should Know
- Shopify Maintenance: What Store Owners Actually Need
- WordPress Maintenance Checklist for Non-Developers
- WordPress vs. Squarespace: Which Is Easier to Maintain?
- GoDaddy Website Builder vs. WordPress for Small Business
- How to Keep Your WordPress Website Secure
The Venbit Team
Web design & SEO, Seattle
Venbit is a Seattle-area web design, SEO, and digital marketing studio. Since 2011 we've designed, built, and ranked small-business websites for clients across the Puget Sound and around the country, so the numbers and advice here come from real projects, not a content mill.
Sources
- MXToolbox SPF and DMARC record lookup
- Google Workspace Admin Help: prevent spoofing with SPF, DKIM and DMARC
- Venbit maintenance work on client contact forms since 2011