DEV Community

Nilesh M
Nilesh M

Posted on

Why your cold emails are landing in spam (and how to actually fix it)

You wrote a good email. You checked the spelling. You hit send on 200 of them this morning. And somehow, most of them are sitting in a folder nobody opens.

If you have ever wondered why your emails go to spam with no warning and no explanation, you are not imagining it and you are not alone. Cold email deliverability is not one setting you flip on. It is six or seven small things, and mailbox providers do not tell you which one you got wrong. This guide walks through every real cause, in the order worth checking, with a free way to test each one.

Quick answer

Most cold email lands in spam for one of six reasons: a missing or broken SPF, DKIM or DMARC record; a new domain or inbox that never warmed up; wording that trips spam filters; sending too many emails too fast from too few accounts; a bounce or complaint rate that is already too high; or no real one-click unsubscribe. Fix the technical record first, then warm up, then watch your pace and your numbers.

1. Your SPF, DKIM or DMARC record is missing or broken

This is the most common cause, and the easiest to check.
SPF (Sender Policy Framework) is a DNS TXT record that lists which mail servers are allowed to send email for your domain. When a message arrives, the receiving server looks at the envelope sender domain, the address used in the SMTP MAIL FROM command, fetches the SPF record for that domain, and checks whether the sending IP is listed. If it is not, and the record ends in -all, the message typically fails and gets rejected or spam foldered. SPF records also have a hard limit of 10 DNS lookups. Stack enough include: statements from different tools and you can quietly blow past that limit without any error message.

DKIM (DomainKeys Identified Mail) adds a cryptographic signature to every message you send. The receiving server checks that signature against a public key published in your DNS. If the message was altered in transit, or the signature does not match, DKIM fails.

DMARC (Domain-based Message Authentication, Reporting and Conformance) is the layer that ties the two together. It tells receiving servers what to do when SPF or DKIM fails on a message claiming to be from your domain, and it is checked against the visible From header, the address a recipient actually sees, not the hidden envelope address SPF checks. A domain can pass SPF and still get flagged if DMARC alignment fails.

Most people set up SPF once, when they first configure their sender, and never check it again. Then they add a new tool, a new subdomain, or a new sending platform six months later and the record silently breaks.

Check yours for free: SPF checker · DKIM checker · DMARC checker

2. You're sending from a domain or inbox that never warmed up

A brand-new domain, or a new mailbox on an old domain, has no sending history. Mailbox providers do not know if you are a real person or a spam operation on day one, so they place mail from unknown senders with extra caution, regardless of how clean your SPF and DKIM are.

A gradual warmup, typically 2 to 4 weeks, spread across a slowly increasing daily volume, is what builds that reputation before you send at full scale. Skip it and send 500 cold emails from a domain that is three days old, and you will likely see most of them land in spam even though nothing is technically misconfigured.

Build a warmup schedule for your target volume: Warmup schedule generator

3. Your email reads like spam to content filters

Spam filters score the actual words, formatting and structure of your message, separately from your domain's reputation. All caps in a subject line, certain phrases mailbox providers associate with spam, excessive links, image-only bodies, or a mismatch between your display name and your actual sending domain, all raise that score.

None of this is guesswork you have to do by eye. A spam word checker scans your subject and body against known trigger patterns before you send, the same category of check a filter would run on the other end.

Scan your draft before sending: Spam word checker

4. You're sending too many emails, too fast, from too few accounts

Every mailbox provider enforces a sending cap, and it exists for exactly this reason: a sudden burst of outbound mail from one account is the clearest signal of automated sending a filter can see. Google Workspace paid accounts, for example, are capped at 2,000 messages per user per 24 hours, and that is a ceiling, not a target. All providers can throttle you below their published cap if your bounce rate climbs above roughly 5 percent or your complaint rate above roughly 0.1 percent, so the practical safe volume is often lower than the number on the page.

Spacing sends at a human pace, and rotating across multiple sender accounts instead of pushing everything through one, keeps you well inside those limits instead of testing them.

See the real caps for your provider: ESP sending limits reference

5. Your bounce or complaint rate is already too high

This compounds every other problem on this list. A high bounce rate usually means your list has stale or invalid addresses. A high complaint rate means real people are marking your mail as spam, which mailbox providers weight far more heavily than a simple unsubscribe. Once either number climbs, providers start routing more of your mail to spam by default, on top of anything else already working against you, and that reputation damage does not reset the moment you fix the underlying cause.

Verifying your list before you send, and keeping an eye on your infrastructure score as a whole, catches this before it becomes a reputation problem.

Check your overall score: Email infrastructure grader

6. You don't have a working one-click unsubscribe

Gmail and Yahoo both require bulk senders to support one-click unsubscribe (RFC 8058), and mail that does not comply gets penalized independent of everything else. Beyond the compliance angle, a real unsubscribe link reduces the single strongest negative signal you can send: someone hitting spam instead, because leaving your list was harder than that one click.

The six-cause checklist

Broken SPF, DKIM or DMARC. Check it with a free checker, takes seconds. Fix it by correcting the DNS TXT records with your domain host.

No warmup on a new domain or inbox. Check it by comparing domain or inbox age against your sending volume. Fix it with a 2 to 4 week gradual warmup schedule.

Spam-triggering wording. Check it by running your draft through a free spam word scanner. Fix it by rewriting the subject line and any flagged phrases.

Sending too fast from too few accounts. Check it by comparing your volume to your provider's caps. Fix it by throttling sends and rotating sender accounts.

High bounce or complaint rate. Check it by verifying your list and reviewing your infrastructure score. Fix it by cleaning your list and slowing down while you rebuild reputation.

No real unsubscribe. Check it by clicking it yourself. Fix it by adding a one-click unsubscribe that complies with RFC 8058.

Frequently asked questions

Why do my emails go to spam even though I didn't do anything wrong? Deliverability is rarely one mistake. A domain can have a correct SPF record and still get spam foldered because of sending volume, wording, or a stale SPF record that broke after you added a new tool months ago. Check all six causes above rather than assuming it is just one.

What is the difference between SPF, DKIM and DMARC? SPF authorizes which servers can send for your domain. DKIM cryptographically signs the message so it cannot be altered in transit without detection. DMARC is the policy layer that ties both together and tells receiving servers what to do when either check fails, evaluated against the domain a recipient actually sees in their inbox.

How long does email warmup take? Typically 2 to 4 weeks of gradually increasing volume before sending at full scale, though the right length depends on how much daily volume you are warming up toward.

How many cold emails can I send per day without hurting deliverability? It depends on your provider and your account's age and reputation, not a single universal number. Google Workspace paid accounts cap at 2,000 per user per 24 hours, but providers throttle well below their published cap once bounce rate or complaint rate climbs, so the safe practical number is usually lower than the ceiling.

Is there a free way to test cold email deliverability before sending a full campaign? Yes. Checking SPF, DKIM and DMARC, scanning your draft for spam-triggering wording, and reviewing your infrastructure as a whole are all free checks you can run before a campaign goes out, rather than finding out after open rates come back low.

Where to start

If you have not checked your domain in the last few months, start with SPF, DKIM and DMARC. It is the fastest of the six to check and the most common cause of silent, unexplained spam foldering.

EmailQo checks your domain, your sending account and every message you write before it sends, then sends at a safe, human pace instead of leaving that up to guesswork. Start a 7-day free trial, no card needed.

Top comments (0)