The form shows a thank-you message. The customer believes the request went through. Nothing reaches your inbox. Of all the ways a contractor website loses work, this is the quietest, because nobody on either side knows it happened.
It is also one of the most common problems we are asked to fix. Here is how to check your own site, what usually causes it, and what a lasting fix looks like.
A five-minute test
- Open your site on a phone and fill in the quote form as a customer would. Use an email address that is different from the one the form sends to.
- Wait five minutes. Check the inbox that should receive it, then the spam folder, then any other tab your mail app sorts messages into.
- Ask who actually reads that inbox. Forms are often still addressed to a former employee or to the company that built the site.
- Look for the last real request that arrived through the form. If it was months ago and business has not been that slow, the form has probably been failing for a while.
If the test message never shows up, one of the following is almost always the reason.
The five usual causes
The website sends mail without proving who it is
Out of the box, WordPress hands every message to the web server and hopes for the best. The server is not a mail service, and receiving mail systems treat it with suspicion. The message is often accepted and then quietly discarded or filed as junk.
We have seen a server report every message as delivered while none of them reached the inbox. The website, the form and the server all said success.
The domain does not vouch for the sender
Mail providers check three DNS records before trusting a message: SPF, DKIM and DMARC. In plain terms they answer one question: is this sender allowed to send for this domain? If your domain says only your email provider may send, mail coming from your web host fails that check.
An update changed something
A form plugin update, a new spam filter or captcha, or a move to a different host can each break delivery without any visible error. The form looks exactly the same the next day.
The form sends to the wrong address
The receiving address was typed in once, years ago. People leave, mailboxes get closed, and the form keeps sending to an address nobody opens.
The host limits outgoing mail
Many hosting companies restrict or throttle mail sent by websites to keep spammers off their network. Legitimate form notifications get caught by the same limits.
| What you see | Most likely cause |
|---|---|
| Nothing arrives, not even in spam | Mail sent straight from the web server, or blocked by the host |
| Messages land in spam or a secondary tab | Missing or failing SPF, DKIM or DMARC |
| It worked until a certain week | A plugin update, new spam protection or a hosting move |
| Customers say they wrote, you never saw it | Wrong receiving address, or any of the above |
The fix that lasts
- Send through a real mail service. The website should hand its mail to a service built for delivery, using a login or key, instead of sending it from the web server.
- Authenticate the domain. Add the DKIM and DMARC records the mail service gives you, and make sure SPF is correct. This is a one-time DNS change.
- Keep a log. A mail log on the website shows every message it tried to send and whether the mail service accepted it. When a customer says they wrote, you can check.
- Save every request on the site. Store form submissions in the website as well as emailing them. If an email goes missing, the lead is still there.
What not to do
- Do not start by replacing the form plugin. The form is rarely the problem. Delivery is.
- Do not put the password of a personal email account into a website plugin. Use a mail service key that can be revoked.
- Do not treat the thank-you message as proof. It only means the website accepted the form.
Need it fixed today? A form that does not deliver is covered by our emergency WordPress fix for a flat $149.
On a WordPress care plan the form is checked after every round of updates, which is when it most often breaks. For roofing companies, where one storm can bring a month of requests in two days, see roofing website maintenance.