Troubleshooting14 min read·Updated 2026-04-30

Why Are My Cold Emails Going to Spam? Complete Diagnosis Guide

Every possible cause, in diagnostic order. Find your problem and fix it.

RB

Rees Bayba

Founder, Astra GTM

TL;DR

  • Start with DNS: run your domain through MXToolbox. If SPF, DKIM, or DMARC are failing, nothing else matters -- fix these first.
  • Check sender reputation next. Google Postmaster Tools shows your domain reputation (High/Medium/Low). If it's Low, you're being throttled. Reduce volume and let reputation recover.
  • Email content matters more than ever. Gmail and Outlook now detect AI-generated patterns. Plain text outperforms HTML. Keep links to one or zero in the first email.
  • Microsoft Outlook is the hardest inbox to reach: 73% of cold emails get junked. It requires different infrastructure and tactics than Gmail.
  • List quality is a silent killer. If your bounce rate exceeds 3%, your sender reputation is degrading with every campaign. Verify every email before sending.

This is the most common question on r/coldemail, cold email Twitter, and every outbound Slack community. Your emails are going to spam, and you don't know why. The answer is almost always one of six causes, and you can diagnose them in order. Start at Step 1 and work down -- each step assumes the previous steps are passing.

Step 1: Check DNS Configuration

DNS authentication is the foundation. If SPF, DKIM, or DMARC are misconfigured, every email you send signals 'this might be forged' to receiving servers. No amount of good copy or warm-up will overcome bad DNS.

SPF (Sender Policy Framework)

SPF tells receiving servers which IP addresses are authorized to send email from your domain. Check it by running your domain through MXToolbox SPF Lookup (mxtoolbox.com/spf.aspx). A passing SPF record looks like: v=spf1 include:_spf.google.com ~all (for Google Workspace) or v=spf1 include:spf.protection.outlook.com ~all (for Microsoft 365). Common misconfigurations: multiple SPF records (you can only have one -- combine them), too many DNS lookups (SPF allows a maximum of 10 lookups; exceeding this causes a PermError and SPF fails silently), or missing include statements for your email sending service.

DKIM (DomainKeys Identified Mail)

DKIM adds a cryptographic signature to your emails proving they weren't tampered with in transit. Check it by sending an email to a test address and examining the headers (look for 'dkim=pass'). In Google Workspace, DKIM is enabled in Admin Console > Apps > Google Workspace > Gmail > Authenticate email. The most common DKIM failure: you set it up in your email provider but never added the CNAME or TXT record to your DNS. The record typically looks like: google._domainkey.yourdomain.com pointing to a long string. If DKIM is not configured, add it. If it was configured but shows 'dkim=fail' in email headers, the DNS record likely doesn't match what your provider generated.

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

DMARC ties SPF and DKIM together and tells receiving servers what to do when authentication fails. The minimum DMARC record for cold email: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. The p=none policy means 'don't reject emails that fail, but send me reports.' This is the right starting policy. Move to p=quarantine or p=reject only after you've confirmed all legitimate sending sources pass SPF and DKIM. Add a DMARC record as a TXT record at _dmarc.yourdomain.com. If you don't have one, mailbox providers treat your domain as unauthenticated, which increasingly means spam.

DNS Diagnostic Checklist

  • Run MXToolbox SPF Lookup -- should show 'Pass' with no errors
  • Run MXToolbox DKIM Lookup -- should show a valid public key
  • Run MXToolbox DMARC Lookup -- should show a valid DMARC record
  • Send a test email to mail-tester.com -- score should be 9/10 or higher
  • Check email headers for 'spf=pass', 'dkim=pass', and 'dmarc=pass'
  • Verify you have only ONE SPF record (multiple records = both fail)
  • Count your SPF includes -- must be 10 or fewer DNS lookups total

Step 2: Check Sender Reputation

DNS is passing but emails still go to spam? Your domain or IP reputation may be damaged. Reputation is a score mailbox providers assign based on your historical sending behavior. Once damaged, it takes weeks to repair.

