BookMySpot

Deliverability

How to Reduce Your Email Bounce Rate: A Practical Checklist

To reduce your email bounce rate, stop bad addresses from getting onto your list, remove dead addresses before you send, and process every bounce so you never mail the same failure twice. In practice that means validating addresses at signup, confirming new subscribers, re-checking lists you haven’t mailed recently, suppressing hard bounces immediately, and authenticating your domain so policy blocks don’t show up as bounces.

Below is the checklist we’d hand to a team that just got a high-bounce warning from its ESP. It’s organized by where in the lifecycle each fix applies: at capture, before a send, during a send, and after a send.

First, find out what kind of bounce problem you have

Before changing anything, pull the bounce data from your last few campaigns and group it by SMTP code. The fix depends on what you find.

Mostly seeing…It meansJump to
5.1.1, “user unknown,” “no such user”Dead or mistyped addressesCapture and pre-send sections
5.1.2, domain not foundTypo domains or defunct companiesCapture section
5.7.x policy codesYour mail is being blocked, not your addressesDuring-send section
4xx deferrals at one providerThrottling or reputationDuring-send section
4.2.2 / 5.2.2 mailbox fullAbandoned mailboxesAfter-send section

If you’re unsure what a code means, SMTP bounce codes explained has a reference table.

Also group bounces by acquisition source (signup form, import, event, partner) and by last engagement date. Most bounce problems trace back to one source or one stale segment.

Stage 1: Stop bad addresses at the point of capture

Every address you prevent from entering your list is a bounce you never have to handle.

1. Validate syntax and domain in real time

Check each address when it’s typed, not after it’s saved. At minimum:

  • Is the syntax valid (one @, a valid local part, a valid domain)?
  • Does the domain exist in DNS?
  • Does the domain have MX records, or an address record that can receive mail?
  • Has the domain published a null MX? RFC 7505 defines a single MX record of 0 . as a way for domains to declare that they accept no email.

A quick DNS check from the command line shows what you’re looking for:

$ dig +short MX gmail.com
5 gmail-smtp-in.l.google.com.
10 alt1.gmail-smtp-in.l.google.com.
...

$ dig +short MX gmial.com
(no answer, or records for an unrelated parked domain)

2. Catch typos before they’re saved

Misspelled domains like gmial.com, hotmal.com, and yaho.com are a steady source of hard bounces. A “Did you mean gmail.com?” prompt fixes them while the user is still on the page. Our post on common email typos lists the patterns to look for.

3. Filter disposable addresses where it makes sense

Temporary inbox services produce addresses that work for minutes or hours and then bounce. If your signup offers something people might want without a long-term relationship (a download, a trial), decide whether to block or flag them.

4. Use confirmed opt-in

Double opt-in sends a confirmation link and only adds the address once it’s clicked. Every confirmed address has received at least one email successfully. The M3AAWG Sender Best Common Practices warn that single opt-in should be used with extreme caution, because it lets typos and forged addresses onto lists and leads to complaints and bounces.

5. Protect forms from bots

Bots fill forms with random or stolen addresses, which bounce or generate complaints. Amazon SES’s guidance on “listbombing” recommends a CAPTCHA on every web signup form and a confirmation email for new signups (AWS).

You can test individual addresses or small batches with the free email verifier on this site. It checks syntax, domain and MX records, disposable domains, role-based addresses like info@ and sales@, free-provider domains, and common domain typos. It doesn’t connect to the mailbox over SMTP, so it won’t tell you whether a specific inbox exists.

Stage 2: Clean the list before you send

6. Never send to purchased or rented lists

Amazon SES’s email program guidance warns that bought or rented lists can contain large numbers of invalid addresses and spam traps, and that hitting spam traps can damage your sender reputation badly. Most ESPs forbid them outright.

7. Re-verify segments you haven’t mailed recently

Addresses die on predictable schedules. Major providers close inactive accounts:

  • Yahoo: a mailbox not accessed for 12 months becomes inactive and stops receiving new email (Yahoo Help).
  • Outlook.com: Microsoft closes the mailbox if the owner hasn’t signed in at least once in a one-year period (Microsoft Support).
  • Google: personal accounts not used within a two-year period may be deleted (Google).

Business addresses die when people change jobs. So any segment you haven’t mailed in many months should be verified before it goes back into rotation.

8. Re-permission old segments instead of blasting them

For contacts you can’t confirm through other signals, Amazon SES suggests checking status through other means first (such as website logins or purchase history) and otherwise sending a win-back email, then removing everyone who doesn’t respond (AWS). Send that win-back to small batches so a bad segment doesn’t sink your whole send. Our guide to re-engagement campaigns has templates and timing.

9. Deduplicate and normalize

Duplicates don’t cause bounces by themselves, but they double the damage when an address is bad. Trim whitespace, lowercase the domain, remove obvious junk like test@test.com, and merge duplicates before import.

