80% off for waitlist membersGet 20+ WooCommerce plugins — Launch from $39.80 or Lifetime from $49.80 

← Back to Guides

WooCommerce Email Deliverability: Why Your Emails Go to Spam (And How to Fix It)

WPBundle Team··14 min read
WooCommerce email deliverabilityWooCommerce emails going to spamfix WooCommerce email problems
WooCommerce sends emails using PHP's mail() function by default. Most shared hosting servers have poor email reputation, meaning your order confirmations, shipping notifications, and password resets land in spam. The fix is SMTP authentication with proper DNS records — SPF, DKIM, and DMARC.

The Default WooCommerce Email Problem

When WooCommerce sends an order confirmation email, it doesn't use a proper email server. It uses PHP's built-in mail() function, which tells your web server to send the email directly. The problem: your web server isn't an email server. It has no reputation, no authentication, and shares an IP address with hundreds of other websites — some of which might be sending spam.

Email providers like Gmail, Outlook, and Yahoo use sophisticated filtering to determine what's spam and what's legitimate. When they see an email from a random web server IP with no authentication records, they treat it with suspicion. Result: your customer's order confirmation lands in their spam folder, they think you're a scam, and you get a support ticket asking "where's my order?"

If you're on shared hosting and haven't configured SMTP, there's a good chance 1 in 5 of your WooCommerce emails never reaches the customer's inbox.

Understanding Email Authentication: SPF, DKIM, DMARC

Email authentication is how you prove to Gmail, Outlook, and Yahoo that your emails are legitimately from you. There are three DNS records that matter:

SPF (Sender Policy Framework)

SPF tells receiving email servers which servers are authorized to send email on behalf of your domain. It's a TXT record in your DNS that lists approved IP addresses and services. Without SPF, any server can claim to send email from your domain — and email providers know this, so they flag unauthenticated emails.

Example SPF record: v=spf1 include:_spf.google.com include:sendinblue.com ~all

This says: "Emails from our domain can legitimately come from Google Workspace and Brevo (Sendinblue). Anything else should be treated with suspicion (~all)."

DKIM (DomainKeys Identified Mail)

DKIM adds a cryptographic signature to every email you send. The receiving server checks this signature against a public key published in your DNS. If the signature matches, the email hasn't been tampered with and genuinely came from your domain. DKIM is the single most important authentication record for deliverability.

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC tells receiving servers what to do when an email fails SPF and DKIM checks. Options are: do nothing (p=none), quarantine (p=quarantine), or reject (p=reject). Start with p=none to monitor, then move to p=quarantine after confirming legitimate emails pass authentication.

Example DMARC record: v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com

Since February 2024, Google and Yahoo require SPF and DKIM authentication for all bulk senders. If you send more than 5,000 emails/day, DMARC is also required. Even for smaller stores, these records dramatically improve inbox placement.

Step-by-Step SMTP Setup for WooCommerce

Step 1: Choose an SMTP Provider

The best SMTP providers for WooCommerce stores, ranked by value:

Brevo (formerly Sendinblue) — Free tier: 300 emails/day. Paid: from $9/month for 5,000 emails. Best choice for most WooCommerce stores. The free tier handles stores processing up to 10 orders/day comfortably (each order triggers 2-3 emails).

Amazon SES — $0.10 per 1,000 emails. No free tier anymore (was 62,000/month from EC2, ended 2024). Cheapest at scale but requires more technical setup. Best for stores sending 10,000+ emails/month.

Postmark — $1.25 per 1,000 emails (first 100 free). Best deliverability in the industry — they only allow transactional email, so their IP reputation is excellent. Worth the premium for stores where every email matters (luxury goods, high-ticket items).

Mailgun — First 1,000 emails free, then $0.80 per 1,000. Good API, developer-friendly, solid deliverability. Middle ground between Brevo and Postmark.

SMTP.com — From $25/month for 50,000 emails. Enterprise-grade, dedicated IPs available. Overkill for most WooCommerce stores.

Brevo's free tier (300 emails/day) handles most WooCommerce stores. Only upgrade when you consistently exceed 10 orders per day.

Step 2: Install WP Mail SMTP

WP Mail SMTP by WPForms is the most popular SMTP plugin for WordPress with 3+ million active installations. It routes all WordPress emails (including WooCommerce) through your chosen SMTP provider instead of PHP mail().

Install it from Plugins → Add New → search "WP Mail SMTP". The free version supports most SMTP providers. The Pro version ($49/year) adds email logging, which is useful for debugging delivery issues.

Alternative plugins: FluentSMTP (free, open source, supports multiple connections), Post SMTP (free, includes email logging), Jetveo SMTP (lightweight).

Step 3: Configure Your SMTP Provider

Using Brevo as an example (most common choice):

1. Create a Brevo account at brevo.com
2. Go to Settings → SMTP & API → Generate a new SMTP key
3. In WP Mail SMTP, select Brevo (Sendinblue) as your mailer
4. Enter your API key
5. Set your "From Email" to an address on your domain (e.g., orders@yourstore.com)
6. Set "From Name" to your store name

