Hard bounces, soft bounces, and what your bounce rate is telling you
The difference between permanent and temporary bounces, which ones to suppress, what a rising bounce rate means, and what to do before the next send.
By the OutreachPro team at DanixSoft6 min read
A bounce is a message the receiving server refused or could not deliver, reported back to you as a delivery status notification. The question that matters is whether the failure is permanent (a hard bounce) or temporary (a soft bounce), because the right response is opposite in the two cases.
Reading the code
Every bounce carries an SMTP reply code, and usually an enhanced status code as well (defined in RFC 3463). The first digit tells you most of what you need.
- 5.x.x is a permanent failure. 5.1.1 (the mailbox does not exist) is the classic hard bounce.
- 4.x.x is a temporary failure: the server is busy, is deferring you, or wants you to try again later.
- Not every 5.x.x means the address is bad. 5.2.2 (mailbox full) usually recovers, and 5.7.x codes are policy rejections: the address may be fine, and the problem is how your mail or your domain looks to that server.
What to do with each
- Hard bounce on the address itself: stop sending to it, permanently. Mailing an address that does not exist is one of the clearest signals receivers use to spot a sender with a bad list.
- Soft bounce: retry later, and give up after a few attempts. Do not suppress the address; that silently deletes a real person.
- Policy rejection (5.7.x): do not blame the address. Check your authentication with the domain health checker and look at what changed in your sending.
OutreachPro applies exactly this split. Permanent address failures such as 5.1.1 add the address to the account-wide suppression list at once. Mailbox-full and temporary failures are retried and never suppressed. Anything it cannot classify is retried rather than suppressed, because wrongly deleting a contact is the worse mistake.
What a bounce rate means
The bounce rate is bounced messages divided by messages you attempted to send. There is no single official threshold. Many email providers and sending platforms treat a rate above about 2% as a sign of a list problem, and a rate in the high single digits as serious. OutreachPro raises a notification when a campaign passes 5% over at least 50 messages, a threshold we chose to catch a bad list early rather than one any mailbox provider publishes.
A high rate almost always means the list, not the message. The usual causes:
- Age. People change jobs and addresses die. A list that was clean two years ago will not be now.
- Collection without confirmation. A signup form with no confirmation step collects typos and fake addresses.
- A list that did not come from the people on it. Bought and scraped lists bounce heavily, and they are exactly what receivers are trying to filter. What counts as consent explains why OutreachPro requires a consent record on every import.
Before the next send
- 1Pause the campaign if the rate is climbing. More sends to the same list make it worse.
- 2Look at which addresses bounced and where they came from. If they cluster in one import or one source, that source is the problem.
- 3Re-confirm old contacts rather than mailing them cold. A short “do you still want these emails?” message costs little and protects everything else you send.
- 4Remove role addresses (info@, sales@) that nobody individually opted in from.