Home/Email Deliverability
Email Deliverability

Soft vs Hard Bounce Email: What's the Difference?

Ignore the difference and your domain is toast. Here's how to actually handle both.

Bounce Rate Diagnostic
Is Your Campaign Damaging Your Sending Domain?
Enter your last campaign's numbers. Get an instant read on your domain risk.

Total Bounce Rate -
Hard Bounce Rate
-
-
Soft Bounce Rate
-
-
Complaint Rate
-
-
Est. Bad Addresses
-
addresses to suppress now
-
-

Why Bounces Matter More Than Most People Realize

Most cold emailers obsess over open rates and reply rates. Bounce rates? They treat those as a footnote. That's a mistake that will cost you your sending domain - sometimes permanently.

Every time an email bounces, your ESP registers it. Enough bounces and you're getting throttled, flagged, or banned outright. And it doesn't take a catastrophic list to trigger the damage. A few hundred bad addresses in a 10,000-send campaign can quietly erode the reputation you spent weeks building during warmup.

Here's the compounding effect nobody talks about: a single hard bounce signals poor list hygiene to inbox providers. A pattern of hard bounces triggers throttling, then spam folder placement, then domain-level blocking. By the time your open rate collapses, the damage to your sender reputation may already require weeks of recovery work.

So before you touch another campaign, you need to understand the two types of bounces - what they mean, why they happen, and what your actual next move is for each one.

What Is a Hard Bounce?

A hard bounce is a permanent delivery failure. The email is never going to reach that address, no matter how many times you retry. The receiving server sends back a definitive rejection - usually a 5xx SMTP error code - and that's the end of it.

Common causes of hard bounces:

When you get a hard bounce, remove that address from your list immediately. There is no scenario where resending makes sense. Retrying wastes resources and signals to ISPs that you're not managing your list. Leaving hard-bounced addresses on your list is like mailing to a demolished building - your postal carrier (the ISP) is going to get sick of you fast.

What Is a Soft Bounce?

A soft bounce is a temporary delivery failure. The email actually reached the recipient's mail server - but the server couldn't deliver it at that moment for a fixable reason. Most sending platforms will automatically retry delivery over the next 24-72 hours before giving up.

Common causes of soft bounces:

Soft bounces don't require the same immediate panic as hard bounces. But don't ignore them either. If the same address soft bounces across multiple campaigns, ESPs will start treating it like a hard bounce - and so should you.

Free Download: Email Verification Guide

Drop your email and get instant access.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →

Hard Bounce vs Soft Bounce: Side-by-Side

Here's the core distinction laid out simply:

The SMTP error codes tell you which you're dealing with. Hard bounces are 5xx codes - the receiving server is telling you the message will not be accepted, period. Soft bounces are 4xx codes - the server is saying "not now, try again later." Your sending platform should classify these automatically, but knowing the codes helps you diagnose deeper infrastructure issues when something looks off.

One nuance worth understanding: not all 4xx codes are created equal. A 452 error (mailbox full) on the same address across three consecutive campaigns is a signal that the mailbox is abandoned. The account still technically exists, but nobody is checking it - so the inbox fills up and never clears. After two or three consecutive soft bounces of this type, treat it like a hard bounce and suppress it. It's effectively dead.

SMTP Bounce Codes Explained

Your ESP abstracts most of this for you, but when you need to go deeper into delivery logs, here's what the codes actually mean:

4xx Soft Bounce Codes

5xx Hard Bounce Codes

One important distinction: the 500-504 range points to a configuration problem on your side, not a list quality problem. If you're seeing those codes, check your sending infrastructure before suppressing recipient addresses.

ESPs sometimes classify the same underlying code differently. One platform might call a 550 5.7.1 a "hard bounce" while another labels it a "reputation bounce" or "blocked." The raw SMTP code is what actually matters for diagnosing the root cause - so if your platform gives you access to bounce logs, use them.

What Bounce Rates Are Actually Acceptable?

The widely accepted benchmark for cold email is to keep your total bounce rate under 2%. But the real picture is more granular than a single number.

Here's a practical framework:

Keep your hard bounce rate specifically under 0.5% if you want to stay in the safe zone. A 4% total bounce rate made up mostly of soft bounces from temporary server issues is a very different problem than a 4% total bounce rate with 3% of that being hard bounces. The first is annoying. The second is a list quality emergency.

For context on where most senders actually land: the average bounce rate across cold email campaigns sits in the 7-8% range across the industry. That's far too high. Top-performing senders keep their bounce rate under 1.5% - they do that by verifying emails before sending, not after they've already taken the reputation hit.