10. Check suppression at send time

Make sure every send, including one-off sends from sales tools and imports into new platforms, checks the global suppression list. A common cause of repeat hard bounces is a second tool that never got the suppression list. Our existing guide on suppression list design covers the details.

Stage 3: Send in a way that doesn’t create bounces

Some “bounces” are really blocks. These steps reduce rejections that have nothing to do with bad addresses.

11. Authenticate your domain

Gmail rejects mail that fails the sender domain’s DMARC policy with 550 5.7.26, and mail from IPs without a PTR record with 550 5.7.25, according to Google’s SMTP error list. Since February 1, 2024, Google has required SPF or DKIM for all senders to Gmail accounts, and SPF, DKIM, and DMARC for senders of more than 5,000 messages a day (Google sender guidelines). Follow How to Set Up SPF, DKIM, and DMARC.

12. Throttle per provider

Sending too fast triggers deferrals like Gmail’s 421 4.7.28 (“Gmail has detected an unusual rate of email”). Google advises reducing sending volume when messages start bouncing or getting deferred, until the error rate decreases. Spread large sends over time and limit concurrency per receiving domain.

13. Warm up new domains and IPs

A brand-new sending domain or IP has no reputation, and receivers are cautious with it. Ramp volume gradually, starting with your most engaged contacts.

14. Keep messages a reasonable size

Amazon SES classes MessageTooLarge and AttachmentRejected as transient bounces that you can fix by shrinking the message or changing the attachment (AWS). Link to large files instead of attaching them.

Stage 4: Handle bounces after every send

15. Suppress hard bounces immediately

Don’t wait for the next cleanup. Amazon SES’s guidance is to remove a hard-bouncing address immediately and never try to resend to it. Most ESPs do this automatically. Confirm yours does, and that the suppression syncs back to your CRM.

16. Set a rule for repeated soft bounces

A single soft bounce is noise. Repeated soft bounces mean an abandoned mailbox. Pick a rule that combines a count and a time window. Two published examples:

  • M3AAWG: remove an address that bounces consecutively at least two times over two weeks or more.
  • Mailchimp: converts a soft bounce to a hard bounce after 7 soft bounces for contacts with no activity and up to 15 for contacts with previous activity (Mailchimp).

17. Don’t suppress on policy blocks

If a bounce carries a 5.7.x code, the address is probably fine. Suppressing it loses a real subscriber and hides the actual problem. Fix authentication or reputation and resend later.

18. Feed bounce data back to the source

Tag every bounce with where the address came from. If one form, partner, or event produces most of your bounces, fix that source. Cleaning up after it every month is the expensive way to handle it.

19. Monitor and alert

Set alerts on hard bounce rate per campaign and on a rolling window. Amazon SES, for example, recommends a CloudWatch alarm when the account bounce rate reaches 5% (AWS). Set your own alert well below whatever level your provider enforces.

The checklist at a glance

  1. Validate syntax, domain, and MX at signup
  2. Suggest corrections for typo domains
  3. Decide on a disposable-address policy
  4. Use confirmed opt-in
  5. Add bot protection to forms
  6. Never use purchased lists
  7. Re-verify stale segments
  8. Re-permission inactive contacts
  9. Deduplicate and normalize
  10. Check suppression at send time, in every tool
  11. Authenticate with SPF, DKIM, and DMARC
  12. Throttle per provider
  13. Warm up new domains and IPs
  14. Keep messages small
  15. Suppress hard bounces immediately
  16. Set a repeated-soft-bounce rule
  17. Don’t suppress on policy blocks
  18. Fix the worst source
  19. Monitor and alert

FAQ

What’s the fastest way to lower my bounce rate?

Stop sending to segments you haven’t mailed in a long time and make sure every hard bounce is suppressed. Those two steps usually remove most repeat failures within one or two campaigns. Then fix collection so new bad addresses stop coming in.

Will email verification eliminate bounces?

No. It removes a large share of preventable ones, such as syntax errors, typo domains, dead domains, and disposable addresses, but no check can predict every future failure. Mailboxes fill up, people leave jobs, and some servers accept everything at check time and reject later. Our post on why emails still bounce after verification explains the gaps.

Does sending more slowly reduce bounces?

It reduces deferrals and rate-limit errors, which some tools count as soft bounces. It doesn’t fix invalid addresses. If your bounces are mostly 4xx codes at one provider, slowing down helps. If they’re 5.1.1 errors, you need list cleaning.

How often should I clean my email list?

Process bounces after every send. Re-verify any segment before mailing it if you haven’t sent to it in several months, and verify every imported list before its first send.

Check your list before you send

Free email verifier: syntax, MX, disposable and role-based addresses, typos. Paste up to 100 at once.

Verify emails free