Skip to main content
← Blog

Why Your Cold Emails Go to Spam (Even With a Warmed Domain)

Technical debugging guide: why domain warmup alone fails. Deep dive into IP reputation, DNS alignment, content triggers, and list quality — the 5 factors ISPs actually check.

You warmed your domain correctly. 4–6 weeks of gradual sends. Engagement automation. Perfect SPF, DKIM, DMARC records. Bounce rate below 2%. And yet — emails still land in spam.

This isn’t a domain reputation problem. Domain warmup is table stakes, not a solution. If you’ve done it right and still see spam rates above 5%, the issue is somewhere else. Here’s where ISPs are actually looking — and how to find what’s broken.

ISP Reputation Is Not The Same As Domain Reputation

Most cold email troubleshooting starts here and stops here. That’s the problem.

When you warm a domain, you’re teaching the ISP that this specific domain isn’t malicious. Good signal. But ISP reputation is much broader. It’s the IP address you send from. It’s the email account you’re using. It’s the pattern of sends across your entire infrastructure. A warmed domain sent from a brand-new IP with zero history doesn’t get domain reputation applied retroactively. You’re starting from zero on the IP side.

Here’s what ISPs actually weigh, in order:

  1. IP reputation history — Is this IP known to send spam? Blocklisted? Sent to spam traps before?
  2. Account reputation — What’s this Gmail/Outlook/Office365 account’s sending pattern? Has it sent cold email at scale? Is it brand new?
  3. Domain reputation — Is the domain itself flagged? Proper authentication in place?
  4. Content — Subject lines, body copy, links, images. Do they hit spam filter rules?
  5. List quality — Valid addresses? Or are bounces, complaints, and dead accounts the majority?

Warmup addresses #3. It does almost nothing for #1, #2, #4, or #5. If any of those are broken, warmup was wasted effort.

Your IP Reputation Is Still Building (Or Broken)

Cold email guides tell you to warm your domain. Almost none tell you to warm your IP. That’s a massive blind spot.

Using a shared IP from AWS, Linode, or Hetzner? That IP’s reputation is the aggregate of everyone on it. Your neighbor spamming = your emails suffer. No audit, no enforcement. ISPs can look up the historical spam score publicly, and they do.

Check your IP reputation:

  • Sender Score (senderscore.org) — 0–100 scale. Below 70 is risky. Below 50 and most ISPs reject you outright. Free account.
  • MXToolbox (mxtoolbox.com) — Checks Spamhaus, SORBS, UCEProtect blocklists. If you’re listed, ISPs refuse your mail before it even touches the spam folder.
  • GreyRaider (gray-raider.com) — Google’s reputation data. Less public than Sender Score, but more accurate for Gmail specifically.

If your IP is on any blocklist, domain warmup won’t help. Request a new IP from your host or migrate servers.

If Sender Score is below 70, you’re warming a domain while handicapping yourself. Fix: Reduce daily sends by 50% for a week, then gradually increase. ISPs see that shift and know your pattern is legitimate.

Your Email Account Is Younger Than Your Domain

Gmail, Outlook, and Office 365 track account reputation separately from domain reputation. They know the difference.

A brand-new Gmail account sending 100 emails per day is red-flag behavior. ISPs will flag it as bot activity, no matter how warmed your domain is. A new account has no history. Period.

ISPs expect real email accounts to:

  • Start with moderate volume day 1 (under 50 sends)
  • Gradually increase over weeks (no sudden jumps)
  • Receive actual replies and inbound mail (not just outgoing traffic)
  • Show human inbox behavior (log in regularly, read mail, clean up)

Created the account last week and started warming immediately? Account reputation is negative. Warmup reduces domain risk but does nothing for the account itself. It’s still suspicious.

If you’re seeing consistent spam placement with a new account, pause it. Move sends to an established one, then repeat warmup. Alternatively, extend warmup to 8–10 weeks with very low volume (5–10 per day) for the first 3 weeks.

DNS Records Are Right, But Your Alignment Is Wrong

Your SPF, DKIM, and DMARC pass validation checks. But “passing” and “aligned” are different things.

Alignment means your domain, SPF record, and DKIM key all point to the same responsible entity. ISPs weight aligned authentication much higher than unaligned. Much.

SPF alignment:

Mail-From: [email protected]
From: [email protected]

Both are example.com. Aligned. ISPs trust this.

But this:

Mail-From: [email protected]
From: [email protected]

The Mail-From domain (sendgrid.com) doesn’t match the From domain (example.com). Not aligned. ISPs rate this lower. Some accept it. Most deprioritize it.

DKIM alignment: Your DKIM selector should match your sending domain. If you’re sending from example.com but DKIM is signed as s._domainkey.mail.sendgrid.com, it’s unaligned.

DMARC: This is where domain reputation actually lives. DMARC tells ISPs what to do if SPF and DKIM alignment fails. p=quarantine sends suspect emails to spam. p=reject refuses them outright. Many teams skip DMARC entirely. ISPs see that and know you don’t fully control your email identity. They flag it.

Use a DMARC validator (agari.com/dmarc-monitor, often free). If your From, Mail-From, and DKIM domains don’t align, warmup is working against you.

Content Triggers Are Silently Killing Your Open Rate

Domain warmup builds reputation. Content filtering is per-email and immune to it.

