Skip to content
Guide 05Intermediate

Understanding email bounce rates: hard vs soft bounces and how to fix them

What an email bounce rate is, how to calculate it, hard vs soft bounces, how to read SMTP bounce codes, what a healthy rate is and how to lower yours.

Updated 10 min readBy the SenderDirect deliverability desk
Key takeaways
  • Bounce rate is bounced messages divided by messages sent, times 100. Keep it under 2%, and under 1% on a well-kept list.
  • Hard bounces (5xx) are permanent: suppress the address on the first failure, every time.
  • Soft bounces (4xx) are temporary: retry, then suppress after three to five consecutive failures.
  • The first digit of the code tells you what to do; the rest tells you why.
  • Most hard bounces trace back to how the list was built, so fix sign-up validation and verify old lists before sending.
  • A spike at a single mailbox provider usually means a block, not bad addresses.

Every bounce is a receiving server telling you it could not or would not accept your message. A few bounces are normal, even on a perfectly run list: people change jobs, abandon mailboxes and mistype addresses. The problem is a rate that climbs and keeps climbing, because mailbox providers treat it as a direct measure of how well you look after your list.

This guide explains what bounce rate is, the difference between hard and soft bounces, how to read the codes, what a healthy rate looks like and what to do to bring yours down.

What bounce rate means and how to calculate it

Bounce rate is the share of sent messages that the receiving server rejected.

bounce rate = (bounced messages / messages sent) x 100

Example: 180 bounces / 12,000 sent x 100 = 1.5%

Some platforms divide by messages sent, others by messages attempted after excluding suppressed addresses. Either is fine as long as you are consistent. More useful than the headline number is the split: hard vs soft, and by mailbox provider.

2%The bounce rate most providers and ESPs treat as the upper limit for healthy sending. Aim for under 1%.

What happens when a message bounces

When you send, the receiving server can do three things:

  1. Accept the message. Delivery succeeds (though it may still land in spam).
  2. Defer it with a temporary 4xx response. Your server queues the message and retries, usually for up to a few days.
  3. Reject it with a permanent 5xx response. Your server gives up and generates a non-delivery report (NDR).

Sometimes the rejection happens during the SMTP conversation (a synchronous bounce). Sometimes the server accepts the message and sends an NDR back later (an asynchronous bounce). Your ESP collects both and classifies them for you.

Hard bounces vs soft bounces

Hard bounce Soft bounce
Nature Permanent Temporary
SMTP class 5xx, for example 5.1.1 4xx, for example 4.2.2
Typical causes Unknown user, bad domain, policy block Full mailbox, busy server, throttling, greylisting
Recoverable No, for that address Often, on retry
What to do Suppress after the first bounce Retry, suppress after repeated failures
Reputation effect Strong and immediate Small unless it persists

Hard bounces

A hard bounce means delivery to that address will not succeed. The most common is 550 5.1.1, user unknown. Others include 5.1.10 (recipient address not found, often seen at Microsoft), 5.1.0 (bad address) and 551 or 553 (address not accepted).

Policy rejections such as 5.7.1 are technically hard bounces too, but they are different in kind. The address may be fine; the receiver is refusing you. Suppressing the address will not fix that. You need to fix whatever caused the block (see below).

Soft bounces

A soft bounce means the address exists but delivery failed this time. Common examples:

  • 4.2.2 and 452: mailbox full or insufficient storage.
  • 421 and 4.7.0: service unavailable or temporarily deferred, often throttling.
  • 450 and 451: mailbox temporarily unavailable or a local processing error.
  • 4.7.1: greylisting or temporary policy deferral.
  • 4.4.1: connection timed out.
  • 4.7.28 and 4.7.26: Gmail rate limiting and authentication-related deferrals.
Pro tip Automate your soft bounce rule. Suppress any address that soft bounces on three to five consecutive campaigns. That catches abandoned mailboxes before providers recycle them into spam traps.

How to read a bounce code

Most bounce messages carry two codes: a basic SMTP reply, such as 550, and an enhanced status code in the form class.subject.detail, such as 5.1.1 (RFC 3463).

550 5.1.1 The email account that you tried to reach does not exist.
^   ^ ^ ^
|   | | +-- detail: bad destination mailbox address
|   | +---- subject: addressing
|   +------ class: 5 = permanent
+---------- basic SMTP reply
  • The first digit tells you what to do. 2 is success, 4 is temporary (retry), 5 is permanent (stop).
  • The middle number groups the problem: 1 addressing, 2 mailbox, 3 mail system, 4 network and routing, 5 protocol, 6 content, 7 security and policy.
  • The last number narrows it down.
