Soft bounce vs hard bounce: improve deliverability

A practical guide to soft bounce vs hard bounce: what each means, how to handle them, and how to protect deliverability.

By
Thibault Garcia
15/7/26
Key Findings
SPLIT BY BOUNCE TYPE BEFORE ANYTHING ELSE

A hard bounce is a permanent 5xx failure, a soft bounce is a temporary 4xx one. Never read a blended bounce rate first. Classify by server response, then act.

HARD BOUNCE MEANS SUPPRESS, IMMEDIATELY

Remove and globally suppress every hard bounce so it can't re-enter through CRM syncs or imports. Keep hard bounce rate under 0.5%. Retrying dead addresses signals poor hygiene to Gmail and Microsoft.

SOFT BOUNCE MEANS RETRY, THEN CUT OFF

Let the ESP retry over a defined window, with 72 hours as a standard. Escalate to suppression once a contact soft bounces repeatedly, often after three strikes.

CLUSTERS ARE A SOURCE PROBLEM, NOT A CONTACT PROBLEM

When bounces group by import or segment, quarantine the whole list and re-verify at the source. The data was likely bad before the first send.

DISCIPLINE BEATS TOOLING

Total bounce over 2% is concerning and over 5% is critical. Clean classification, fast suppression, and limited retries keep domains out of spam more reliably than any warmup graph.

You launch a new sequence, wait an hour, open Smartlead, and see the bounce rate climbing. Not a little. Enough to make you wonder whether you just burned a sending domain.

An incorrect approach often sees every bounce treated as the same problem, when a bounce is really a server response that tells you what failed, why it failed, and what you need to do next.

That difference matters fast. If you keep mailing addresses that already failed, Gmail and Outlook read that as poor list hygiene, not bad luck, and your inbox placement starts slipping long before the dashboard makes it obvious.

Your campaign bounced. Now what?

A bounce spike is a diagnostic moment. Handle it well and you contain the issue. Handle it badly and you turn one weak list import into a sender reputation problem that affects every sequence after it.

The first question isn't "is my bounce rate bad?" It's simpler. What kind of bounce are you looking at? If you don't split soft bounce vs hard bounce immediately, you're guessing.

Hard bounces tell you the address is dead, invalid, gone, or blocked in a permanent way. Soft bounces tell you the address may still be real, but something temporary got in the way. Same dashboard label category. Very different operational response.

Practical rule: Never investigate bounce rate as one blended number first. Split by bounce type before you touch sending volume, copy, or infrastructure.

Many outbound teams often lose their way. They blame subject lines, warmup, or Smartlead settings when the underlying issue is bad data hygiene and weak suppression logic. If you're seeing repeated failures and still pushing the same contacts through active campaigns, the problem isn't copy.

A clean suppression process matters more than is commonly assumed. If that piece is weak, read this breakdown of why your suppression list matters more than your copy. It clarifies the core issue quickly.

Here's the operational lens that works:

Bounces aren't just failed deliveries. They're feedback from the receiving server about whether you look like a sender who knows who they're emailing.

Hard bounce explained: what it means when an email is dead

A hard bounce is permanent. Imagine trying to call a disconnected number. You can press redial all day and it still won't connect.

In email terms, that usually means the address doesn't exist, the domain is gone, or the recipient server has permanently rejected delivery. Hard bounces are signaled by SMTP 5xx codes, including examples like 5.1.1 "User Unknown" according to Nylas' guide to soft bounce vs hard bounce.

What usually causes a hard bounce

Some causes are obvious. Some aren't.

If you run outbound long enough, you'll see all three. The mistake is treating any of them like a retry problem.

The correct response is immediate suppression

There is only one correct move after a hard bounce. Remove the contact from active sends and suppress it globally.

Not later. Right away.

If that address gets re-imported from Clay, synced back in from a CRM, or pushed into another Smartlead campaign next week, you've just told mailbox providers you either don't track failures or don't care about them. Both are bad signals.

A hard bounce is dead data. Keeping it in circulation turns a contact problem into a domain problem.

Healthy, permission-based lists need to keep hard bounce rate below 0.5%, and the average hard bounce rate across all industries is 0.21%, which is the right baseline to aim for according to this email bounce benchmark analysis. Once hard bounce rates move past 0.5%, providers like Gmail and Microsoft start flagging sender reputation.

That's why catch-all domains deserve extra caution. They can mask list quality until real sending starts, which is why teams should understand the trade-offs around catch-all email addresses in outbound.

What pros do when hard bounces cluster

One hard bounce is a contact-level issue. A cluster from the same import is a source-level issue.

When that happens, don't just remove the failed addresses and keep going. Quarantine the whole list, re-verify it, and inspect where the data came from. If a segment starts hard bouncing in groups, the source was likely bad before the first email ever left your mailbox.

That's the part amateurs miss. Hard bounces aren't just delivery failures. They're evidence.

