Why your emails go to spam in Gmail
Gmail decides spam primarily on per-domain recipient engagement (opens, replies, archives-without-reading, 'mark as spam') scored by a continuously-learning ML model, gated behind hard authentication and complaint-rate thresholds from its 2024 bulk-sender rules.
Causes and fixes
1. You exceed the bulk-sender complaint-rate threshold. Since Feb 2024 Gmail requires senders over ~5,000 messages/day to a domain to keep the Postmaster Tools spam-complaint rate below 0.3%, and ideally under 0.1%. Cold email naturally generates 'mark as spam' clicks, so a campaign blowing past 0.3% gets the whole sending domain throttled to spam.
Fix: Watch the User-Reported Spam Rate dashboard in Postmaster Tools daily and treat 0.1% as your ceiling, not 0.3%. Cut list size the moment it climbs, suppress non-openers/non-responders aggressively, and make the unsubscribe path more obvious than the spam button so unhappy recipients opt out instead of complaining.
2. Missing or misaligned authentication trifecta. Gmail's bulk rules mandate SPF AND DKIM passing AND a DMARC record (even p=none) with the From domain aligned to the DKIM/SPF domain. Cold-email tools that send from a subdomain or shared IP without aligned DKIM fail DMARC alignment and get filtered or rejected outright.
Fix: Publish SPF, sign with DKIM using a key on your own sending domain, and add a DMARC record with alignment. Verify alignment by sending a test to a Gmail account and checking 'Show original' shows SPF, DKIM, and DMARC all PASS. Set up a custom Return-Path (envelope-from) on your subdomain so SPF aligns.
3. Low positive-engagement signal. Gmail's spam model heavily weights replies, stars, moving-to-inbox, and time-spent-reading. Cold emails to people with no prior relationship get archived or deleted unread, starving the domain of the positive signals Gmail uses to keep you in the Primary tab.
Fix: Send hyper-relevant, reply-prompting first lines and ask a genuine question that earns a response. Warm the domain by seeding conversations with engaged contacts who reply and move you to Primary. Prune anyone who hasn't opened in 2-3 sends so the engaged ratio stays high.
4. Cold domain/IP reputation in Postmaster Tools. Gmail tracks Domain Reputation and IP Reputation separately; a brand-new sending domain with no history defaults to low/'Bad' reputation, and a sudden volume spike from it looks like a spam cannon.
Fix: Register the sending domain 4-8+ weeks before campaigns, verify it in Postmaster Tools, and ramp volume gradually (warmup) over 2-4 weeks instead of blasting day one. Keep volume steady day-over-day; Gmail penalizes spiky sending patterns more than consistent volume.
5. Spammy content and link patterns the classifier recognizes. Gmail's content model flags link shorteners, mismatched display-vs-actual URLs, tracking-pixel-heavy HTML, image-only emails, and open-tracking redirect domains with bad reputation - all common in cold-email tooling.
Fix: Send plain-text-leaning emails with one clean link to a reputable domain, drop URL shorteners, and host any tracking on a domain with its own good reputation. Avoid image-only messages and keep the HTML-to-text ratio reasonable; a near-plaintext cold email both renders trustworthy and dodges the content classifier.
6. No one-click unsubscribe header on bulk sends. Gmail's bulk rules require a working List-Unsubscribe header with one-click (RFC 8058) for senders over the 5k/day threshold; its absence is itself a deliverability demotion and pushes frustrated recipients to the spam button instead.
Fix: Add both List-Unsubscribe and List-Unsubscribe-Post: List-Unsubscribe=One-Click headers, honor opt-outs within 2 days, and confirm Gmail renders the native 'Unsubscribe' link next to your From name. This caps complaint rate at the source by giving recipients a frictionless exit.
7. Shared-IP contamination from other senders. Many cold-email platforms send over shared IP pools; one bad actor on the same IP tanks the shared IP reputation in Gmail's eyes and drags your mail to spam regardless of your own hygiene.
Fix: Move to dedicated IPs (or a reputable pool you control) once volume justifies it, and use per-domain subdomains so reputation accrues to you. Monitor IP Reputation in Postmaster Tools; if a shared IP shows 'Bad/Low', migrate off it.
Gmail specifics
- Postmaster Tools is the authoritative Gmail signal source: monitor Domain Reputation, IP Reputation, Spam Rate, Feedback Loop, and Authentication dashboards - you must verify the domain there to see any data.
- User-Reported Spam Rate must stay under 0.3% (hard bulk-sender limit) and ideally under 0.1%; it's calculated only against Gmail-delivered mail.
- Gmail FBL is identity-based via a Feedback-ID header - set it to segment complaints by campaign/stream inside Postmaster Tools.
- The 2024 bulk-sender rules (SPF+DKIM+DMARC alignment, one-click unsub, <0.3% complaints) are enforced thresholds, not guidelines.
- Tab placement (Primary vs Promotions vs Spam) is engagement-driven; replies and 'move to Primary' are the strongest positive signals.
Fix Gmail deliverability for good.
Scheduler Zero handles authentication, warmup, and reputation so your cold email reaches the Gmail inbox, not the spam folder.