Why is my cold email bounce rate high?
Bounce rate is a property of the list, not the email. If a meaningful share of your sends hard-bounce, those addresses were never deliverable: the domain no longer exists, the address was mistyped, or it was fabricated by a scraping tool.
The diagnostic is mechanical. Take the bounced addresses, group them by domain, and check which of those domains have no mail server at all. That single step usually explains the majority of a bad bounce rate.
1. Dead domains (the big one)
Scraped and purchased lists are full of domains that expired or never existed. A domain with no MX record cannot receive mail from anyone — the send fails immediately and is recorded as a hard bounce. These are the cheapest failures to find, because a DNS lookup answers the question without contacting the mailbox at all.
2. Domain typos
gmial.com, gmail.co, hotmial.com, outlok.com, yaho.com, .con instead of .com. A typo'd domain usually resolves to nothing, or worse, to a parked domain that accepts mail and silently drops it — the second case doesn't even show as a bounce.
3. Role and shared addresses
info@, sales@, support@, noreply@. These usually deliver, so they don't inflate bounce rate — they inflate complaints, because nobody reads them and the first person to notice marks you as spam. Different metric, same list hygiene problem.
4. Guessed patterns
Tools that build first.last@domain from a name and a company domain are guessing. When the pattern is wrong the address doesn't exist, and if the domain uses a catch-all, the mail is accepted and vanishes. There is no client-side way to distinguish catch-all acceptance from a real mailbox; only a sending test reveals it.
5. Mailbox-level problems you can't see from outside
Full mailbox, disabled account, or a provider that rejects unknown senders. These require an SMTP conversation to detect, which most bulk verifiers do and a browser-only tool deliberately does not. Be honest about the boundary: MX checking removes dead domains and typos, it does not prove a mailbox exists.
The order that saves the most money
Dedupe, normalise, repair typos, then drop domains with no MX. That sequence removes the largest, cheapest-to-detect failure class before you spend anything on per-address verification. Run the survivors through a mailbox-level verifier only if your volume justifies the per-email cost.
Check your own list in about 30 seconds. Paste or drop a CSV — duplicates, typos, role addresses and dead domains, all handled in your browser. Free for the first 100 addresses, $19 once for unlimited.
Open the toolCommon questions
What bounce rate is dangerous?
Policies vary by provider and are not published as a single number. Most sending platforms start warning in the low single digits and throttle or suspend well before ten percent. Treat anything above a couple of percent as a list-quality signal rather than noise.
Does removing bad addresses actually improve deliverability?
Yes, but only relative to what you were doing before. Sending to a smaller, cleaner list removes hard bounces and drops complaint rates, and complaint rate — not bounce rate — is the number Google publishes guidance on.
Last updated 2026-10-23.