How to Check Domain Reputation

  1. 1Google Postmaster Tools (postmaster.google.com): Register your domain and check the Domain Reputation dashboard. 'High' is good. 'Medium' means you're being watched. 'Low' or 'Bad' means your emails are going to spam. Google Postmaster is the single most useful reputation tool -- if you're not using it, set it up now.
  2. 2MXToolbox Blacklist Check: Run your domain and sending IP through MXToolbox's blacklist checker. If you're on Spamhaus, Barracuda, or SORBS, your deliverability is severely impacted. Each blacklist has its own delisting process -- follow it immediately.
  3. 3Talos Intelligence (talosintelligence.com): Check your sending IP reputation. Look for 'Good' or 'Neutral.' 'Poor' means Cisco-based spam filters (used by many enterprise mail servers) are blocking you.
  4. 4Microsoft SNDS (sendersupport.olc.protection.outlook.com): Register your IP ranges to see Microsoft's view of your reputation. This is the closest thing Microsoft offers to Google Postmaster Tools, though it's less detailed.

If your reputation is damaged, the fix is time and volume reduction. Drop your daily send volume to 10-15 emails per mailbox. Send only to your most engaged contacts (people who have opened or replied before). Maintain this for 2-4 weeks. Reputation recovers gradually as mailbox providers see consistent, low-volume sending with good engagement signals.

Step 3: Check Warmup Status

New domains and mailboxes have no reputation -- which mailbox providers treat the same as bad reputation. Warmup builds that reputation by exchanging emails with a network of real mailboxes that open, reply to, and mark your emails as important.

Is Your Domain Warmed?

  • Minimum warmup period: 14 days before sending any cold email. Some providers recommend 21 days for new domains.
  • Warmup volume should start at 5-10 emails/day and increase by 3-5 per day. Jumping from 0 to 50 emails/day triggers spam filters immediately.
  • Signs warmup is working: your warmup emails land in Primary inbox (not Promotions or Spam), open rates on warmup emails are 40%+, and you see your domain reputation in Google Postmaster Tools moving to 'Medium' or 'High.'
  • Signs warmup is NOT working: warmup emails are going to spam (check with your warmup provider), open rates below 20%, or Google Postmaster still shows 'Low' reputation after 14 days.
  • Keep warmup running while cold emailing. Don't stop warmup after you start sending campaigns. The warmup engagement signals counterbalance the cold email signals. Most practitioners run warmup indefinitely.

Step 4: Check Email Content

DNS passes, reputation is good, warmup is running -- but emails still go to spam? The content of your email is triggering spam filters. This has become more aggressive in 2025-2026 as Gmail and Outlook deploy AI-based content filtering.

Content Triggers to Eliminate

  • Spam trigger words: 'free,' 'guaranteed,' 'act now,' 'limited time,' 'exclusive offer,' 'click here.' These individually are not fatal, but stacking multiples in one email raises your spam score.
  • Too many links: Keep your first email to zero or one link. Every additional link increases your spam score. Tracking links from email platforms (which redirect through their servers) look especially suspicious. Consider disabling link tracking for cold email.
  • Images and HTML: Plain text emails deliverability-rate higher than HTML emails for cold outreach. No images in cold emails -- they add weight, trigger image-based spam filters, and look like marketing newsletters. If you must use HTML, keep it minimal: no colored backgrounds, no tables, no embedded CSS.
  • Tracking pixels: These are 1x1 invisible images that track opens. Some spam filters detect and penalize them. Many cold email practitioners disable open tracking entirely and rely on reply rate as their primary metric.
  • AI-generated patterns: Gmail now detects patterns common in AI-generated copy: overly parallel sentence structures, generic value propositions, unnatural transitions. If your email reads like ChatGPT wrote it, Gmail's classifiers may flag it. Write like a human or heavily edit AI drafts.
  • Large attachments or unusual file types: Never attach files in cold emails. Link to a hosted document if necessary. Attachments trigger spam filters and look like phishing.

Content Best Practices

  • Keep cold emails under 80 words for Step 1. Shorter emails have higher reply rates and lower spam scores.
  • Write in plain text. No HTML formatting, no bold, no colors, no images.
  • One link maximum in the first email. Zero is better. Save the calendar link or case study for the follow-up.
  • Use the recipient's name and company name naturally -- but don't over-personalize. 'I saw your company recently expanded to Austin' is good. Three paragraphs of research about their background is suspicious.
  • Vary your copy across mailboxes. Sending the identical email from 10 mailboxes to the same domain triggers pattern detection. Use spintax or write genuine variants.

Step 5: Check Sending Patterns

