Email Marketing Deliverability
Email Bounce Management: Hard vs Soft Bounces
What each bounce class means, the thresholds that trigger provider action, and the suppression rules to automate.
On this page
The short version
- Hard bounces must be suppressed on the first occurrence, permanently and automatically. Sending again to a confirmed unknown address is one of the clearest quality signals a provider can read.
- Soft bounces need a rule with a count and a window, not indefinite retrying. Repeated soft bounces from the same address are usually a hard bounce being reported politely.
- Bounce rate above about two percent on a routine send means the list has a source problem, not a delivery problem.
A bounce is the receiving server declining a message and saying why. The reasons divide into permanent and temporary, and the two require opposite handling — which is why treating all bounces the same is how lists quietly accumulate addresses that will never work.
Handling is mostly automatic in any competent platform. What is not automatic is checking that it is working, and noticing when the rate says something about where your addresses come from.
Hard and soft
A hard bounce is permanent: the address does not exist, the domain does not exist, the mailbox is closed. A soft bounce is temporary: the mailbox is full, the server is busy, the message is too large. The receiving server signals which through a response code, and platforms classify from that.
What each bounce means and what to do
| Bounce | Meaning | Action |
|---|---|---|
| Unknown user | Hard — no such mailbox | Suppress permanently, first occurrence |
| Domain not found | Hard — the domain does not resolve | Suppress permanently, and check for typos at capture |
| Mailbox full | Soft — temporary | Retry; suppress after repeats over a window |
| Message too large | Soft — but it will recur | Fix the message, not the address |
| Blocked by policy | Soft in form, reputational in substance | Investigate — this is a placement signal |
| Greylisted | Soft — deliberate delay | Retry; normal, no action |
| Spam-related rejection | Reputational | Stop and diagnose before the next send |
The last two rows are the ones that get lost in a bounce total. A policy or spam rejection is a message about your reputation wearing the costume of a delivery failure.
A soft bounce rule that works
Soft bounces need a count and a window rather than indefinite retries. A workable default: suppress after five consecutive soft bounces across a fourteen-day period, on the reasoning that a mailbox full for a fortnight is a mailbox nobody is reading.
The important part is that a rule exists. Without one, soft-bouncing addresses stay on the list forever, contribute nothing, and depress every ratio you are scored on — the same cost as an unengaged subscriber, with an added delivery attempt each time.
What the rate is telling you
On a routine send to an established list, bounce rate should be low — well under two percent, and often a fraction of one. A rate materially above that is almost never a delivery problem. It is a source problem.
Typos at capture, an import from an old system, a purchased or appended list, or a form with no validation are the usual causes. Each has a different fix and all of them are upstream of the send.
A sudden spike on a list that was previously clean is worth treating as an incident: check whether a new acquisition source was switched on, whether an import happened, and whether something changed in the form.
When the rate jumps
Separate hard from soft
A soft spike is often a single receiving domain having a bad day and needs no action. A hard spike is a list problem and needs one.
Group by receiving domain
If the bounces concentrate at one provider, you are looking at a placement or blocking issue there rather than at address quality.
Group by acquisition source and date
Bounces clustering in addresses added the same week points straight at what changed. This is why recording a source and a date at capture pays off — without it this step is impossible.
Read the actual response text
The server's own message distinguishes a policy rejection from a genuine unknown user. Platforms bucket these into hard and soft and the detail is where the diagnosis lives.
Bounce handling check
- Hard bounces suppress permanently on first occurrence
- Suppression has been verified by looking, not assumed
- A soft bounce rule exists with a count and a window
- Suppression is respected by every tool that sends, not just the main one
- Bounce reasons are grouped by receiving domain and by source
- Policy and spam rejections are surfaced separately from ordinary bounces
- New addresses are validated at capture
Frequently asked questions
What bounce rate is acceptable?
Under two percent on a routine send, and a well-maintained list on an established source is usually far below that. Anything higher is worth tracing to a source rather than tolerating.
Should I re-verify addresses that hard bounced?
No. A confirmed unknown user is settled, and re-verifying invites putting it back on the list. Verification belongs at capture and before an import, not after a bounce.
Does a high bounce rate directly hurt reputation?
Yes, and it also correlates with the things that hurt more — a list with many invalid addresses usually has many disengaged ones and sometimes has spam traps.