Deliverability

What is a good bounce rate for cold email, and what should you do when you pass it?

By the anymail team ·
Short answerA good bounce rate for cold email is a hard bounce rate under 2%, and 5% is the line where you pause and investigate. Count hard bounces against emails attempted, stop the campaign when you cross the line, and fix the list before you send another message.

A hard bounce rate under 2% is a good result for cold email. Between 2% and 5% you have a list problem to look at this week. Above 5% you pause the campaign. These are rules of thumb used by deliverability specialists. Gmail and Microsoft publish no bounce limit of their own, so treat the numbers as working thresholds and adjust them to your own history.

The reason to stop early is simple. Every bounce tells a mailbox provider that you send to addresses you have not checked. That reputation attaches to your sending domain, and a campaign that runs overnight can finish its whole list before anyone looks at a chart.

How do you calculate bounce rate?

Divide hard bounces by emails attempted. If you send 200 emails and 8 come back as permanent failures, the rate is 4%.

Two details change the number:

  • Hard and soft bounces are different events. A hard bounce is a permanent rejection, such as an address that does not exist. A soft bounce is temporary: a full mailbox, a greylisting delay, a server outage. Count hard bounces for the threshold and watch soft bounces separately.
  • The denominator matters. Divide by emails attempted. Delivered emails leave out the failures, so they give a rate that looks better than it is.

Small samples mislead. One bounce out of three sends is 33%, and it means almost nothing. Wait for a few dozen sends before you read the percentage.

What counts as a good bounce rate?

Hard bounce rate Reading Action
Under 2% Normal for a verified list Keep sending, keep watching
2% to 5% The list has aged or was never checked Verify the rest of the list before the next batch
Above 5% The list or the data source has a problem Pause the campaign and investigate

Run the same check per campaign and per sending domain. An average across all campaigns can hide one bad list.

Why do cold emails bounce?

Most bounces come from five causes:

  1. Old data. People change jobs and companies close addresses. A list that is a year old will bounce more than one exported last week.
  2. Typos and guessed addresses. Patterns such as first.last@company.com are guesses until something confirms them.
  3. Unverified sources. Exports from scraped or resold databases carry the highest failure rates.
  4. Catch-all domains. The server accepts every address, so a check cannot confirm the mailbox, and some of those messages bounce later.
  5. Your own DNS. Missing SPF or DKIM records can make receiving servers reject mail that would otherwise land.

What should you do when you pass the threshold?

Work through these steps in order:

  1. Pause the campaign. Do not wait for the next send window.
  2. Separate hard from soft bounces. Only hard bounces count against the threshold, and only hard bounces go on a suppression list.
  3. Look for the pattern. Group the bounces by source file, by recipient domain and by import date. One bad source usually explains most of them.
  4. Verify the remaining addresses. Run the unsent part of the list through a verification service before you send again.
  5. Suppress every hard-bounced address. Add the address, and when a whole domain rejects you, add the domain.
  6. Check SPF, DKIM and DMARC. Confirm all three records pass on the domain you send from.
  7. Resume at a lower daily volume. Send a small batch, read the rate, then increase.

When is a higher rate acceptable?

Sometimes it is not a rate problem at all. A campaign of 20 emails with 2 bounces is 10%, and that sample is too small to judge. A list of generic role addresses, such as info@, can also bounce more than a list of named people. Use the thresholds for decisions on real volume and use judgement on small sends.

How does anymail handle bounce rate?

anymail has a feature called Bounce shield. It pauses a campaign when hard bounces exceed 5% of attempts once at least 20 emails have gone out, or after 3 hard bounces in a row. The 5% default can be changed from 1% to 20% for each campaign, and the count runs from the start of the campaign. A paused campaign shows its bounce rate and waits for your review. A bounce at one address can also pause the colleagues at the same company in that campaign, which stops further mail to a server that already rejected you. Verification runs on import, so a list is checked before the first email leaves a mailbox. The details are on the deliverability page.

Frequently asked questions

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

A hard bounce is a permanent failure, usually because the address does not exist. A soft bounce is a temporary failure such as a full mailbox or a server that is down, and the same address can work later.

Does a 5% bounce rate always damage a domain?

No single number is a verdict. Mailbox providers look at patterns over time, so one small campaign at 5% matters less than a steady 5% across weeks. The rate is a signal to stop and check the list.

Can I resume a paused campaign?

Yes. Clean the list first, remove the addresses that bounced, then resume at a lower daily volume and watch the first batch.

Does anymail pause campaigns automatically?

Yes. The Bounce shield pauses a campaign when hard bounces exceed 5% after at least 20 sends, or after 3 hard bounces in a row. You can set the threshold between 1% and 20% for each campaign.

See which companies are warming up.

Start free trial