Code Type Meaning Action
5.1.1 Hard Mailbox does not exist Suppress
5.1.10 Hard Recipient not found (Microsoft) Suppress
5.2.1 Hard Mailbox disabled Suppress
5.2.2 Varies Mailbox full (some servers use 5xx) Retry a few times, then suppress
5.4.1 Hard Recipient address rejected or relay denied Check domain and routing
5.7.1 Policy Delivery not authorized, blocked Investigate the block
5.7.26 Policy Authentication failed (DMARC, SPF, DKIM) Fix authentication
5.7.25 Policy Reverse DNS check failed Fix PTR records
4.2.2 Soft Mailbox full Retry
4.7.0 Soft Temporary deferral, often reputation Slow down, review reputation

Servers do not always follow the standard exactly, so read the human text too. Our bounce code pages explain each common code with provider-specific notes.

Reading bounces by mailbox provider

The same problem can look different depending on who is rejecting you. A few patterns are worth knowing.

  • Gmail uses clear enhanced codes. 5.1.1 means the account does not exist. 5.7.26 and 4.7.26 mean authentication failed. 4.7.28 and 421 mean rate limiting, usually because your reputation does not support your current speed.
  • Microsoft often returns 5.1.10 for unknown recipients and 550 5.7.1 with an internal reference for reputation blocks. Deferrals with 4.7.0 on new IPs are common during warmup.
  • Yahoo uses 421 and 4.7.0 style deferrals heavily when it wants you to slow down, and 554 for hard policy blocks.
  • Corporate filters vary widely. Some return 5.7.1 for everything from blocklist hits to recipient-level rules, so read the text.

This is why per-provider reporting matters. A 1.5% overall bounce rate looks fine until you see that 40% of it came from one provider in one afternoon.

A simple suppression policy

Write your rules down, automate them and apply them consistently.

Bounce type Example codes Rule
Unknown user or domain 5.1.1, 5.1.10, 5.1.0 Suppress on the first bounce, permanently
Mailbox disabled 5.2.1 Suppress on the first bounce
Mailbox full 4.2.2, 452, 5.2.2 Retry; suppress after three to five consecutive campaigns
Temporary server or network error 421, 450, 451, 4.4.1 Retry automatically; no suppression unless persistent for weeks
Rate limiting or deferral 4.7.0, 4.7.28 Slow sending; do not suppress
Policy or reputation block 5.7.1, 554, 550 with policy text Do not suppress the address; fix the sender-side problem
Authentication failure 5.7.26, 4.7.26 Fix SPF, DKIM or DMARC; retry after the fix

The key distinction is between bounces caused by the address and bounces caused by you. Suppress the first kind. Investigate the second.

What counts as a good bounce rate

Total bounce rate What it means What to do
Under 1% Excellent: clean, engaged, opt-in list Keep your current hygiene
1% to 2% Acceptable for an active list Watch the trend, keep cleaning
2% to 5% Warning: hygiene is slipping Audit sources and clean before the next send
Above 5% Critical: providers and ESPs will react Pause, verify the list, find the cause

Context matters. Transactional mail such as receipts and password resets usually bounces less than marketing mail, because the address was used moments before. A first send to an old list will bounce far more than a weekly send to active subscribers. Many ESPs also enforce their own limits and may pause an account that crosses 5% or more on a single campaign. For sector comparisons, see our deliverability benchmarks by industry.

What causes bounces

Causes of hard bounces

  • Addresses that do not exist. Typos at sign-up, fake addresses entered to get a discount, closed employee accounts.
  • Domains that cannot receive mail. Misspelled domains (gmial.com), expired domains or domains with no MX records. You can check any domain with the MX Lookup.
  • Purchased, scraped or appended data. These lists are full of dead addresses and traps.
  • List decay. Business lists in particular lose a meaningful share of valid addresses each year as people change jobs.

Causes of soft bounces

  • Full mailboxes. Often genuinely temporary, but persistent ones usually mean an abandoned account.
  • Server problems. Outages, maintenance or overload on the receiving side.
  • Throttling and greylisting. The receiver is deliberately slowing an unfamiliar or suspicious sender.
  • Message size. Oversized messages can be refused with 552.

When bounces are really blocks

If a large share of bounces come from one provider with 5.7.x or 4.7.x codes, the addresses are probably fine and the problem is you. Typical triggers are a blocklisting, failed authentication or a reputation drop. Check your listings with the Blacklist Checker, your records with the Sender Reputation Checker, and follow the blacklist removal guide if you find a listing.

How to reduce your bounce rate

1. Validate addresses at sign-up

Add real-time checks to every form: correct syntax, a domain with working MX records, typo suggestions for common domains and, if it fits your audience, blocking of disposable addresses. Most bad data can be stopped before it enters your list.

2. Use confirmed opt-in

A confirmation click proves the address works and belongs to the person who signed up. It is the most effective single step to keep hard bounces near zero. See our double opt-in guide.

3. Verify lists before you send them