Soft bounce explained: the temporary setback

A soft bounce is temporary. The address may still be valid, but something blocked delivery at that moment.

Imagine calling someone whose voicemail box is full. The number still exists. You just didn't get through.

What a soft bounce usually means

Soft bounces are tied to SMTP 4xx codes and usually point to short-term problems like full inboxes, server downtime, message size limits, or greylisting. The receiving system is saying "not now," not "never."

That distinction changes your workflow. You don't suppress the address on first failure. You let your sending tool retry within a controlled window and watch what happens next.

Soft bounces are also more prevalent than generally assumed. Mailreach reports an average soft bounce rate of 0.70%, which is over three times the average hard bounce rate, and notes that automated retries over 72 hours are standard practice. The same benchmark says a total bounce rate over 2% is concerning, and over 5% is critical in practice, as outlined in Mailreach's hard bounce vs soft bounce guide.

The right way to handle retries

Teams tend to get lazy. They either suppress too early or retry forever.

Neither works.

A single soft bounce doesn't mean the lead is bad. It means the mailbox, server, or receiving policy couldn't accept that message at that time. Let the ESP do its retry job. In outbound stacks, that usually means letting the system attempt delivery again over a few days instead of manually forcing sends.

But there has to be a cutoff.

If an inbox keeps failing, hammering it doesn't prove persistence. It proves poor judgment.

This matters even more on newer domains. If you're still warming up, a pile of temporary failures can distort the signal you think you're building with mailbox providers. That's why bounce handling and cold email domain warm-up timing need to work together.

Why soft bounces still need discipline

Soft bounces sound safer than hard bounces, and that makes people careless. That's a mistake.

Temporary failures can still become a sender reputation issue if you keep mailing the same unstable addresses over and over. In real outbound programs, the danger isn't one soft bounce. It's the repeated pattern that tells providers your list isn't being maintained tightly enough.

A soft bounce isn't a dead end. It's a warning light.

The critical differences, summarized

The whole soft bounce vs hard bounce debate gets simpler when you reduce it to action. One means stop. The other means wait, retry, and then stop if the problem sticks.

Here is the split at a glance.

Hard bounce vs soft bounce at a glance
Attribute Hard bounce Soft bounce
Nature Permanent delivery failure Temporary delivery issue
SMTP signal 5xx code 4xx code
Example 5.1.1 User Unknown 4.2.2 Mailbox Full
What it tells you The address or route is not deliverable in a permanent way The address may still work later
Correct action Immediate suppression Retry for a limited period
Risk to sender reputation Fast and direct Lower at first, but grows if repeated

The technical signal matters

Mailbox providers don't see "bad luck." They see patterns.

A 5xx response means the receiving server is giving you a permanent refusal. An example is 5.1.1 "User Unknown." A 4xx response means the failure is temporary, such as 4.2.2 "Mailbox Full." Those distinctions and the related handling rules are covered in Mailneo's explanation of email bounce rate mechanics.

That technical split should guide your automation. If your system doesn't separate 4xx and 5xx events cleanly, your team ends up making manual decisions too late, usually after the campaign has already sent damage signals.

The reputation damage isn't identical

Hard bounces hurt faster. That's because a permanent failure suggests you sent to an address you should have known was invalid.

Soft bounces start with more grace, but they don't stay harmless if they repeat. Some teams use a 3-Strike Rule, converting a soft bounce to a hard bounce after three failures, which Nylas notes in its bounce handling guidance referenced earlier. That's a practical policy because it turns a vague "keep an eye on it" habit into an actual decision rule.

Operational view: Hard bounces are acute failures. Persistent soft bounces are chronic failures. Both need containment.

What this means for outbound teams

In newsletters, teams can sometimes tolerate more softness because the list is broader and the cadence is slower. In cold outbound, especially from dedicated domains, the margin for sloppy handling is smaller.

Use this decision lens:

That's the difference between watching dashboards and managing deliverability.

The professional playbook: how we manage bounces

Teams often don't have a bounce strategy. They have a dashboard and a vague hope that Smartlead or their ESP will sort it out.

That's not enough.

The Reachly playbook for managing bounces

Automatic bounce triage Every incoming bounce is split by server response, 5xx into hard bounce handling and 4xx into soft bounce handling, before anyone guesses at copy or warmup.
Hard bounce protocol Permanently invalid addresses come out of active sends and go onto a global suppression list immediately, with no retries.
Soft bounce strategy Temporary failures get controlled retries over a defined window, then escalation to suppression once the pattern repeats.
Continuous list hygiene Bounce rates are monitored and lists cleaned at the source to protect sender reputation and inbox placement.

Step one is automatic triage

The first thing that matters is classification. Every incoming bounce gets split by server response. 5xx goes into hard bounce handling. 4xx goes into soft bounce handling.

No gray area. No waiting for someone to review it next week.

