Is It My List or My Domain? How to Diagnose Cold Email Bounces
Every cold email bounce is one of two things. Either the address is bad (a list problem), or the receiver refused you (a sender problem: your domain, IP or authentication). The bounce text usually says which. 550 5.1.1 user unknown is the list. 550 5.7.x, 421 4.7.x, "blocked", "reputation" or "DMARC" are the sender. Then check the spread: bad addresses scatter across many domains, while a sender block repeats the same text from one provider. The fixes are opposite, so diagnose before you change anything.
The 60-second version
| Signal | Points to the list | Points to the sender |
|---|---|---|
| Enhanced code | 5.1.1, 5.1.0, 5.1.10, Microsoft 365's 5.4.1 | 5.7.x, 4.7.x, 5.7.1 with "policy" or "spam" |
| Words in the bounce | "user unknown", "no such user", "mailbox unavailable", "does not exist" | "blocked", "reputation", "rate limited", "SPF", "DKIM", "DMARC", "spam" |
| Spread across recipients | Many domains, one or two bounces each | One provider (Microsoft, Yahoo, a gateway) for most bounces |
| Timing | Stable rate across campaigns from the same source | Sudden spike, often from one day |
| Opens and replies | Normal on delivered mail | Falling, even where nothing bounced |
| What a re-send does | Same addresses bounce again | Different addresses at the same provider bounce |
If your bounces mix both kinds, you have two problems. Fix the sender side first. A blocked domain makes every list look bad.
Step 1: get the actual bounce text
The bounce rate on your dashboard is not enough. You need the reply from the receiving server.
- In a cold email platform, open the bounced lead and look for the raw SMTP reply.
- In a mailbox, open the non-delivery report and copy the diagnostic line.
- For many bounces at once, pull them out with the bounced email extractor and sort them by code.
Paste a few into Bounce Doctor. It reads the code, says whether it is an address or a sender problem, and suggests the next step. The bounce message analyzer breaks down a full non-delivery report line by line.
Step 2: look at the spread
Group the bounces by recipient provider. You can find each domain's provider with the bulk email provider lookup.
- Many providers, "user unknown" everywhere: a list problem. Old exports, scraped data or guessed formats.
- Mostly Microsoft, with 5.7.x codes: a sender problem at Microsoft. See 550 5.7.606 banned sending IP, 451 4.7.650 rate limited and 550 5.7.509 DMARC.
- Mostly Yahoo and AOL, 421 4.7.0: Yahoo is deferring you. See Yahoo TSS04.
- One company domain, many bounces: usually a migration, Microsoft 365 edge blocking or a gateway. See bounces from one domain.
- Gateways (Proofpoint, Mimecast, Barracuda) with "blocked": a sender block at that gateway. See Proofpoint, Mimecast and Barracuda.
Step 3: three quick tests
Test A: verify a sample of the bounced addresses
Put 50 to 100 of the addresses that bounced through a verifier. If most come back invalid, the list was the problem. If most come back valid, the addresses are fine and the receivers refused you. The CSV email verifier handles a quick sample.
Test B: check your sending setup
Run the domain through the email domain health checker for SPF, DKIM, DMARC and MX, and the sending IP through the IP blacklist check. A missing DKIM record, a broken SPF include or a blocklist hit makes it a sender problem regardless of what the list looks like.
Test C: send to accounts you control
Send the same campaign from the same inbox to test addresses at Gmail, Outlook.com and a Microsoft 365 tenant if you have one. If those land in spam or bounce, the list is not the issue. Google's Postmaster Tools shows Gmail's view of your domain once you have enough volume.
When it is the list
Typical causes:
- Decay. B2B contact data goes stale as people change jobs. See B2B contact data decay.
- Old sequence steps. Step 4 goes out weeks after the list was checked. See why follow-up emails bounce.
- Guessed or pattern-built addresses that were never confirmed.
- Catch-all addresses sent as if they were valid. The server accepted everything during the check, then bounced the message later.
The fix:
- Stop the campaign while the bounce rate is high.
- Verify the remaining unsent leads, not just the ones that bounced.
- Suppress every hard bounce so no later step mails it again.
- Split catch-alls into their own slower segment. See what to do with catch-all emails.
- Resume at a normal pace. A list problem does not need a long recovery once the bad addresses are gone, unless the bounces were heavy enough to damage reputation too.
When it is the sender
Typical causes:
- Authentication missing or misaligned, especially on a sending tool you added recently.
- Reputation damaged by volume spikes, complaints or earlier list problems.
- A blocklist listing on your IP or domain.
- Content or links that filters dislike, including a shared tracking domain.
The fix:
- Stop or sharply cut volume to the provider that is refusing you.
- Fix the specific cause the bounce names: DNS records, a delisting request, a new tracking domain.
- Resume slowly, to your most engaged or freshest verified leads first.
- Watch bounces, complaints and placement daily for a couple of weeks. See sender reputation recovery.
Verifying the list again will not help here. That is the most common wasted week in cold email: cleaning a list that was never the problem.
When it is both
It often is. Bad lists damage reputation, and damaged reputation makes every send look worse. The order still matters:
- Stop sending.
- Fix authentication and request any delistings.
- Verify the list and suppress bounces.
- Resume slowly with the cleanest segment.
Our what to do after a high bounce rate post walks through the recovery in more detail, and why verified emails still bounce covers the cases where a clean list still produces bounces.
Three common misdiagnoses
- "Gmail is bouncing everything, so the list is bad." If the Gmail bounces say
550 5.7.26or421 4.7.28, Gmail is refusing your authentication or your rate, not the addresses. See Gmail bounce codes. - "Bounces are low, so the domain is fine." A domain can be landing in spam with almost no bounces. Falling reply rates on a list that used to work are a sender signal.
- "The verifier said valid, so it must be the domain." A verified list can still hold catch-alls sent as if they were confirmed, and addresses that died after the check. Look at which rows bounced before blaming either side.
Where SimpleVerifier fits
SimpleVerifier fixes the list side. It runs a live mailbox check on each address and returns safe to send, send with care, check again later or do not send, with the reason. Catch-alls stay risky, never valid, so your main campaign goes only to addresses a server confirmed. Domain monitoring (one sending domain on Starter, ten on Pro) also checks SPF, DKIM, DMARC, MX and blocklists daily, which covers part of the sender side.
The first 100 checks are free with a Google sign-in on the verify page. Pro is $39 a month with the first 100,000 checks a month at full speed, then slower, never cut off. See pricing.
Common questions
How do I know if bounces are caused by my list or my domain?
Read the bounce codes. Codes in the 5.1.x family and messages like 'user unknown' or 'mailbox does not exist' mean the address is bad, which is a list problem. Codes in the 5.7.x and 4.7.x families and messages mentioning blocks, reputation, policy, spam, SPF, DKIM or DMARC mean the receiver refused you as a sender, which is a domain or IP problem.
Can a verified list still bounce?
Yes. Verification removes addresses that do not exist on the day you check. It does nothing about sender blocks, and it cannot stop a mailbox being deleted after the check. Catch-all addresses can also bounce later, because the server accepted everything during the check.
What bounce rate means my list is the problem?
There is no single line, but platforms and mailbox providers start to react at low single-digit hard bounce rates. If hard bounces with 'user unknown' make up most of your bounces and the rate is above about 2%, the list needs cleaning before you send more.
My bounces are low but nobody replies. Is that a list problem?
Usually not. Low bounces with falling opens and replies points to spam-folder placement, which is about your domain, IP, content and sending pattern. Check authentication, blocklists and Google Postmaster Tools before you blame the list.
Should I switch to a new domain if my bounce rate is high?
Not before you know the cause. If it is a list problem, a new domain will be burned by the same list. If it is a sender problem, the cause (volume, content, authentication) usually follows you to the new domain too.
Check your list before you send
Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.