← All resources
Email deliverability

Why your WordPress emails land in spam — and how to fix it

Order confirmations and password resets that quietly vanish into spam are a WordPress classic. Here's why it happens — SPF, DKIM, DMARC, sender reputation — and how to fix it for good.

Email deliverability

Picture the worst version of a broken website: it looks fine. The homepage loads, the cart works, the contact form says "Thanks, we'll be in touch." But the order confirmation never arrives. The password reset never comes. The lead from the contact form sits in a spam folder nobody checks. Nothing looks broken — and that's exactly why WordPress email problems can cost you customers for months before anyone notices.

Here's why it happens, and how to actually fix it.

WordPress doesn't really "send" email

When WordPress fires off an email — a WooCommerce receipt, a password reset, a form notification — it hands the message to the server's built-in mail() function and walks away. On most shared hosting, that means the message goes out from a random server with no real sending identity behind it.

Modern inbox providers (Gmail, Outlook, Apple Mail) are deeply suspicious of mail like that. They want proof that the message genuinely came from your domain and wasn't forged by a spammer. If that proof is missing, the message gets quietly filed under spam — or dropped entirely. No error, no bounce you'll see. Just silence.

The three records that decide whether you're trusted

Email authentication comes down to three DNS records. You don't need to be able to write them by hand, but it helps to know what they do:

  • SPF says which servers are allowed to send mail for your domain. If a message comes from a server that isn't on the list, it looks forged.
  • DKIM adds a tamper-proof signature to every message, so the receiver can confirm it really came from you and wasn't altered in transit.
  • DMARC ties the two together and tells inbox providers what to do when a message fails the checks — and lets you see who's sending mail in your name.

Get all three right and your mail arrives. Get them wrong — or leave them unset, which is the default on a fresh WordPress install — and you're gambling with every receipt and reset.

Bounces and complaints quietly wreck your reputation

Authentication is only half the story. The other half is reputation. Every time you send to a dead address and it bounces, or a recipient hits "report spam," your domain's standing drops a little. Let enough of those pile up and even your perfectly-authenticated mail starts landing in spam.

This is why "just install an SMTP plugin and point it at SendGrid" isn't a real fix. It moves the sending, but nobody's watching — nobody's pruning dead addresses, nobody's catching the complaint spike before it tanks your reputation, nobody's keeping a suppression list so you stop hammering an address that already bounced.

What "good" looks like

A healthy WordPress sender has:

  • SPF, DKIM, and DMARC configured correctly and kept that way
  • A real sending identity, not the shared server default
  • Bounces and complaints handled automatically, before they hurt you
  • A suppression list so dead addresses are dropped, not retried
  • Visibility — a way to confirm a specific message actually went out

Most WordPress sites have none of these. Not because owners don't care, but because email deliverability is a specialist job that has very little to do with running a website.

Most hosts don't send transactional email at all

Here's the part that surprises people: most managed WordPress hosts don't provide working outbound email out of the box. The big names tell you flat out that their servers "aren't optimized for sending mail" — and then point you at a third-party service like SendGrid, Mailgun, or Brevo to wire up yourself. (A few bundle a bare-bones sender, but still hand you the SPF, DKIM, and DMARC setup and leave deliverability monitoring to you.)

So out of the box you're handed an SMTP plugin, a pile of DNS records, a separate account, and a separate monthly bill — and email deliverability quietly becomes your problem. That's a lot to ask of someone who just wants their order confirmations to arrive.

How Site Schema handles it

We take the opposite view: outbound email is part of hosting, not an add-on you assemble yourself. Every Site Schema site sends transactional email from its own verified identity, with SPF, DKIM, and DMARC configured for you. We handle bounces and complaints, keep a suppression list, and watch deliverability so a problem gets caught early — not after a month of receipts vanishing into spam.

No SMTP plugin to install. No third-party account. No DNS guesswork. Your email just arrives — because making it arrive is our job, not yours.

Let Site Schema handle this for you.

Managed WordPress hosting with the hard parts done for you.

See managed email deliverability