One more number to watch alongside bounce rate: your spam complaint rate. Keep it under 0.3% - cross that threshold and your domain gets flagged by Gmail and Microsoft. Bounces and complaints compound each other. A high bounce rate lowers inbox placement, which leads to more spam folder placements, which leads to more complaints, which further damages your domain. The damage is exponential, not linear.

If you want a real-time view of where your campaigns stand, the Cold Email Tracking Sheet I put together tracks bounce rates alongside reply rates and meetings booked in one place - worth using if you're running multiple sequences.

Need Targeted Leads?

Search unlimited B2B contacts by title, industry, location, and company size. Export to CSV instantly. $149/month, free to try.

Try the Lead Database →

Why Your List Quality Is the Real Issue

Most hard bounces are data failures, not technical failures. You're sending to bad addresses because your list is bad. This happens for a few reasons:

B2B contacts decay fast. Average B2B contact data decays somewhere between 22.5% and 30% per year - and in fast-moving sectors like tech startups, the decay rate is even higher because employee tenure tends to be shorter. A list that was clean six months ago has already degraded. This is why verification isn't a one-time task. It's part of every campaign workflow.

There's also the catch-all problem. Catch-all domains are configured to accept any email address format, which means your validation tools will mark those addresses as "valid" - but they carry a meaningfully higher bounce risk. Standard verification tools often can't tell you whether a specific address at a catch-all domain is real or not. Elite senders either avoid catch-alls entirely or treat them as a separate, riskier segment that they approach at lower volumes.

Nearly half of all bounces come from bad email data. Fix the data, and you fix the bounce problem at the source - before it ever damages your sending reputation.

Before you send anything at scale, run your list through an email validator. This email verification tool checks addresses against live mailboxes to flag invalids, catch-alls, and high-risk entries before they ever hit your sending queue. Tools like Findymail also do solid verification on the front end if you're pulling contacts from LinkedIn.

For a deeper walkthrough on what to check before every send, take a look at the Email Verification Guide - it covers the full process from list sourcing to final validation.

How to Actually Fix Your Bounce Problems

For Hard Bounces

Remove immediately and don't look back. Create a suppression list in your sending tool and make sure those addresses never get contacted again. Most platforms like Instantly and Smartlead handle this automatically - verify your bounce handling settings are active before launching any new sequence.

Then diagnose where the bad addresses came from. If one specific segment or data source is generating disproportionate hard bounces, cut it. Your data provider may just not be accurate for that niche or geography. If you're seeing a cluster of 556 errors from a single domain, suppress all contacts at that domain - not just the one that bounced.

One special case: if you're seeing a lot of 550 5.7.1 codes, that's not a list problem - that's a sender reputation problem. It means receiving servers are actively blocking mail from your domain, not just rejecting individual invalid addresses. That requires a different response: check your blacklist status, review your authentication records, and slow down sending volume while you diagnose.

For Soft Bounces

Watch, don't panic. Most soft bounces resolve within 72 hours as your platform retries. What you're looking for is patterns:

Fix Your Authentication First

A surprising number of soft bounces - and some hard bounces - come from broken email authentication. SPF, DKIM, and DMARC are non-negotiable now. Gmail and Yahoo actively reject mail from non-compliant domains. Microsoft followed with equivalent enforcement requirements. If your authentication records are missing or misconfigured, you can soft-bounce or hard-bounce a large percentage of your emails to those providers, regardless of how clean your list is.

Check your records using MXToolbox or Google's own Postmaster Tools. If you haven't set these up properly, do it before anything else. Authentication failures show up as 550 5.7.26 or similar 5.7.x codes in your bounce logs - those are fixable on your side, not your list's side.

What to Do When Your Bounce Rate Spikes Mid-Campaign

If you're mid-campaign and your bounce rate suddenly climbs past 5%, here's the recovery sequence:

  1. Pause the campaign immediately. Don't keep sending while the domain is bleeding reputation.
  2. Re-verify your remaining list before resuming. Run every uncontacted address through verification.
  3. Resume at 50% of your previous send volume with only verified addresses.
  4. Monitor for 48 hours before ramping back up.

The instinct is to push through and let the campaign finish. Resist it. Continuing to send against a damaged domain makes the hole deeper. Pausing and cleaning takes a day - recovering a blacklisted domain takes weeks.

Protect Your Primary Domain

Send cold email from secondary domains, not your main business domain. If a cold email campaign tanks your sender reputation, you want that to stay contained. Running outreach from alex@alexberman.com instead of a dedicated sending domain like alex@alexb.co is a single point of failure that can wipe out all your transactional and marketing email too.

Distributing sends across multiple domains within a properly built infrastructure prevents any single domain from being overloaded and triggering spam filters. The general guidance is to start new sending domains slow - 5-10 emails per day initially, then gradually increasing over several weeks - so inbox providers learn to trust the domain before you scale.