Any list that is imported, older than a few months or has not been mailed in a while should go through a verification service first. Dedicated verifiers such as ZeroBounce and NeverBounce are the most thorough, and SendPulse’s email verifier is a convenient option if you already send through that platform. Our verification tools comparison explains how they differ, and the catch-all verification guide covers the addresses no verifier can fully confirm.

4. Suppress hard bounces immediately

Configure your platform to add every hard-bounced address to a permanent suppression list on the first failure, so it can never be mailed or re-imported by accident. Most reputable ESPs do this by default, but check, especially if you send through your own SMTP server.

5. Retry soft bounces, then sunset them

Let the platform retry for a day or two. After three to five consecutive soft bounces across campaigns, suppress the address.

6. Re-engage or remove inactive subscribers

People who have not opened or clicked in six to twelve months are drifting toward abandoned accounts. Run a short re-engagement series and remove those who do not respond. The sunset policy guide has a ready-made flow.

7. Monitor by source and provider

Break bounce rates down by acquisition source (which form, which event, which partner) and by mailbox provider. A single bad source points to a form or data problem. A spike at one provider points to a block.

Never do this Never keep mailing an address after a hard bounce, and never import a purchased list. Repeated sends to dead addresses look exactly like spammer behavior and can put you on a blocklist within a single campaign.

Triage: what to do when bounces spike

When a campaign comes back with an unusual bounce rate, work through these questions before the next send.

  1. Hard or soft? Split the bounces by class. A spike in 4xx deferrals is a timing or reputation issue. A spike in 5xx rejections is a list or policy issue.
  2. Address or policy? Among the hard bounces, separate unknown-user codes (5.1.x, 5.2.1) from policy codes (5.7.x, 554). Only the first group is about your data.
  3. Where from? Group by mailbox provider. If one provider accounts for most of the spike, you are dealing with a block at that provider.
  4. Which source? Group unknown-user bounces by acquisition source or import date. One bad source usually stands out.
  5. What changed? Compare with the previous campaign: new segment, new template, new sending domain, higher volume, DNS changes.

Then act on what you find. Suppress bad addresses, pause the problem source, fix authentication or blocklist issues, and send the next campaign only to recently engaged subscribers until rates are back to normal. If the spike was a policy block, confirm your status with the Blacklist Checker and the Sender Reputation Checker before resuming full volume.

How bounces damage sender reputation

Mailbox providers read your bounce rate as a proxy for list quality. A high rate says your list was bought, scraped or never cleaned. That lowers your sender reputation, which pushes more mail to spam, which lowers engagement, which pushes reputation down further. The spiral is hard to stop once it starts.

There is also a spam trap link. Abandoned addresses that keep bouncing are sometimes recycled by providers into traps. If you never suppressed them, the next send hits a trap instead of bouncing, and trap hits are a common route onto blocklists.

The good news: bounce rate is one of the easiest reputation signals to control. Clean data in, automatic suppression, regular verification, and it stays low. For the broader picture, work through the deliverability playbook and the list hygiene guide.

FAQ

Frequently asked questions

What is a good email bounce rate?

Under 2% total is the widely used ceiling, and a well-maintained, opt-in list should sit under 1%. Hard bounces alone should be well below 1%. Anything above 5% means something is wrong with the list or you are being blocked, and you should pause and investigate before the next send.

What is the difference between a hard bounce and a soft bounce?

A hard bounce is permanent: the address does not exist, the domain cannot receive mail, or the receiver has refused you by policy. It comes with a 5xx code. A soft bounce is temporary: a full mailbox, a busy server or throttling, marked with a 4xx code. Hard bounces are suppressed immediately; soft bounces are retried.

How do I calculate bounce rate?

Divide the number of bounced messages by the number of messages sent, then multiply by 100. For example, 180 bounces from 12,000 sent is 1.5%. Many teams also track hard and soft bounce rates separately and calculate them per mailbox provider, which makes blocks much easier to spot.

Should I remove soft-bounced addresses?

Not after one failure. Let your platform retry for a day or two. If the same address soft bounces on three to five consecutive campaigns, suppress it. Persistent soft bounces are often abandoned mailboxes that will eventually hard bounce or be turned into spam traps.

Why did my bounce rate suddenly spike?

Look at the codes and the providers. If the spike is spread across many domains with 5.1.1 errors, a stale or imported segment is the likely cause. If it is concentrated at one provider with 5.7.x or 4.7.x codes, you are probably being filtered or blocked there. Check blocklists and authentication next.

Do email verification tools really reduce bounces?

Yes, for invalid and non-existent addresses. A verifier checks syntax, domain and mailbox existence before you send, which removes most of what would hard bounce. It cannot predict every future bounce, and catch-all domains remain uncertain, but verifying old or imported lists routinely brings bounce rates down to healthy levels.

Free · no signup

Check your domain before you hit send.

Run the full check: SPF, DKIM, DMARC, 15+ blocklists, MX, reverse DNS and infrastructure, scored A to F with a ranked list of fixes.