That sounds basic, but it's where a lot of agencies and in-house SDR teams fail. They look at blended bounce rate inside one dashboard widget and start guessing whether the issue is copy, warmup, data source, mailbox age, or sending volume. None of that helps until the bounce type is separated.

Hard bounce protocol is strict for a reason

When we see a hard bounce, the contact comes out of active sending immediately. Then it goes onto a global suppression list so it can't sneak back into another sequence through CRM syncs, list uploads, or enrichment refreshes.

We never retry hard bounces. Not once.

If a list import produces a cluster of hard bounces, we don't patch the edge cases and move on. We quarantine the whole segment, re-verify it, and inspect the source. In practical terms, that often means tracing whether the issue came from old CRM records, weak enrichment, bad export logic in Clay, or a rushed list handoff from a client.

Soft bounce handling needs a window and a cutoff

Soft bounces are different, so the workflow has to be different too. We let the system retry over a few days because temporary failures do resolve.

But that doesn't mean unlimited retries. It means controlled retries.

For high-stakes B2B outreach, a useful rule is the soft bounce escalation threshold. If a contact soft bounces across three consecutive campaigns, it should be treated like a hard bounce candidate to protect reputation, as noted in CleverTap's discussion of hard bounce vs soft bounce.

That matters more in outbound than people realize. A single contact that keeps failing isn't just one unreachable prospect. It's a recurring negative signal attached to your sending behavior.

We don't hammer a struggling inbox. Once a soft bounce keeps repeating, it stops being a temporary issue and starts becoming a list hygiene issue.

The workflow has to live inside the stack

This only works if your tools talk to each other. In a modern outbound setup, bounce events need to feed suppression logic, and suppression logic needs to survive future imports.

The exact tools can vary. Plenty of teams run Clay for list building, Smartlead for sending, and HeyReach for LinkedIn touches. The stack isn't the point. The rule is.

What actually keeps domains out of spam

People love to obsess over warmup graphs and subject line testing. Those matter. But if bounce handling is sloppy, none of that saves you.

Mailbox providers watch whether you keep sending to dead addresses and whether temporary failures keep repeating without control. The teams that stay out of spam aren't always the teams with the fanciest tooling. They're the ones with stricter operational discipline.

That is the playbook. Clean classification. Fast suppression. Limited retries. Source-level quarantine when bounce patterns tell you the data is bad.

Common mistakes that wreck sender reputation

Most sender reputation problems aren't caused by one big mistake. They're caused by small repeated ones that teams keep excusing because the campaign still looks alive on the surface.

Then replies dry up.

Four mistakes that wreck sender reputation
Ignoring the bounce report
If you see failures and keep sending anyway, you teach mailbox providers that your list maintenance is weak.
Retrying hard bounces
The server already said the address is permanently unreachable, so retrying just looks reckless.
Letting soft bounces run forever
Repeated temporary failures still hurt when they stack up across campaigns.
Skipping list verification
Bad source data creates avoidable hard bounces that should never have reached active mailboxes.

The mistakes that show up most

For cold email, total bounce rate under 1% is considered excellent, 1% to 2% is acceptable, and above 5% is dangerous. Repeated soft bounces can also degrade sender reputation at a rate comparable to moderate hard bounce accumulation, according to ScaledMail's analysis of soft and hard bounces.

The bad assumption behind most of this

A lot of teams assume a bounce is just a failed send. It isn't. It's feedback about your process.

If you want a broader checklist of sloppy habits that create email problems before and after send, Mail Tracker for Gmail's breakdown of common email blunders is worth reading. Not because every point applies to outbound, but because the core pattern is the same. Small hygiene failures stack up.

A weak list plus weak suppression is worse than weak copy. Bad copy gets ignored. Bad hygiene gets you filtered.

What to fix first

If your bounce handling is messy, don't start by rewriting sequences. Fix the operating rules.

That's the boring work nobody brags about. It's also the work that keeps domains usable.

If you want outbound handled by a team that treats deliverability like an operating system, not an afterthought, Reachly runs done-for-you multichannel outbound across email, LinkedIn, and cold calling for B2B teams across APAC. They build the list, verify contacts, manage suppression, and run campaigns on dedicated sending infrastructure so your team can focus on closing, not cleaning up bounce damage.

Thibault Garcia
Founder
I’ve spent the past 11 years working across sales and growth marketing, helping businesses build predictable pipeline. My focus is on lead automation, lead generation, LinkedIn optimisation, sales funnels, and practical growth systems. I’ve worked with 500+ businesses on improving their revenue operations, and I enjoy breaking down what consistently works in outbound, positioning, and building repeatable growth.
 
class SampleComponent extends React.Component { 
  // using the experimental public class field syntax below. We can also attach  
  // the contextType to the current class 
  static contextType = ColorContext; 
  render() { 
    return <Button color={this.color} /> 
  } 
} 

Get more meetings with the people who matter, 100% done for you.
Book a Call