Step 4: Add DNS Records

Your SMTP provider will give you specific DNS records to add. For Brevo, you'll get:

- An SPF include to add to your existing SPF record
- A DKIM key (a TXT record with a long cryptographic string)
- Optional: a DMARC record recommendation

Add these records in your domain registrar or DNS provider (Cloudflare, Namecheap, GoDaddy, etc.). DNS propagation takes up to 48 hours, but usually completes within 1-2 hours.

Step 5: Verify and Test

After DNS propagation:

1. Go to WP Mail SMTP → Email Test and send a test email to your personal Gmail
2. Check that it arrives in the inbox (not spam)
3. In Gmail, click the three dots → "Show original" to verify SPF, DKIM, and DMARC all show "PASS"
4. Run your domain through mail-tester.com (free) — aim for a score of 9/10 or higher

Send a test email to the address shown on mail-tester.com, then check your score. It reveals exactly what's causing deliverability issues — missing DNS records, blacklisted IPs, content spam triggers, and more.

WooCommerce-Specific Email Issues

"From" Address Mismatches

WooCommerce lets you set a "From" address in WooCommerce → Settings → Emails. If this doesn't match the domain you've authenticated with your SMTP provider, emails will fail DKIM verification. Make sure your WooCommerce "From" address uses your authenticated domain — not a gmail.com or other free email address.

Plugin Conflicts

Some WooCommerce plugins send their own emails outside the normal WooCommerce flow. Subscription renewal reminders, booking confirmations, and membership notifications might bypass your SMTP configuration. After setting up SMTP, enable email logging (WP Mail SMTP Pro or Post SMTP) and check that ALL email types route through SMTP.

Multisite Complications

WordPress Multisite sends emails from the network admin email by default, which may not match individual site domains. Each site in a multisite network needs its own SMTP configuration if they use different domains.

Advanced Deliverability Tactics

Separate Transactional from Marketing Email

Use different sending infrastructure for transactional emails (order confirmations, shipping notices) and marketing emails (newsletters, promotions). Transactional emails should use a dedicated SMTP provider like Postmark or a subdomain (e.g., mail.yourstore.com) to protect their reputation from marketing email bounces and spam complaints.

Monitor Bounce Rates

Hard bounces (invalid email addresses) damage your sender reputation. WooCommerce collects email addresses at checkout with no verification. If customers mistype their email, you send to an invalid address, it bounces, and your reputation suffers. Consider adding email verification at checkout using a plugin like WooCommerce Email Verification or YayMail's email validation feature.

Warm Up New Sending Domains

If you're setting up SMTP for a domain that's never sent email before, don't blast 1,000 emails on day one. Start with 50-100 emails/day and gradually increase over 2-4 weeks. This lets ISPs build a positive reputation for your domain.

Separate your transactional and marketing email streams. A single spam complaint on a promotional email can tank deliverability for your order confirmations.

Monitoring and Maintaining Deliverability

Deliverability isn't set-and-forget. Monitor these metrics monthly:

Bounce rate: Should be under 2%. Higher means you're sending to invalid addresses.
Spam complaint rate: Should be under 0.1%. Google's threshold is 0.3% — exceed it and you're in trouble.
Inbox placement rate: Tools like GlockApps ($59/month) or InboxReady test actual inbox placement across providers.

Check blacklists quarterly using mxtoolbox.com. If your sending IP appears on a blacklist, contact the blacklist operator for delisting. This is another reason to use a reputable SMTP provider — they actively monitor and manage their IP reputation.

If you've already customized your email templates for branding, make sure the content passes spam filter checks too. Learn about email template customization best practices that don't trigger spam filters. And if you're sending post-purchase review requests, check our guide on review request email timing to avoid complaint spikes.

Troubleshooting Common Problems

Emails not sending at all: Check WP Mail SMTP's email log. Most common cause: incorrect SMTP credentials or firewall blocking outbound SMTP ports (25, 465, 587). Some shared hosts block port 25 — use 587 (TLS) or 465 (SSL) instead.

Emails landing in Promotions tab: Gmail's Promotions tab isn't spam — emails are still delivered. But if you want Primary inbox, reduce marketing-style content (lots of images, promotional language, multiple CTAs) in transactional emails.

Customer claims "never received email": Check your email log first. If it shows "sent successfully," the problem is on the recipient's end — their spam filter, full inbox, or incorrect email address. If the log shows failure, check your SMTP provider's dashboard for bounce details.

Emails delayed by hours: WooCommerce triggers emails synchronously during checkout. If emails are delayed, your SMTP provider might be queuing them. Check their dashboard for queue status. Also check if you have a caching plugin that's interfering with WooCommerce's email hooks — some aggressive caching can delay email triggers.

Email deliverability is the foundation of every WooCommerce email strategy. Before investing in beautiful templates or automation sequences, make sure your emails actually reach the inbox. Set up SMTP with proper SPF, DKIM, and DMARC records — it takes 30 minutes and solves 90% of deliverability problems.

Level up your WooCommerce store

Join the WPBundle waitlist and get beta access to our plugin suite completely free.

Join the Waitlist