A hard bounce is an email that permanently failed to reach its recipient. The receiving server rejected the message and told your sender never to try again. Usually the reason is blunt: the address does not exist. No retry, no waiting period, and no clever subject line will ever fix it.
Soft bounces are the opposite case. The address is real, but something temporary blocked delivery, like a full mailbox or a busy server. Hard bounces carry none of that ambiguity. The mailbox is gone, the domain is dead, or the server refuses your mail outright.
I have run B2B email programs since 2018, and hard bounces have taught me more painful lessons than any other metric. So in this guide, I will explain how they work, the SMTP codes behind them, what they do to your reputation, and the routine that keeps them rare.
What Does a Hard Bounce Actually Mean?
A hard bounce means the receiving mail server returned a permanent failure code for your message. Campaign Monitor’s glossary defines it as an email that failed to deliver for permanent reasons, such as an invalid address, a fake domain, or an unknown recipient.
Here is what happens behind the scenes. Your sending server connects to the recipient’s server and offers the message. The receiving side answers with a reply code. Codes starting with 5 mean permanent rejection, so your server gives up and generates a failure notice. That returned notice is formally called a bounce message, or a non-delivery report.
The name is older than the marketing industry that obsesses over it. Mail administrators have called these returned messages bounces since the early days of SMTP, because the email quite literally bounces back to whoever sent it. Marketers later split the concept in two, hard and soft, to separate failures worth acting on from failures worth waiting out.
In email marketing platforms, all of this is handled for you. The ESP reads the rejection, marks the address as a hard bounce, logs the reason, and usually suppresses the contact automatically. That convenience hides how much information each bounce carries:
- The address is undeliverable. Nothing you send there will ever arrive, on any platform, from any domain.
- The source that produced it is suspect. Every bad address entered your list through a specific form, import, or integration.
- The mailbox provider noticed. Receivers count your failures and factor them into how they treat your next send.
One hard bounce is noise. A pattern of them is a verdict on your list quality, and every single one chips away at your email deliverability.
📌 Example: In 2022 I imported 9,400 trade-show contacts into a client's ESP without verifying them first. Our next send hard bounced at 11 percent. Gmail throttled the domain within two days, and opens from good subscribers fell by a third. Recovery took five weeks of small, clean sends.
Hard Bounce vs Soft Bounce: What Is the Difference?
A hard bounce is permanent and a soft bounce is temporary. That one word changes everything about the correct response: hard bounces get suppressed forever, while soft bounces earn a few more attempts before you act.
| Aspect | Hard Bounce | Soft Bounce |
|---|---|---|
| Failure type | Permanent | Temporary |
| Typical SMTP codes | 550, 551, 553 (5xx class) | 421, 450, 452 (4xx class) |
| Common causes | Dead address, dead domain, block | Full mailbox, server down, message too large |
| Will retrying help? | Never | Often, within hours or days |
| Typical ESP handling | Address suppressed immediately | Retried, then converted after repeated failures |
| Correct response | Remove and investigate the source | Monitor, and act only if it repeats |
Platforms draw the conversion line differently. Mailchimp’s documentation, for example, allows 7 soft bounces for an address with no subscriber activity, and up to 15 for a contact with previous activity, before converting it into a hard bounce and cleaning it.
The boundary is fuzzier than the labels suggest, though. Some receiving servers return a permanent code for what is really a policy hiccup, and others hide permanent problems behind temporary codes. Treat the labels as your platform’s best guess, not as ground truth.
💡 Pro Tip: Read the raw bounce message before trusting the label. The rejection text usually names the exact problem: unknown user, bad domain, or a block with a delisting URL. Ten seconds of reading often saves a wrong decision about a salvageable address.
How Do You Read Hard Bounce SMTP Codes?
You read bounce codes by their first digit: 5 means permanent failure, 4 means temporary failure. The codes come from RFC 5321, the standard that defines how mail servers talk to each other.
| Code | Standard Meaning | Bounce Type |
|---|---|---|
| 550 | Requested action not taken: mailbox unavailable | Hard |
| 551 | User not local | Hard |
| 553 | Mailbox name not allowed | Hard |
| 5.1.1 | Bad destination mailbox address (enhanced code) | Hard |
| 421 | Service not available, closing channel | Soft |
| 450 | Mailbox unavailable, try again later | Soft |
| 452 | Insufficient system storage | Soft |
Modern servers add a second, three-part number defined in RFC 3463, the enhanced status code standard. Here the logic repeats: 5.X.X codes are permanent and 4.X.X codes are transient. The one worth memorizing is 5.1.1, the classic signature of a dead address.
One caution from experience: providers write their own free text after the numbers. Gmail, Outlook, and Yahoo all phrase the same rejection differently. Anchor your decisions on the numeric code, then use the text for detail.
What Causes a Hard Bounce?
The four big causes are dead addresses, dead domains, typos, and blocks. Almost every hard bounce I have ever root-caused fell into one of these buckets:
- Dead address. The person left the company and IT deleted the mailbox. This is the dominant cause in B2B, where job changes quietly kill addresses every month.
- Dead domain. The company shut down, rebranded, or got acquired, and the whole domain stopped receiving mail. One dead domain can take out dozens of contacts at once.
- Typos. Someone typed gamil.com or forgot a letter on a signup form. The address never existed, so the very first send fails.
- Blocks. The receiving server permanently refuses your mail because your domain or IP sits on a blocklist, or its policy rejects you. The address is fine; you are the problem.
- Fake entries. People invent addresses to grab gated content. Those made-up strings bounce the moment you mail them.
Age is the multiplier on top of all five. In 2023 I mailed a product launch email campaign to a segment that had sat untouched for 14 months. It hard bounced at 7 percent, and nearly all of it traced back to job changes. Nobody had touched the list, and the list had decayed anyway.
Notice that only one cause, the block, is about your infrastructure. The other four are data quality problems. That distinction decides the fix: blocks need delisting and configuration work, while everything else needs better list discipline.
Why Do Hard Bounces Poison Sender Reputation?
Hard bounces poison your standing because mailbox providers read them as proof that you do not know your own list. Legitimate senders mail people who exist. Spammers guess at addresses. A high hard bounce rate makes your traffic look like guessing.
Every major provider keeps a running score for your sending domain and IPs, known as your sender reputation. Bounce data feeds that score alongside your spam complaint rate and engagement signals. When the score drops, your mail gets throttled, then junk-foldered, then rejected outright.
The tolerances are tighter than most marketers assume. Mailtrap’s cross-industry benchmark research treats anything under 2 percent as a normal bounce rate, 2 to 5 percent as a warning zone, and above 5 percent as critical. For hard bounces specifically, I hold clients to 0.5 percent, because permanent failures weigh heavier than temporary ones.
Google’s email sender guidelines show how thin the margins are across the board. Gmail tells bulk senders to keep reported spam rates below 0.10 percent and to never reach 0.30 percent. The same scoring machinery that enforces those numbers is watching your delivery failures.
Shared infrastructure raises the stakes further. On a shared IP pool, your bounces drag down neighbors who did nothing wrong, and their sins land on you in return. Dedicated IPs isolate the risk but concentrate the accountability: every failure on the record is yours alone. Either way, the provider is scoring somebody, and hard bounces are among the loudest inputs.
Worse, the damage compounds. Reputation loss is quick to earn and slow to repair, and while it recovers, even your valid mail underperforms. That is the real cost of a bad import: it taxes every future send.
🔍 Field Note: A SaaS client came to me in 2024 after three sends that each hard bounced above 8 percent. Their domain reputation in Google Postmaster Tools read Bad. We cut bounces to 0.5 percent within a week, yet inbox placement needed six more weeks to return. Prevention is cheap. Recovery is not.
What Should You Do When an Email Hard Bounces?
Suppress the address immediately, then find out why it bounced. Those two moves, in that order, contain almost all of the damage. Here is the full sequence I run.
Step 1: suppress everywhere. Your ESP probably suppressed the address automatically. The trap is the rest of your stack. CRM sequences, sales outreach tools, and billing systems each send mail too, and none of them saw the bounce. Sync your suppression list across every tool that sends.
Step 2: read the reason. Pull the SMTP code and rejection text. A 5.1.1 dead address needs no further action beyond suppression. By contrast, a block message names a blocklist or policy, which is fixable, and mailing on before fixing it makes everything worse.
Step 3: look for a pattern. Sort the bounced addresses by source. When 40 bounces share one import, one form, or one integration, you have found a rotten pipe, not 40 random failures. Quarantine everything else that came through it.
Step 4: verify before resuming. Run the surviving segment through a verification service before the next send. Sending “to see if it happens again” is an experiment your domain pays for.
Finally, wire up bounce webhooks if your platform offers them. A webhook pushes each bounce to your CRM the moment it happens, so no other system keeps mailing a dead address while you sleep.
📌 Checkpoint: After any send with more than 2 percent hard bounces, stop the campaign calendar. Audit where those addresses entered your list before anything else goes out. In my experience the source is almost always a single import, form, or integration.
How Do Email Platforms Handle a Hard Bounce?
Most platforms suppress a hard bounced address automatically, but each one has quirks worth knowing before you rely on the default behavior.
Mailchimp cleans hard bounced addresses from your audience immediately and excludes them from every future send. The status is effectively final, which is exactly what you want for a dead mailbox and mildly annoying for the rare false positive.
HubSpot behaves similarly but leaves an escape hatch. HubSpot’s bounce documentation notes that a hard bounce can also be triggered by a strict security filter, not just a dead address. In that case the recipient’s IT team can allowlist your sending IPs, and you can unbounce the contact afterward. I have used that flow twice with enterprise prospects whose filters rejected everything unfamiliar.
Transactional providers like the ones behind your receipts and password resets work differently again. They maintain suppression lists you can query through an API, and they expose bounce webhooks as the primary interface. Nothing propagates to your other tools unless you build the plumbing yourself.
The common trap sits between platforms. Suppression lives inside each tool, so a migration can silently discard years of bounce history. During a 2020 ESP switch, a team I advised imported their contacts but not their suppression list. Their first send from the new platform bounced at 4 percent, entirely from addresses the old system already knew were dead. Export suppressions first, always.
How Do Catch-All Domains Complicate Hard Bounces?
A catch-all domain accepts mail for any address during the initial check, then may still reject or discard it later. That behavior breaks the clean logic of verify first, send second.
Here is the mechanic. A catch-all email server is configured to accept messages for every possible address at its domain, real or not. When a verification tool asks whether jane@thatdomain.com exists, the server says yes to everything. The tool cannot tell a live mailbox from a void, so it labels the address accept-all, risky, or unknown.
The result is delayed hard bounces. An address verifies fine on Monday, then bounces on Thursday when the internal system behind the catch-all finally rejects it. Some catch-alls never bounce at all and silently discard the message, which is arguably worse because you learn nothing.
My handling rule comes from an audit I ran in 2024, where 31 percent of a 12,000-record B2B list sat on catch-all domains. We put those contacts in their own segment, mailed them in small batches, watched the bounce behavior per domain, and retired anything that failed twice. Treat catch-all as its own risk class, not as verified and not as garbage.
Why does this matter so much in B2B specifically? Because catch-all configurations are common at exactly the mid-market companies most outbound teams target. Ignore the category and you throw away a third of your addressable market. Mail it carelessly and your bounce rate pays the bill. The segment-and-watch approach threads that needle.
How Do You Prevent Hard Bounces?
Prevention beats cleanup, because reputation damage outlasts the bounce itself. Five habits keep hard bounce rates near zero:
- Use double opt-in. A double opt-in confirmation click proves the address exists and receives mail. Typos and fake entries die at the door instead of on your domain.
- Validate at the point of capture. Add syntax and domain checks to your forms, and suggest corrections for common typos like gamil.com. Cheap to build, permanent payoff.
- Verify before every large send. Any list older than a few months, and any list from a new source, goes through verification first. No exceptions after an event, a migration, or a purchase.
- Keep your data fresh. B2B addresses decay as people change jobs, so recheck cold segments on a schedule instead of assuming last year’s list still works.
- Prepare new domains properly. Run an email warmup period before real volume, and set up email authentication with SPF, DKIM, and DMARC, since major providers now reject unauthenticated bulk mail outright.
Sourcing matters just as much as hygiene. Teams that pull prospect lists from a B2B data provider such as CUFinder start with fresher addresses than a stale export, which lowers the bounce baseline. That said, no data source removes the need to verify before sending. Every address begins decaying the day you receive it, whoever supplied it.
One more habit rounds this out: a sunset policy. Stop mailing chronic non-engagers after a defined window, because addresses that never open are the ones most likely to die unnoticed and bounce later.
How Often Should You Clean Your Email List?
Verify active lists quarterly, verify new or imported lists before their first send, and verify dormant segments before any reactivation attempt. That schedule catches decay before the mailbox providers do.
The reasoning is simple. Addresses do not fail on your schedule; they fail when people change jobs, companies fold, and domains lapse. A quarterly pass keeps the gap between a death and its discovery small enough that your bounce rate never spikes.
Some situations deserve an immediate check regardless of the calendar:
- Any list older than six months. Assume meaningful decay and verify before sending a single message.
- Event and webinar imports. Hand-typed and scanner-collected addresses carry the highest typo rates I have measured.
- Reactivation campaigns. Contacts who have not engaged in a year include the highest share of dead mailboxes on your entire list.
- Post-migration sends. Verify after any CRM or ESP move, because sync errors resurrect suppressed addresses more often than anyone admits.
Does the routine pay off? In 2025 I put a client’s 40,000-subscriber newsletter on exactly this cadence. Hard bounces fell from 1.8 percent to 0.3 percent in two quarters, and their Gmail domain reputation climbed from Low back to High over the same window. Nothing else about their program changed.
What Are the Most Common Hard Bounce Mistakes?
The mistakes I keep seeing are re-mailing bounced addresses, ignoring bounce webhooks, and trusting bought lists. Each one has burned a team I worked with, so let me take them in order.
Re-mailing bounced addresses is the worst offender. In 2021 a client exported their inactive segment to a new outreach tool, including 1,800 previously bounced addresses, and mailed them all. The fresh domain landed on a blocklist the same afternoon. Providers also recycle some long-dead addresses into spam traps, so mailing old bounces can hit a trap and crater your reputation in one send.
Ignoring bounce data comes second. Multi-tool stacks fail here constantly: the ESP suppresses a dead address while the sales engagement platform keeps hammering it for weeks. If webhooks exist, use them. Otherwise, sync suppression lists between tools on a weekly schedule at minimum.
Bought lists round out the top three. A purchased file arrives with no permission, no engagement history, and no verification you can trust. High hard bounce rates are baked in before you write a single subject line.
Two quieter mistakes deserve a mention. Treating unknown verification results as valid quietly refills your list with risk. And deleting bounce logs instead of studying them throws away the only evidence of which source is rotting your list.
🧠 Worth Remembering: A hard bounce is data about your process, not just a dead contact. Every bounced address entered your list through a door. Find the door, fix the door, and the bounce rate fixes itself.
How Do You Measure and Monitor Hard Bounces?
Divide hard bounces by emails sent, then multiply by 100. A campaign that sends 10,000 messages and returns 45 hard bounces has a 0.45 percent hard bounce rate, which is healthy.
Track the number per campaign and per segment, not just as an account average. Your blended email bounce rate can look respectable while one imported segment quietly burns your domain in the background.
Three monitoring layers cover most teams. Your ESP’s bounce report gives per-send detail. Google Postmaster Tools shows how Gmail scores your domain over time. And a webhook feed into your CRM keeps every system’s suppression list honest.
Set an alert threshold rather than relying on memory. My standing rule is a notification at 1 percent hard bounces on any single send, which leaves room to react long before the 2 percent line comes into view.
Watch your email open rate alongside the bounce numbers too. A falling open rate right after a bounce spike usually means junk-folder placement, not boring subject lines. Keep the overall rate under 2 percent, hold hard bounces near 0.5 percent, and investigate any single send that breaks either line.
Frequently Asked Questions
What does a hard bounce mean in email?
It means the receiving server permanently rejected your message, usually because the address or its domain does not exist. The server returns a 5xx failure code, your platform records a hard bounce, and the address should never be mailed again.
What is the difference between a hard bounce and a soft bounce?
A hard bounce is a permanent failure, like a dead address, signaled by 5xx codes. Soft bounces are temporary failures, like a full mailbox, signaled by 4xx codes. Hard bounces get suppressed immediately, while soft bounces are retried and only escalate if they repeat.
What is an example of a hard bounce?
You email jane.doe@company.com two months after Jane left the company and IT deleted her mailbox. The server replies with a 550 5.1.1 code, meaning the mailbox no longer exists, and your platform marks the address as a hard bounce.
Should I delete hard bounce emails?
Suppress them rather than delete them. A suppression list blocks the address from every future send, even if someone re-imports it later. Deleting the record entirely removes that protection, and bounced addresses have a habit of sneaking back in through CRM syncs.
How do I fix a hard bounce email?
Usually you cannot, because the address is permanently dead. The exception is a block: if the bounce message names a blocklist or policy issue, fix your authentication, request delisting, and the address may work again. For dead contacts, find the person’s new address instead.
What is an acceptable hard bounce rate?
Keep total bounces under 2 percent of emails sent, and hard bounces near 0.5 percent. Benchmark research treats 2 to 5 percent as a warning zone and anything above 5 percent as critical. A single send above those lines deserves an immediate source audit.
How many soft bounces before a hard bounce?
It depends on the platform. Mailchimp converts an address after 7 soft bounces if the contact has no activity, or up to 15 if they have engaged before. Other platforms use their own thresholds, so check your ESP’s documentation for the exact rule.
So that is a hard bounce: a permanent no from the receiving server, a small tax on your reputation, and a clue about where your list quality leaks. Suppress fast, root-cause every spike, and verify before you send. Do those three things consistently and hard bounces stay what they should be, a rounding error.