Hard Bounce vs Soft Bounce: What They Mean and How to Fix Both
Not every bounced email deserves the same response. Some bounces are permanent death certificates for addresses that will never work again. Others are temporary hiccups from servers that were down for 10 minutes. Treating them the same way guarantees you're either losing valid contacts or damaging your sender reputation. Probably both.
Understanding the difference between hard bounces and soft bounces is one of the most fundamental skills in email marketing. It determines what you remove, what you retry, and how you prevent bounces from accumulating in the first place. This guide covers both types in detail with specific SMTP codes, real-world causes, and exact action steps for each.
What Is a Hard Bounce?
What is a hard bounce in email?
A hard bounce is a permanent email delivery failure that occurs when a message cannot be delivered for a reason that will not change. The most common causes are a nonexistent mailbox, an invalid domain, or a receiving server that has permanently blocked delivery. Hard bounces are identified by SMTP 5XX error codes and require immediate removal of the address from your mailing list because no amount of retrying will make the delivery succeed.
Common causes of hard bounces:
- Mailbox does not exist. The specific address (the part before the @) was never created, was deleted, or was deactivated. This is the most common hard bounce cause, especially in B2B lists where employees have left companies.
- Domain does not exist. The entire domain (the part after the @) has expired, been deregistered, or never existed. This catches fake signups where someone entered a made-up domain.
- Permanent server block. The receiving server has explicitly refused to accept email from your sending infrastructure. This can result from blacklisting, repeated sending to bad addresses, or a policy decision by the receiving organization.
- Invalid address format. The email address is malformed in a way the server cannot process. Missing @ symbols, illegal characters, or encoding issues that break SMTP communication.
What Is a Soft Bounce?
What is a soft bounce in email?
A soft bounce is a temporary email delivery failure where the message reaches the recipient's mail server but is rejected for a reason that may resolve itself. The address is typically valid, but a temporary condition prevented delivery. Soft bounces are identified by SMTP 4XX error codes. Most email service providers automatically retry delivery for 24-72 hours before classifying the message as a permanent failure.
Common causes of soft bounces:
- Mailbox full. The recipient's inbox has exceeded its storage quota. The address is real, but there's no room for new messages until the user clears space.
- Server temporarily unavailable. The receiving mail server is down for maintenance, overloaded, or experiencing a temporary outage. The address is valid; the infrastructure just isn't available right now.
- Message too large. The email (including attachments and embedded images) exceeds the size limit set by the receiving server. The address works fine for smaller messages.
- Content flagged by spam filter. Something in your email body, subject line, or HTML triggered the receiving server's content filter. The address is valid, but the server rejected this specific message.
- Greylisting. The receiving server temporarily rejects messages from new senders as an anti-spam measure, expecting legitimate senders to retry. This is a deliberate delay, not a real rejection.
- Rate limiting. You've sent too many emails to the same domain in a short period, and the server is throttling your delivery. Slowing down resolves this.
Hard Bounce vs Soft Bounce: Side-by-Side
| Factor | Hard Bounce | Soft Bounce |
|---|---|---|
| Type of failure | Permanent | Temporary |
| SMTP code | 5XX (550, 551, 552, 553, 554) | 4XX (421, 450, 451, 452) |
| Is the address valid? | No (usually) | Yes (usually) |
| Will retrying work? | No, never | Often yes, after the issue resolves |
| Immediate action | Remove from list and add to suppression | Let ESP retry for 24-72 hours |
| If it keeps happening | N/A (one hard bounce = permanent removal) | Remove after 3-5 consecutive soft bounces |
| Reputation impact | Severe: direct signal of poor list quality | Moderate: concerning only if persistent |
| Can verification prevent it? | Yes: catches invalid addresses before sending | Partially: catches some (full inboxes, dead domains) but not all |
Reading SMTP Bounce Codes
When an email bounces, the receiving server returns an SMTP response code that tells you exactly why. The first digit tells you the category:
5XX codes = hard bounce (permanent):
550- Mailbox unavailable (doesn't exist or has been disabled)551- User not local; try forwarding552- Exceeded storage allocation (sometimes treated as soft bounce)553- Mailbox name not allowed (invalid format)554- Transaction failed (generic permanent failure)
4XX codes = soft bounce (temporary):
421- Service not available (server temporarily down)450- Mailbox unavailable (busy or temporarily locked)451- Requested action aborted (local server error)452- Insufficient storage (server-side, not mailbox-level)
How to Handle Each Type
Handling Hard Bounces
The rule is simple: remove immediately, no exceptions.
- Suppress the address. Add it to your permanent suppression list so it can't re-enter your database through imports or re-signups.
- Don't retry. Never attempt to resend to a hard-bounced address. The address is dead. Retrying just generates another bounce and further damages your reputation.
- Investigate the source. If a batch of hard bounces comes from the same data source (a specific import file, lead form, or partner list), that source has a data quality problem that needs fixing.
- Check your ESP settings. Most ESPs automatically suppress hard bounces. Verify this is enabled. If you're using a self-managed sending infrastructure, build this automation yourself.
Handling Soft Bounces
Soft bounces require patience but not infinite patience:
- Let your ESP retry. Most email service providers automatically retry soft-bounced messages every few hours for 24-72 hours. Don't manually intervene during this window.
- Monitor repeat offenders. Track addresses that soft bounce on consecutive campaigns. An address that soft bounces once is having a bad day. An address that soft bounces on 3-5 consecutive sends has a persistent problem.
- Promote to hard bounce status. After 3-5 consecutive soft bounces with no engagement between them, treat the address as a hard bounce and suppress it. Many ESPs do this automatically (Mailchimp uses 7 bounces for inactive contacts, 15 for previously active ones).
- Check for content issues. If a large number of soft bounces happen on a single campaign but not others, the problem may be your content (too large, spam triggers) rather than the addresses.
Preventing Bounces Before They Happen
The cheapest bounce is the one you prevent. Email verification catches many bounce-causing problems before you ever hit send:
Preventing hard bounces. Bulk email verification checks every address against live mail servers. Addresses with nonexistent mailboxes, dead domains, or no MX records are flagged as failed before they ever receive a campaign. This is the single most effective way to eliminate hard bounces: verify before you send. For real-time protection, add the verification API to your signup forms so invalid addresses never enter your database.
Reducing soft bounces. Verification catches some soft bounce causes (like permanently full mailboxes that will never accept mail) but can't predict all of them (like a server that goes down after verification). Regular verification sweeps help because an address that was valid six months ago may have become a permanently full, abandoned inbox since then.
Blocking disposable addresses. Disposable email addresses work during signup verification but expire within hours or days. On your next campaign, they hard bounce. The isDisposable flag from verification catches these before they enter your list. Test any address with the free email checker to see the full result.
The math is straightforward: verifying 50,000 addresses costs a fraction of what a 5% hard bounce rate does to your sender reputation. Check pay-as-you-go pricing to see the per-address cost.
Frequently Asked Questions
What is a good bounce rate for email campaigns?
Total bounce rate (hard + soft combined) should stay below 2%. Hard bounces specifically should be below 0.5%. These are the thresholds where inbox providers start paying attention to your sending quality. A well-maintained list with regular verification typically achieves total bounce rates below 0.5%.
Should I remove soft bounces from my list?
Not after a single occurrence. Soft bounces are temporary and often resolve on their own. However, addresses that soft bounce on 3-5 consecutive campaigns without any engagement between bounces should be treated as permanently failed and removed. The exact threshold varies by ESP, but consistent soft bouncing is a strong signal that the address is no longer functional.
Can a hard bounce be reversed?
Rarely. If a hard bounce was caused by a strict spam filter rather than an invalid address (some servers return 5XX codes for content-based rejections), the address may still be valid. Ask the contact to whitelist your sending domain, then manually unbounce the address in your ESP. But in the vast majority of cases, a hard bounce means the address is permanently dead.
Does my ESP handle bounces automatically?
Most ESPs (Mailchimp, Klaviyo, SendGrid, Brevo, etc.) automatically suppress hard bounces and retry soft bounces. Check your ESP's specific policies for how many soft bounce retries they attempt and at what point they convert a soft bounce to a hard bounce. Even with ESP automation, you should monitor bounce reports after every campaign to catch trends early.
How does email verification prevent bounces?
Email verification tests addresses against live mail servers before you send, identifying nonexistent mailboxes, dead domains, and other conditions that would cause hard bounces. It also flags disposable addresses that will expire and bounce on future sends. Verification before every campaign is the most reliable way to keep hard bounce rates near zero.
Take Action on Your Bounces
Hard bounces and soft bounces tell you different things and require different responses. Hard bounces mean the address is dead: remove it immediately and never send to it again. Soft bounces mean something temporary went wrong: give it time, but don't give it forever. Both types contribute to your overall bounce rate, which inbox providers use to evaluate whether your emails deserve the inbox or the spam folder.
The best strategy is prevention. Verify your list with bulk verification before campaigns to eliminate the invalid addresses that cause hard bounces. Add real-time verification to your forms to prevent bad addresses from entering your database in the first place. And monitor your bounce reports after every send to catch problems before they compound.
Stop Bouncing. Start Converting.
Millions of emails verified daily. Industry-leading SMTP validation engine.