How you send matters as much as what you send. Spam filters look for bot-like sending behavior: exact intervals between emails, volume spikes, and excessive sends from a single mailbox.

  • Volume spikes: Going from 20 emails/day to 200 emails/day overnight tells spam filters you're a spammer. Ramp volume by 10-20% per week maximum.
  • Sends per mailbox: Maximum 30-40 emails per mailbox per day (including warmup). Most practitioners stay at 20-30 to be safe. Going above 50 per mailbox almost always triggers throttling.
  • Send time randomization: If every email goes out at exactly 9:00 AM, 9:03 AM, 9:06 AM -- that's a bot pattern. Randomize send times by at least 30-60 seconds between emails, ideally with random delays of 2-5 minutes.
  • Time-of-day consistency: Send during business hours in the recipient's timezone. Emails sent at 3 AM local time look suspicious. Most platforms handle timezone-aware sending automatically.
  • Weekend sending: Avoid sending cold emails on weekends. It's both bad for engagement (people don't respond) and looks automated to spam filters.

Step 6: Check List Quality

Your DNS is clean, reputation is good, content is solid, sending patterns are healthy -- but emails still bounce or go to spam? Your list is the problem.

  • Bounce rate above 3%: Every bounce damages your sender reputation. If your bounce rate is above 3%, stop sending and clean your list. Every email address must be verified through an email verification service (like BounceBan, ZeroBounce, or NeverBounce) before entering a campaign. Accept only 'deliverable' results with high confidence scores.
  • Catch-all domains: These accept all email regardless of whether the address exists, so they don't bounce. But many catch-all addresses are dead ends that never get read, dragging down your engagement metrics. Filter catch-all addresses aggressively -- only include them if you have high confidence the specific address is real.
  • Role-based addresses: info@, sales@, support@, team@ -- these go to shared inboxes that nobody monitors for cold email. They have low engagement and high spam complaint rates. Exclude all role-based addresses.
  • Stale data: People change jobs every 2-3 years on average. A contact list from 6 months ago could have 10-15% stale addresses. Re-verify emails before every campaign, not just when you first build the list.
  • Purchased lists: Lists from data brokers are the fastest way to destroy your sender reputation. They contain invalid addresses, spam traps, and contacts who will immediately report you. Build your own lists through research and verified enrichment.
26.77%
Microsoft Outlook inbox placement rate for cold email, Q1 2025

From Instantly's deliverability analysis. Gmail inbox placement is 45-55%. Microsoft is nearly half that. If your prospect base is heavy on Outlook and Microsoft 365 users (common in enterprise), you need a Microsoft-specific strategy.

The Microsoft/Outlook Problem

Microsoft deserves its own section because it's the single biggest deliverability challenge in cold email right now. While Gmail has gotten more strict, Outlook has become nearly impenetrable for cold senders. Only 26.77% of cold emails reach the Outlook inbox -- the rest go to Junk or are blocked entirely.

Why Microsoft Is Harder Than Gmail

  • No Google Postmaster Tools equivalent. Microsoft SNDS gives you IP reputation data, but nothing close to the domain reputation visibility Google provides. You're mostly flying blind.
  • Shared IP reputation penalties. If you're on a shared IP (common with Google Workspace), other senders on that IP affect your deliverability. Microsoft penalizes shared IPs more aggressively than Gmail.
  • Aggressive content filtering. Microsoft's SmartScreen filter is more aggressive than Gmail's spam classifier, especially for first-time senders to a domain.
  • DMARC alignment weighting. Microsoft places more weight on strict DMARC alignment (the 'From' domain must exactly match the SPF and DKIM domains). Relaxed alignment that passes Gmail often fails Microsoft.

Microsoft-Specific Fixes

  1. 1Split your infrastructure: Use Microsoft 365 mailboxes to send to Microsoft/Outlook recipients. Google Workspace to send to Gmail recipients. Microsoft-to-Microsoft has significantly higher inbox rates than Google-to-Microsoft.
  2. 2Fix DMARC alignment: Set aspf=r and adkim=r in your DMARC record (relaxed alignment). Then verify both SPF and DKIM show 'aligned' in email headers. Microsoft is more forgiving with relaxed alignment than with no alignment.
  3. 3Strip all HTML: Send plain text only to Microsoft recipients. No tracking pixels, no HTML formatting, no images. Microsoft's content filters penalize HTML in cold email more than Gmail does.
  4. 4Lower volume per mailbox: Maximum 20 emails/day per Microsoft 365 mailbox (vs. 30-40 for Gmail). Microsoft is more sensitive to volume from individual mailboxes.
  5. 5Verify warmup includes Microsoft: Some warmup networks are Gmail-heavy. If your warmup tool isn't sending/receiving from real Outlook.com and Microsoft 365 accounts, your Microsoft reputation isn't building. Ask your warmup provider what percentage of their network is Microsoft.

