Why your cold emails are bouncing (and what the rate should be)
We measured 2,900 sends: 1.1% bounce to Gmail, 15.1% to scraped business domains. The problem is almost never your domain — it's dead mailboxes.
If your bounce rate is above 5%, most advice will tell you to look at your sending domain — warm it up, add a subdomain, spread across more domains. That advice is usually wrong, and it’s expensive, because it treats a list problem as an infrastructure problem.
What the numbers actually look like
We pulled every email event from our own platform over about 2,900 sends and split the bounces by who was receiving them:
| Recipient | Sent | Bounced | Rate |
|---|---|---|---|
| gmail.com | 1,095 | 12 | 1.1% |
| outlook / hotmail | 92 | 2 | 2.2% |
| yahoo / aol | 67 | 0 | 0% |
| business domains | 1,654 | 250 | 15.1% |
Same sending domains. Same days. Same volume. A fourteen-fold difference in outcome, decided entirely by who was on the other end.
Why that rules out a domain problem
Gmail is the strictest, most reputation-sensitive receiver in the business. If a sending domain is being over-used or is developing a bad reputation, Gmail throttles it first and hardest — that’s the canary.
Gmail was accepting our mail at 1.1%, which is a healthy sender number. So the sending reputation was fine, and the bounces were coming from somewhere else entirely: the addresses themselves.
We checked volume too. If a domain were being rate-limited, the heaviest days should be the worst days. They weren’t — the two highest-volume days scored 4.9% and 10.1%, while the worst-rate days were tiny samples of four sends.
Where the dead addresses come from
Scraped business email is the culprit, and it’s structural rather than careless:
info@andcontact@outlive the businesses that made them. A company reorganises, moves to a new domain, or stops monitoring the alias — the website still lists it for years.- Websites go stale. The address on a contact page can easily be a decade old.
- Catch-alls lie. Some domains accept everything at the SMTP layer, then bounce or silently discard later, so a live-looking address can still fail.
None of that is visible until you send. Which is exactly why sending is the wrong way to find out.
What a healthy rate looks like
- Under 2% — good. Gmail’s own guidance treats this as the comfortable band.
- 2–5% — worth attention; usually list age.
- Over 5% — actively spending reputation. Providers start deferring, then filtering to spam, then rejecting outright.
What actually keeps the rate down
Verify before you send. A bulk verification service checks whether a mailbox exists without delivering anything, for a fraction of a cent per address. It’s the single biggest lever — if you do nothing else, do this.
It isn’t a one-time job, though, and that’s where most people underestimate it:
- Lists decay continuously. An address verified today is a guess in six months. Anything sitting in a pipeline needs re-checking before it’s used.
- Suppression has to be global and enforced everywhere. A hard bounce means never contacting that address again from any campaign, sequence or follow-up — one shared list, checked at every path that can send. Miss one and the same dead address goes out again next month.
- Catch-all domains defeat verification. They accept everything at the SMTP layer, so a checker reports “valid” and the message bounces later anyway. Those need judging on other signals.
- It has to fail open. A verification outage that halts every campaign is worse than the bounces it would have prevented, so the whole thing needs a sensible degraded mode.
None of that is hard in isolation. It’s just permanent — a standing operational job that runs every day whether anyone is watching it or not, on top of actually writing and sending the outreach.
What not to do
Don’t spread the same list across more domains. A fresh domain has no reputation to absorb a 15% bounce rate — you’ll damage the new domain faster than the old one, and now you have two problems. Domain strategy is worth thinking about when you’re running many clients or many brands. It is not a bounce fix.