Common spam filter triggers:

  • Salesy language: “limited-time offer”, “act now”, “risk-free trial”, “100% satisfaction”, “exclusive deal”
  • Suspicious urgency: 5+ exclamation marks, excessive caps, word repetition
  • Too many links: Multiple links in a short email, shortened URLs (bit.ly, tinyurl), affiliate links
  • Attachment triggers: Executables, zips, even PDFs from unknown senders
  • Image-heavy emails: Mostly image, minimal text (classic spam)
  • Broken unsubscribe: No unsubscribe link, or one that doesn’t work or requires login

Gmail, Outlook, and Yahoo run every email through ML models. Even perfect authentication won’t save you if the email itself hits too many triggers. Worse, the whole account gets marked as risky.

Here’s what happens: You warm with generic “let’s connect” emails. Then you send salesy campaign copy. ISPs notice the shift and flag the new sends immediately.

Fix: A/B test during warmup. Send 1–2 variations of low-key outreach. Measure delivery (check your mail client’s delivery reports, or use PitchGale’s dashboard). If one variant delivers better, use similar patterns in real campaigns.

Your Lead List Quality Is Killing Your Sender Reputation

This is the one thing nobody wants to admit: your list is bad.

High bounce rate (above 5%) tells ISPs you’re mailing invalid addresses or spam traps. High complaint rate (above 0.5%) says people think you’re spam. High unopened rate after 30 days means you’re mailing dead accounts. These metrics compound. ISPs track them across all your sends.

What a bad list looks like:

  • Generic roles: info@, contact@, sales@ (no actual person). ISPs derank these.
  • Stale contacts: Directory data from 6+ months ago. High bounces and complaints.
  • Scraped or bought lists: LinkedIn scrapes, job site pulls, “verified” lists without recent validation. ISPs have internal blocklists for these sources.
  • Spam traps: Honeypots ISPs plant to catch spammers. Hit one and your account gets flagged.
  • Unengaged accounts: Send the same Gmail address 10 times with no reply, Gmail routes you to spam. ISPs track per-account.

A warmed domain can’t overcome a bad list. 10% bounce rate and 2% complaint rate? Warmup didn’t fail — the list is the problem.

Fix: Validate before sending. Hunter.io, Apollo.io, RocketReach (free tier: 50–100/month). $0–500/month for verification at scale. PitchGale’s lead discovery pipeline auto-verifies emails before they enter any campaign.

Cross-check your sources. Bought a list? Sample it against LinkedIn to confirm addresses are active. Bounce rate above 3%? Rebuild.

Your Warmup Was Too Aggressive Or Too Passive

Warmup has a sweet spot. Too aggressive and you trigger ISP alarms. Too passive and you don’t build reputation.

Too aggressive (the usual mistakes):

  • Day 1: 0 to 100 emails
  • Send the same recipient twice in one day
  • Use automation that sends and opens back-to-back (ISPs flag that as bot behavior)
  • Jump from 20/day week 1 to 200/day week 2

Too passive:

  • Warm for only 2 weeks before real campaigns
  • Send 5–10 per day for 6 weeks (not enough volume to establish pattern)
  • Warm blind (no measurement, no idea what’s landing where)

The right rhythm: Start 20–30 per day. Add 20–30 each week. By week 4, you’re at 100–150. At that point, account reputation is solid enough for a real campaign.

More important: measure it. Use a secondary inbox or test account. Check delivery daily. If 80%+ of warmup emails land in primary inbox (not spam, not promotions), you’re ready. Below 60%? Wait another week.

Deliverability Isn’t One Problem — It’s Five

Here’s the mental model: domain warmup solves 1 of 5 reputation factors.

  1. IP reputation — Blocklists, Sender Score below 70, shared IP baggage
  2. Account reputation — Old accounts beat new ones
  3. Domain reputation — Warmup ✓
  4. Content quality — Spam triggers, unsubscribe issues, format problems
  5. List quality — Bounces, dead addresses, spam traps, unengaged accounts

Break one and your campaign suffers. The founders who nail deliverability tackle all five in parallel. They don’t warm their domain while ignoring IP. They don’t send salesy copy from a warmed domain. They don’t mail a garbage list.

PitchGale’s deliverability assistant automates most of this: DNS verification, warmup guidance, bounce monitoring. But you have to do the work — verify IP, validate list, test copy.

Seeing 10%+ spam placement after warmup? Pick one of these five and audit hard. The issue is there. Warmup just made the other four harder to spot.

The Debugging Checklist

Your domain is warmed. Emails still don’t land in inbox. Use this:

  1. Check Sender Score — below 70? Request a new IP or cut send volume by 50%
  2. Validate SPF/DKIM/DMARC alignment with a DMARC validator
  3. Run a sample email through Spam Assassin (spamassassin.apache.org) — score above 5 means too many content triggers
  4. Check bounce rate in your mail client’s bounce report — above 5%? Clean the list
  5. Test with secondary inboxes — send 10 to a personal Gmail and Outlook, measure inbox vs. spam placement
  6. Account under 6 months old? Wait. Account reputation compounds. Need to send now? Use an established account instead
  7. Cut warmup volume by 50%, measure again after 1 week

Fix the first broken thing. Then test again. Deliverability debugging is systematic, not magic.

Domain warmup was the right call. It’s just table stakes.

Cold outreach that learns from every send

PitchGale automates lead gen, AI-personalized emails, and adaptive follow-ups — built for founders, not enterprise.

Join the waitlist →