The full infrastructure setup - domains, inboxes, warmup, sending limits - is something I break down inside my Cold Email Tech Stack guide. Worth reading before you scale anything.

How Your ESP Handles Bounces (And Where to Check)

Most cold email platforms handle bounce classification and suppression automatically - but the defaults aren't always set up correctly out of the box, and they don't all behave the same way.

In Instantly, bounce handling is managed at the campaign level. Hard-bounced addresses get removed from active sequences automatically. Check that "remove bounced contacts" is turned on in your campaign settings, and review your bounce report after the first few hundred sends in a new campaign.

In Smartlead, the platform tracks bounce rates per sending account. If a specific inbox starts generating high bounces, Smartlead will flag it. You want to be watching this dashboard, not just the campaign-level metrics.

The key thing to verify in any platform: are hard bounces being added to a master suppression list that applies across all your campaigns? Or are they only suppressed in the campaign where they occurred? A contact that hard bounced in Campaign A should never be contacted in Campaign B either. If your platform isn't handling cross-campaign suppression automatically, you need to manage a master suppression list manually and import it into every new sequence.

If you're using a CRM like Close alongside your email tool, make sure bounce data is flowing back into your contact records there too. Nothing is more frustrating than having a rep call a prospect whose email already hard bounced - it's a data hygiene signal that the contact record itself may be stale.

Free Download: Email Verification Guide

Drop your email and get instant access.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →

Start With Better Data to Avoid the Problem Entirely

The best time to catch a bad email address is before you send, not after. If you're building prospecting lists from scratch, the quality of your source determines your bounce rate before your first email goes out. Campaigns sent to verified email lists achieve roughly double the reply rate of unverified lists - the bounce reduction is one part of it, but inbox placement and sender reputation benefits compound across every future campaign too.

When I'm building lists, I use a combination of approaches: pull contacts from a verified B2B database, enrich with live email verification, and only send to addresses that pass a real mailbox check (not just format validation). ScraperCity's B2B email database lets you filter by title, seniority, industry, location, and company size - so you're targeting the right people from the start and not burning your domain on contacts that were never going to be valid. You can also use Reply.io for prospecting combined with built-in validation workflows.

If you're sourcing contacts from Apollo and want to export them cleanly for verification, the Apollo Scraper pulls that data into a format you can immediately run through a validator - skipping the manual export headaches.

For finding emails for specific prospects you've identified but don't have contact details for yet, an email finding tool can surface verified addresses directly rather than pulling from a static database - which means the data is fresher and less likely to bounce.

The Catch-All Domain Problem (And How to Handle It)

Catch-all domains are a specific bounce risk that most guides don't address directly. A catch-all configuration means the mail server accepts every inbound email, regardless of whether the specific address exists. This is common at smaller companies where IT teams set it up to avoid missing emails during address changes.

The problem for you as a sender: standard email verification tools can't tell whether john.smith@smallcompany.com is a real active inbox or a black hole that accepts mail but delivers to nobody. The verification check comes back "valid" because the server accepted the SMTP probe - but the actual address may not exist.

Practical options for managing catch-alls:

Elite teams that remove catch-all addresses entirely report meaningfully lower bounce rates on their cleaned lists. The trade-off is a smaller sendable universe - but a universe where your domain reputation stays intact is worth more than a larger list that's eroding your deliverability with every campaign.

The Bottom Line on Soft vs Hard Bounces

Hard bounces are dead ends - remove them immediately, no exceptions, and find out where your bad data is coming from. Soft bounces are temporary - monitor them, let your platform retry, and only remove addresses that keep failing.

Both types chip away at your sender reputation over time if you ignore them. The fix is the same in both cases: start with clean, verified data, protect your sending infrastructure, keep your authentication locked down, and run list hygiene before every campaign - not after you've already done the damage.

The practical sequence every time before a new campaign goes out:

  1. Verify every address through a live mailbox check - not just format validation
  2. Segment and handle catch-alls separately
  3. Confirm SPF, DKIM, and DMARC are all passing
  4. Make sure hard bounces from previous campaigns are in your suppression list
  5. Start new sending domains at low volume and ramp gradually

Bounce management is part of a larger deliverability system. Get the fundamentals right and your campaigns will land consistently. Ignore it and you'll be rebuilding domains and negotiating with ESPs to get your account reinstated - a conversation nobody wants to have.

If you want help putting this entire system together - not just the bounce handling piece but the full outbound infrastructure and campaign strategy - I cover it inside Galadon Gold.

Ready to Book More Meetings?

Get the exact scripts, templates, and frameworks Alex uses across all his companies.

By entering your email you agree to receive daily emails from Alex Berman and can unsubscribe at any time.

You're in! Here's your download:

Access Now →