Why Are My Emails Going to Spam? (How to Fix It)
Step-by-step guide to finding out why your emails land in spam. Covers authentication, sender reputation, content triggers, and infrastructure — with fixes for each.
Email goes to spam when authentication is missing (SPF, DKIM, DMARC), your sender reputation is poor, or your content triggers spam filters. The fix depends on which of these is the cause — and it's usually authentication.
Here's how to diagnose and fix it, step by step.
Most common causes:
- Missing or broken authentication (SPF, DKIM, DMARC)
- Sending from a new domain without warming up
- Poor sender reputation (high bounces or complaints)
- Content that triggers spam filters
- Sending to invalid or old addresses
Quick fix: Check authentication first. It's the cause most of the time.
Step 1: Check Your Authentication
This is the #1 reason emails go to spam. Missing or misconfigured SPF, DKIM, or DMARC records.
How to check
First, use our free deliverability checker to instantly verify your domain's SPF, DKIM, and DMARC records.
Then send yourself an email. In Gmail, click the three dots → "Show original". Look for:
If you see any of these failing:
That's your problem.
Fixing authentication
| Issue | Fix |
|---|---|
spf=fail or spf=softfail | Add your email provider to your SPF record |
dkim=none or dkim=fail | Add the DKIM CNAME/TXT record from your provider |
dmarc=fail | Set up a DMARC record (start with p=none) |
Need details? Read our DKIM, SPF, and DMARC guide for step-by-step instructions.
Step 2: Check Your Sender Reputation
Even with perfect authentication, a bad reputation will land you in spam.
Signs of reputation problems
- Emails delivered fine last week, now going to spam
- Some recipients get it, others don't
- Gmail specifically filtering you (they're the strictest)
How to check
Google Postmaster Tools (free): https://postmaster.google.com/
Connect your domain and you'll see:
- Domain reputation (High/Medium/Low/Bad)
- Spam rate
- Authentication success rate
If your spam rate is above 0.1%, you have a problem. Above 0.3% and Gmail will actively filter your emails.
What hurts reputation
| Factor | Impact |
|---|---|
| High bounce rate (>2%) | Severe |
| Spam complaints (>0.1%) | Severe |
| Sending to spam traps | Severe |
| Sending to inactive addresses | Moderate |
| Inconsistent sending volume | Moderate |
How to fix it
- Clean your list: Remove addresses that bounced
- Handle complaints: Never email someone who complained
- Slow down: Reduce volume temporarily while reputation recovers
- Check for spam traps: Old addresses that ISPs use to catch spammers
Step 3: Check Your Content
Spam filters analyze what you're sending. Certain patterns trigger them.
Red flags
Subject lines:
- ALL CAPS
- Excessive punctuation!!!
- "FREE", "Act now", "Limited time"
- Re: or Fwd: when it's not a reply
Body content:
- URL shorteners (bit.ly, t.co)
- Too many links
- Image-only emails (no text)
- Mismatched link text and URL
- Hidden text (same color as background)
The image problem
Emails that are just one big image with no text are a classic spam signal. Spammers use images to hide text from filters.
Bad:
<body>
<img src="promo.jpg" alt="Click here for deals!" />
</body>
Better:
<body>
<h1>Your order has shipped</h1>
<p>Your package is on its way...</p>
<img src="tracking-map.jpg" alt="Delivery map" />
</body>
Always include plain text
Every HTML email should have a plain text alternative. Most email clients won't show it, but spam filters check for it.
Content-Type: multipart/alternative
If you're using an email API, this is usually handled automatically. But verify.
Step 4: Check Your Infrastructure
New domain? Warm it up.
A brand new domain sending 10,000 emails on day one looks like a spammer. ISPs are suspicious of new senders.
Warming schedule:
| Day | Volume |
|---|---|
| 1-3 | 50-100 |
| 4-7 | 200-500 |
| Week 2 | 500-1,000 |
| Week 3 | 1,000-5,000 |
| Week 4+ | Full volume |
Start by emailing your most engaged users—they're most likely to open and not mark as spam, which helps your reputation.
Use a subdomain
Send transactional email from mail.yourapp.com or notifications.yourapp.com, not your root domain.
Why? Reputation isolation. If something goes wrong, your main domain stays clean.
Check your sending IP
If you're on a shared IP (most small senders are), someone else's bad behavior can affect you. This is usually handled by your email provider, but worth checking if you've ruled out everything else.
Step 5: Check the Recipient
Sometimes it's not you.
Corporate email filters
Office 365 and enterprise email systems have aggressive filters. Your email might be fine for Gmail but blocked by a company's IT policy.
Signs:
- Consumer emails (Gmail, Yahoo) work fine
- Business emails (company domains) get blocked
- You see "550 Message rejected" errors
Solutions:
- Ask IT admins to whitelist your sending domain
- Make sure you have proper authentication (they check strictly)
Invalid addresses
Sending to addresses that don't exist hurts your reputation.
550 5.1.1 The email account that you tried to reach does not exist
This is a hard bounce. Remove these addresses immediately.
Debugging Checklist
Start with our free deliverability checker — it verifies SPF, DKIM, and DMARC in seconds.
Work through this in order:
| Check | How |
|---|---|
| Authentication passing? | Use deliverability checker or check email headers |
| Domain reputation? | Google Postmaster Tools |
| Bounce rate? | Check your email provider's dashboard |
| Complaint rate? | Google Postmaster Tools |
| Content issues? | Use mail-tester.com |
| New domain? | Implement warming schedule |
| Specific recipient issues? | Test different email providers |
When Nothing Works
If you've checked everything and emails still go to spam:
- Wait: Reputation takes time to build. Keep sending good email.
- Reduce volume: Send less while you recover.
- Segment: Only email people who engaged recently.
- New subdomain: As a last resort, start fresh with a new subdomain.
Don't create a new domain just to escape bad reputation. ISPs can link related domains. Fix the underlying problem first.
Prevention
Once you're out of spam, stay out:
- Verify addresses: Use double opt-in or email verification
- Monitor metrics: Set up alerts for bounce/complaint spikes
- Remove inactive users: If someone hasn't opened in 6 months, stop emailing them
- Handle bounces automatically: Hard bounces should immediately suppress the address
Next Steps
- Check authentication: DKIM, SPF, and DMARC Explained
- Validate your domain: How to Check if an Email Domain Is Valid — MX, SPF, DKIM, DMARC checks
- Full checklist: Email Deliverability Checklist
- Warm up properly: How to Warm Up an Email Domain
- Ready to send: Check our framework guides for integration examples