Diagnostic Flowchart

Use this table to quickly identify your most likely problem based on what you're observing.

SymptomMost Likely CauseFix
All emails going to spam immediatelyDNS misconfiguration (SPF/DKIM/DMARC failure)Run MXToolbox checks, fix DNS records
Was working, now going to spamSender reputation damagedCheck Google Postmaster Tools, reduce volume, wait 2-4 weeks
New domain, everything goes to spamNo warmup / insufficient warmupRun warmup for 14-21 days before sending campaigns
Gmail fine, Outlook all spamMicrosoft-specific filteringSplit infrastructure, use M365 mailboxes for Outlook recipients
Good opens but flagged as spam after openingContent triggers (links, images, HTML)Switch to plain text, remove links from first email
High bounce rate (>3%)Bad list quality / unverified emailsVerify every email through BounceBan or similar before sending
Sporadic spam -- some inbox, some junkInconsistent sending patterns or volume spikesStabilize daily volume, randomize send times, reduce per-mailbox volume

Frequently asked questions

How do I check if my emails are going to spam?

Three methods. First, send test emails to your own accounts at Gmail, Outlook, and Yahoo -- check if they hit Inbox or Spam/Junk. Second, use a service like mail-tester.com -- send an email to their test address and get a spam score (aim for 9/10+). Third, monitor your Google Postmaster Tools dashboard for spam rate (should be below 0.1%) and domain reputation (should be High). If you're using a cold email platform like Instantly or SmartLead, check their deliverability dashboard for inbox placement rates.

Will spam filters penalize me for using AI to write emails?

Gmail and Outlook are increasingly detecting AI-generated email patterns -- parallel sentence structures, generic value propositions, certain transition phrases that LLMs favor. The emails themselves aren't flagged specifically for being AI-generated, but the patterns that AI produces overlap with patterns spam filters already watch for. The fix: use AI for drafts, then heavily edit to add specific details, break up parallel structures, and inject your actual voice. Or write the email yourself and use AI only for refinement.

Should I disable open tracking for cold email?

Strongly consider it. Open tracking works by embedding an invisible 1x1 pixel image that loads when the email is opened. Some spam filters detect and penalize these tracking pixels. Apple Mail Privacy Protection loads all images automatically (inflating your open rates and providing false data). The practical value of open rate data has decreased significantly. Many top cold email practitioners disable open tracking entirely and use reply rate as their primary metric. If you keep it on, at least disable it for the first email in your sequence.

How long does it take to recover damaged sender reputation?

2-6 weeks of disciplined behavior. Drop to 10-15 emails/day per mailbox. Send only to highly targeted, verified contacts. Keep warmup running at full capacity. Remove any contacts who bounced or marked you as spam. After 2 weeks, check Google Postmaster Tools -- if reputation has moved from Low to Medium, gradually increase volume by 5 emails/day per week. Full recovery from Bad to High reputation can take 4-6 weeks. If your domain is on a blacklist, delist it first -- reputation recovery won't start until you're off the blacklist.

Is it better to use a subdomain or a separate domain for cold email?

Separate domain, always. If your primary domain is acme.com, use acme-mail.com or getacme.com for cold outreach. Subdomains (outreach.acme.com) share reputation with the parent domain -- if your cold email reputation drops, it can affect your transactional email and marketing email on acme.com. A separate domain creates a firewall. If the cold email domain gets damaged, your primary domain stays clean. Buy 2-3 alternate domains so you can rotate if one gets burned.

Why are my emails going to Gmail Promotions instead of Primary?

Promotions tab placement is caused by marketing-style formatting: HTML templates, multiple links, images, unsubscribe footers that look like newsletter footers, and promotional language. For cold email, this usually means your email looks too polished. Switch to plain text (no HTML at all), remove all images, keep to one link maximum, and write conversationally. The Promotions tab is less damaging than Spam -- people do check it -- but Primary inbox is where you get replies.

Want this built for your team?

We implement these systems end-to-end. First sends within 14 days.