Emails go to spam for five main reasons: missing or broken authentication (SPF, DKIM, DMARC), a damaged sender reputation (high spam complaints, too many bad addresses), low recipient engagement, spammy content or formatting, and an IP or domain that is on a blocklist. Fix authentication first, since it is the single highest-leverage change and the one Gmail and Yahoo now require for all bulk senders. Then work down the list in order of impact. For a structured overview of all these factors together, see the email deliverability best practices guide.
The Five Causes, and Why Each Triggers Spam Filters
1. Failed or Missing Authentication
Spam filters check three DNS records before anything else: SPF, DKIM, and DMARC. For a full explanation of how each record works and what each one cannot do on its own, see What Is Email Authentication? SPF, DKIM, and DMARC Explained.
SPF (defined in RFC 7208) publishes the list of IP addresses allowed to send mail from your domain. If your sending server’s IP is not in that list, receiving servers treat the message as potentially spoofed. SPF is checked during the SMTP handshake itself, before the message body is read; see What Is SMTP? for how that conversation works.
DKIM (defined in RFC 6376) attaches a cryptographic signature to every message. The receiving server fetches your public key from DNS and verifies the signature has not been tampered with in transit.
DMARC (defined in RFC 7489) ties the two together: it tells receiving servers what to do when SPF or DKIM fails (none/quarantine/reject) and sends you aggregate reports on who is passing and failing.
Since February 2024, Google and Yahoo require all three records for anyone sending more than 5,000 messages per day to consumer addresses. Missing any of them means your mail is filtered or rejected.
2. High Spam Complaints
Every time a recipient clicks “Report spam,” your complaint rate ticks up. Google’s email sender guidelines set the operating target at below 0.10% and treat 0.30% or higher as a threshold where bulk senders lose access to mitigation support. The fix is removing disengaged subscribers before they complain, using clear sender names, and making unsubscribing easier than flagging.
3. Low Engagement and Poor List Quality
Spam filters score sender reputation partly on how recipients behave: do they open, reply, move messages to the inbox? When a large share of your list ignores or deletes without opening, filters learn that your mail is unwanted. Old or purchased lists are the usual culprit: they contain a mix of abandoned addresses, role accounts, and contacts who never asked to hear from you.
4. Spammy Content and Formatting
Filter content-scoring looks for patterns associated with bulk junk mail: all-caps subject lines, excessive punctuation (!!!), deceptive “Re:” or “Fwd:” prefixes on cold mail, image-heavy messages with almost no text, and misleading or hidden unsubscribe links. URL shorteners and third-party redirect domains also raise suspicion because they mask the real destination.
5. Blocklists and Infrastructure Problems
If your sending IP or domain has been listed on a blocklist such as Spamhaus, Barracuda, or SORBS, most receiving servers will reject or quarantine your mail automatically. New IPs that start sending high volume without a warmup period are especially prone to this: no sending history means no reputation, and filters default to skeptical.
How to Fix It: A Prioritized Checklist
Work through these in order. Authentication alone resolves most problems for senders who skipped DNS setup. The later items matter most once the fundamentals are correct.
Step 1: Authenticate Your Domain (SPF + DKIM + DMARC)
Add an SPF record listing your sending IPs, enable DKIM signing in your sending platform, and publish a DMARC record starting at p=none so you can review reports before tightening the policy. Use Google Admin Toolbox or MXToolbox to verify all three records resolve correctly.
See the full walkthrough: How to Set Up DMARC.
Step 2: Add One-Click Unsubscribe
Gmail and Yahoo require List-Unsubscribe and List-Unsubscribe-Post headers on marketing mail (RFC 8058 defines the one-click POST mechanism). Honoring unsubscribe requests within two days is a hard requirement. One-click unsubscribe is not required for transactional mail (receipts, password resets).
Step 3: Suppress Bad Addresses and Segment Disengaged Contacts
Remove hard bounces immediately. Suppress role addresses (info@, noreply@, support@). Identify subscribers who have not opened in 90-180 days and either run a re-engagement campaign or remove them before they start complaining. For the correct retry and suppression logic based on SMTP reply codes, see the soft bounce vs. hard bounce handling guide.
Step 4: Use Double Opt-In for New Subscribers
Requiring a confirmation click before adding someone to your list filters out typos, bots, and disinterested sign-ups. The subset of contacts who do not complete confirmation were never going to engage anyway, so the smaller list that results is cleaner and less likely to generate complaints.
Step 5: Warm Up New Domains and IPs
A new sending domain or dedicated IP has no reputation. Start with a low daily volume (50-200 messages), send only to your most engaged contacts, and increase by roughly 20% per day. Most providers complete warmup in 30-60 days. Ramping faster skips the reputation-building phase that mailbox providers rely on.
Step 6: Fix Content Red Flags
- Keep the From name consistent and recognizable
- Avoid all-caps subject lines and excessive punctuation
- Use a real reply-to address, not noreply@
- Include a plain-text version alongside HTML
- Avoid URL shorteners; link directly to your domain
- Do not use misleading subject lines (pretending to be a reply, for example)
Step 7: Monitor Reputation and Blocklists
Google Postmaster Tools shows spam rate and authentication pass rates for mail going to Gmail. MXToolbox and Talos Intelligence check whether your IP or domain is on major blocklists. Check both after any significant send to catch problems before they compound.
Cause-to-Fix Reference
| Cause | Signal | Fix |
|---|---|---|
| Missing SPF/DKIM/DMARC | Authentication failures in Postmaster Tools | Add DNS records; verify with MXToolbox |
| High spam complaint rate | Postmaster Tools spam rate above 0.10% | Suppress disengaged contacts; simplify unsubscribe |
| Bad addresses / bounces | Hard bounce rate above 2% | Remove bounces; use double opt-in |
| No domain warmup | Sudden spike in rejections on new IP | Ramp volume gradually over 30-60 days |
| Content flags | Junk-mail patterns in subject or body | Fix formatting; use consistent sender name |
| Blocklist entry | MXToolbox shows active listings | Request delisting; fix underlying issue first |
Transactional vs. Marketing Email: Different Risk Profiles
Transactional email (order confirmations, password resets, account alerts) and marketing campaigns behave differently in spam filters.
Transactional mail is triggered by a specific user action, so complaint rates are naturally low and engagement is high. The one-click unsubscribe requirement does not apply to transactional mail. However, transactional mail still needs SPF and DKIM; authentication failures land any message in spam regardless of type.
Marketing campaigns carry higher spam risk because they go to large lists, may include recipients who have cooled on the product, and compete with dozens of other promotional messages in the same inbox. The 0.10% complaint rate target applies most directly here.
If you send both types, use separate sending domains or subdomains (mail.yourdomain.com for marketing, notifications.yourdomain.com for transactional). A reputation problem on your marketing domain will not drag down transactional deliverability. If you are evaluating infrastructure, choosing a provider with strong deliverability infrastructure handles much of the warmup and authentication scaffolding for you.
Frequently Asked Questions
Why do my emails only go to spam in Gmail, not other providers?
Gmail uses its own proprietary filtering algorithms and weights its signals differently from Outlook, Yahoo, or Apple Mail. A common cause of Gmail-specific filtering is a DMARC policy set to p=none that is passing but not aligned, or a spam complaint rate that has crept above 0.10% specifically for your Gmail recipients. Check Google Postmaster Tools for Gmail-specific spam rate data that Outlook and other providers do not expose.
Do single, one-on-one emails get marked as spam?
Spam filters treat individual messages differently from bulk sends. A single personalized email from a domain with good authentication and no blocklist entry almost always reaches the inbox. Problems arise when you send the same message to hundreds of recipients, or when your sending IP has been flagged for bulk junk mail by other users of a shared infrastructure. If individual emails from your personal or business account land in spam, check your domain’s DMARC record and whether your IP is on a blocklist.
How long does it take to recover sender reputation?
Recovery depends on how badly it was damaged. A single campaign that generated elevated complaints can recover in two to four weeks of clean sending with low complaint rates. Sustained high bounce rates or multiple blocklist entries typically take four to eight weeks of disciplined remediation, and severe cases can take three to six months. The fastest path is to fix the root cause first (usually authentication or a dirty list) and only then ramp volume back up.
Will buying a new domain fix my spam problem?
Not reliably. A new domain solves a reputation problem on the old one, but it comes with no reputation at all, which means filters treat it with even more suspicion by default. You still need to authenticate the new domain, warm it up gradually, and send only to clean, engaged contacts. If the underlying problem was list hygiene or missing authentication, switching domains without fixing those will land you back in spam within a few sends.
How do I test whether my email lands in spam before sending?
Tools like Mail-Tester (mail-tester.com), GlockApps, and Litmus can send your message to seed addresses across major providers and report where it landed. Google’s Admin Toolbox verifies DNS records. MXToolbox checks blocklist status. For ongoing monitoring, set up Google Postmaster Tools on any domain you send from; it is free and shows spam rate trends over time.
What is the spam complaint rate threshold I should stay below?
Google’s sender guidelines set the operating target at below 0.10%. Rates at or above 0.30% result in filtering consequences and loss of mitigation support. Yahoo applies a similar 0.3% threshold. In practice, keeping your complaint rate below 0.08% leaves a safe margin. Postmaster Tools reports this rate for Gmail; you can track it daily once your domain is registered there.
I’ve spent my career building software at scale with a soft spot for email: deliverability, lifecycle campaigns, and getting messages to actually land. I started Coldletter to fix what bugged me about transactional and marketing email tools. I’m based in Vancouver.
