How to Reduce Your Email Bounce Rate: 6 Fixes
How to reduce your email bounce rate: keep hard bounces under 2%, stop bad addresses at signup, and warm up old lists in batches. Six fixes, with sources.

Ajay Sohmshetty

To reduce your email bounce rate, stop bad addresses before they reach your database, then send carefully to the ones already there. That means six fixes: verify addresses at signup, send a confirmation email, offer social login, add a CAPTCHA, send from a dedicated subdomain, and warm up any unmailed list in small batches. Keep hard bounces under 2%; Amazon SES starts reviewing accounts at 5%.
Say your app has 4,000 signups and 100 of the addresses are bad: a few typos, a forgotten test account, some bots that slipped past the form. That's still 97.5% real users, and a 2.5% bounce rate on your first broadcast.
Mailbox providers don't read it that way. Amazon's deliverability guidance puts it bluntly: "When email receivers detect a high rate of hard bounces, they assume that you don't know your recipients well."[1] Spammers guess addresses, so a bouncy list looks like theirs. And the reputation that absorbs the damage usually isn't your email tool's. It's your domain's: the same domain your team, your support inbox, and your password resets send from.
What is a hard bounce?
A hard bounce is a permanent delivery failure: the address doesn't exist, the domain has no mail server, or the mailbox was deleted. The receiving server answers with a 5xx code. A soft bounce is temporary, like a full mailbox or an unavailable server, and often clears on a retry. It usually comes back as a 4xx code, but some servers report a full mailbox with a 5xx code, so email platforms sort bounces by reason, not by code alone.[2]
Hard bounces are the ones that count against you. Amazon SES (Simple Email Service) leaves soft bounces out of its bounce-rate calculation entirely, and its advice for hard bounces is to remove the address from your list immediately.[1][3]
Most email platforms suppress an address automatically after it hard bounces. That only stops the second bounce. The first one already hit your record, which is why the rest of this guide is about never sending to bad addresses at all.
What bounce rate is acceptable in 2026?
Keep hard bounces under 2%. Mailchimp puts the average campaign bounce rate at 1% to 2% and suggests investigating anything above 2%,[4] and across Validity's 2025 benchmark data the average hard-bounce rate was 1.46%.[5] Enforcement starts well above that, and by then you're already in trouble:
| Platform | Published line | What it means |
|---|---|---|
| Amazon SES | 5% bounce rate | Account placed under review[3] |
| Amazon SES | 10% bounce rate | Sending can be paused[3] |
| Twilio SendGrid | 5% hard bounces | Recommended ceiling[6] |
| Postmark | 10% bounce rate | Required limit; higher rates risk suspension[7] |
| Gmail | 0.1% spam complaints, never 0.3%+ | Recommended and hard limits for bulk senders[8] |
| Yahoo | 0.3% spam complaints | Required limit[9] |
Gmail and Yahoo don't publish a bounce threshold. Their hard lines are spam-complaint rates, but bounces feed the same domain reputation, and Yahoo tells senders to remove invalid recipients promptly.[9]
Percentages also get twitchy at low volume. If you send 150 emails and 4 bounce, that's 2.7%. Small senders should count bad addresses, not just the rate.
Why do bounces put your whole domain at risk?
Mailbox providers build reputation around your authenticated sending domain. Google's original Postmaster Tools rated domain reputation from Bad to High and described mail from a low-reputation domain as "likely to be marked as spam."[10] The newer Postmaster Tools v2 no longer shows that score; it reports your spam rate and whether you meet Gmail's sender requirements instead.[11]
If you send product email from your root domain, that reputation carries everything: founder outreach, support replies, password resets, receipts, and marketing blasts. All of it rides on your email program's worst day.
What a bounce spike hits: root domain vs. subdomain
| Setup | What a bounce spike affects |
|---|---|
| Sending from the root domain (yourapp.com) | Everything: founder and team email, support replies, password resets, receipts, and marketing |
| Sending from a dedicated subdomain (mail.yourapp.com) | Mainly the subdomain's product and marketing email; the root domain's reputation is much less exposed |
M3AAWG (Messaging, Malware and Mobile Anti-Abuse Working Group), the industry group where mailbox providers and large senders agree on best practices, recommends "a separate subdomain of the main domain name for each distinct sending purpose," keeping the main domain for the mail your business runs on.[12] Postmark compares subdomains to branches of a tree: the root affects them, but each builds its own strength.[13]
The damage is asymmetric. A reputation drop can happen in one send, while Gmail's published recovery path only makes bulk senders eligible for mitigation after their spam rate stays below 0.3% for 7 consecutive days.[8] Even then, "it can take some time for Gmail to adjust."[14]
So set up something like mail.yourapp.com for product and marketing email first. The DNS work is the same as for your root domain, and it limits how far a bad send can spread.
Where do bad addresses come from?
A dirty list builds itself, one unverified signup at a time. Of the more than 11 billion addresses ZeroBounce checked in 2025, only 62% came back valid.[15]
Only 62% of 11 billion checked addresses were valid
- Valid
- Catch-all
- Invalid
- Abuse, do-not-mail & unknown
| Result | Share of addresses |
|---|---|
| Valid | 62% |
| Catch-all (can't be confirmed) | 9% |
| Invalid (would hard bounce) | 23% |
| Abuse, do-not-mail, and unknown | 6% |
On a typical app signup form, bad addresses arrive four ways:
- Typos.
gamil.com,hotmail.con,yaho.com. Real users, wrong address, usually a hard bounce. When the startup Kicksend added a did-you-mean suggestion to its signup form, confirmation-email bounces dropped 50%. That experiment became mailcheck.js, still a drop-in typo suggester (it doesn't validate addresses).[16] - Disposable domains. Addresses from mailinator.com or temp-mail.org are throwaway inboxes. Mailinator's public inboxes accept mail for any address and delete it after a few hours, so nobody reads what you send.[23] People use them to grab a free trial without hearing from you again.
- Bots. Automated traffic passed human traffic on the web in 2024, at 51%, with bad bots alone at 37%. Creating fake accounts in bulk is one of their documented uses.[17] Some bots fill a form with thousands of made-up addresses that bounce; others sign up one real person's address over and over, sending mail to someone who never asked for it.[24]
- Your own test accounts. The
test@test.comyou typed during a late-night debugging session is still in the users table, and it will bounce every campaign you send.
None of these addresses will turn into a reader. Typos, test accounts, and made-up bot addresses bounce. The rest accept mail that nobody reads or wants, which mailbox providers also hold against you.
How do you stop bad addresses at signup?
The cheapest bounce is the one that never gets a row in your database. Four of the six fixes live on your signup form.
1. Run addresses through an email verification service. Kickbox, NeverBounce, and ZeroBounce answer the same questions about an address: does the domain exist, does the mailbox exist, is it a known disposable provider. Call the API from your signup form to catch bad addresses in real time, or check the addresses you've already collected. As of September 2026, small pay-as-you-go purchases cost roughly $8 to $20 per 1,000 checks (NeverBounce at about $8; ZeroBounce's minimum purchase of 2,000 checks for $39, or $19.50 per 1,000), with discounts at volume. ZeroBounce also includes 100 free checks a month if you sign up with a business domain.[18]
2. Send a confirmation email. Yahoo's sender guidance recommends confirmed opt-in outright: ask new signups to click a link, then set a verified flag on your users table.[9] A confirmation sent to a bad address costs you one bounce, and that address never gets another send. An unverified list emailed for a year can cost you the domain.
3. Offer social login. A "Sign in with Google" button hands you an address Google vouches for, as long as it's a Gmail or Google Workspace account. For other email domains, Google recommends your own confirmation step, because ownership may have changed since Google checked it.[25] In Auth0's 2022 data, Google accounted for 75% of social logins, so one provider covers most of the value.[19]
4. Add a CAPTCHA. Cloudflare Turnstile and Google reCAPTCHA have free tiers. When Cloudflare put Turnstile on its own signup page, it blocked over a million automated signup attempts in a month "without a reported false positive or any change in our self-service billings."[20]
Then make the verified flag do the work: send marketing and lifecycle email only to verified users.
How to rescue a list you already have
If you already have thousands of signups collected before any of this was in place, don't broadcast to all of them and find out from the bounce report. Do this instead:
- Bulk-verify the whole list. The same services take a CSV (comma-separated values) upload and return valid, invalid, disposable, and catch-all buckets.
- Drop invalid and disposable addresses. Treat catch-all addresses as a maybe pile: their servers accept everything, so they can't be confirmed without sending.
- Move to your subdomain. If you're building reputation from scratch anyway, build it on
mail.yourapp.com, where a mistake is less likely to reach your main domain. - Warm up in batches. Start with a few hundred sends to your most engaged users, the people who logged in recently. Check results by receiving provider before increasing volume gradually.
Release a small batch. Check. Then double.
| Batch | Sends |
|---|---|
| Batch 1 (most engaged users) | 250 |
| Batch 2 | 500 |
| Batch 3 | 1,000 |
| Batch 4 | 2,000 |
| Batch 5 | 4,000 |
The batch sizes matter less than the checkpoints. Postmark's rule is the one to tape to your monitor: "never increase your volume until you've looked at your messages' performance by receiver."[13] Google warns that suddenly doubling your previous volume "could result in rate limiting or reputation drops."[21] Use those checkpoints rather than a fixed doubling rule. Increase gradually only when receiver-level performance supports it. If bounces or complaints rise, stop, find the segment that caused it, and clean it before the next batch.
Expect the full ramp to take weeks, not days. Postmark estimates 3 to 6 weeks to dependable full-volume deliverability, and M3AAWG suggests about 6 weeks on average.[12][13] A new subdomain starts with no history, and to a spam filter, unknown looks a lot like bad.
How do you keep your list clean going forward?
A clean list doesn't stay clean. People change jobs and abandon inboxes: ZeroBounce estimates at least 23% of a list decays each year, and its yearly estimates since 2021 have ranged from 22% to 28%.[15] Three habits keep you ahead of it:
- Make unsubscribing effortless. Gmail and Yahoo require bulk senders to offer one-click unsubscribe on marketing and subscription email, honored within two days; Gmail exempts transactional messages like password resets.[8][9] A reader who can't find the unsubscribe link reports you as spam instead.
- Stop mailing the unengaged. Yahoo is direct: "Sending email to users who are not reading them, or who report them as spam, will harm your delivery metrics and reputation."[9] Google suggests unsubscribing recipients who don't open or read your messages.[21] Abandoned addresses can also become spam traps: M3AAWG suggests providers wait at least 12 months before recycling one into a trap, so long-silent addresses are the risky ones.[22]
- Watch the numbers. Google Postmaster Tools is free and shows your spam rate and compliance with Gmail's rules. Check bounces per send and per segment in your email platform, so a bad segment shows up after one batch instead of one quarter.
For the rest of the inbox picture (authentication, complaint limits, and what Gmail, Yahoo, and Outlook require), see our email deliverability guide.
Where Dreamlit fits
The verification and gradual sending steps above still apply to your app's email. With Dreamlit, the company behind this blog, you can ask your AI agent to build workflows from your Supabase or Postgres database instead of maintaining the sending logic yourself. Preview each email with real data; nothing sends until you publish.
Dreamlit sends from your domain and handles bounces, complaints, and unsubscribes. You still need to collect valid addresses and email people who expect to hear from you.
Start a 7-day free trial or connect your agent.
References
- Amazon SES: Metrics for success
- Mailchimp: Soft vs. hard bounces; RFC 5321, section 4.2.1 (SMTP reply codes); Amazon SES: Bounce response codes
- Amazon SES: Reputation metrics messages
- Mailchimp: How to reduce email bounce rates
- Validity: 2026 Email Deliverability Benchmark Report, p. 13
- Twilio SendGrid: Bounce and block classifications
- Postmark: Servers FAQ
- Google: Email sender guidelines FAQ
- Yahoo: Sender best practices
- Google Postmaster Tools: Dashboards
- Google: Postmaster Tools v1 deprecation notice
- M3AAWG: Sending Domains Best Common Practices
- Postmark: How to warm up a domain
- Google: Top 10 Gmail sender issues
- ZeroBounce: Email List Decay Report
- Kicksend: How we decreased sign-up confirmation email bounces by 50%
- Imperva: 2025 Bad Bot Report
- NeverBounce pricing and ZeroBounce pricing
- Okta/Auth0: Going deep with social login
- Cloudflare: Turnstile general availability
- Google: Email sender guidelines
- M3AAWG: Help! I Hit a Spam Trap!
- Mailinator: FAQs
- Mailchimp: How to protect your email list from bots
- Google Identity: Verify the Google ID token
Last validated: September 2026. Provider thresholds and requirements change; check the linked primary sources before relying on a specific number.
Frequently asked questions
What is a good email bounce rate?
Keep hard bounces under 2%. Mailchimp puts the average campaign bounce rate at 1% to 2%, and Validity's 2025 data averaged 1.46% for hard bounces. Enforcement starts higher: Amazon SES reviews accounts at a 5% bounce rate, SendGrid recommends staying under 5% hard bounces, and Postmark requires under 10%.
What's the difference between a hard bounce and a soft bounce?
A hard bounce is a permanent failure, usually because the address or domain doesn't exist; servers answer with a 5xx code. A soft bounce is temporary, like a full mailbox or an unavailable server, and usually comes back as a 4xx code, though some servers report a full mailbox with a 5xx code. Hard bounces are the ones that damage reputation, and Amazon SES leaves soft bounces out of its bounce-rate calculation.
Do email bounces hurt my domain reputation?
Yes. Mailbox providers build reputation around your authenticated sending domain, and a high hard-bounce rate signals a guessed or neglected list. As Amazon puts it, receivers that see many hard bounces assume you don't know your recipients well.
Should I send marketing email from my root domain?
No. M3AAWG, the industry group where mailbox providers and senders agree on best practices, recommends a separate subdomain for each sending purpose, such as mail.yourapp.com. A bad sending day is then much less likely to drag down the domain your team's everyday email depends on.
How do I safely email a list of users who never verified their addresses?
Run the list through a verification service and remove invalid and disposable addresses, treating catch-all addresses with caution. Then send in small batches to your most recently active users first, check bounces and complaints after each batch, and only increase volume when the numbers come back clean.
How long does it take to warm up a sending domain?
Postmark estimates 3 to 6 weeks to an established reputation at full volume, and M3AAWG suggests planning for about 6 weeks on average. Start small, send to engaged users first, and increase volume only after each step looks clean.
What causes a high email bounce rate?
Mostly addresses that should never have been on the list: signup typos, disposable domains, bot sign-ups, forgotten test accounts, and old addresses that have since been abandoned. ZeroBounce estimates at least 23% of a list decays each year.
About the Author

Co-Founder & CEO
Ajay is Co-Founder and CEO of Dreamlit AI, which runs user activation for software companies. He was previously co-founder and CTO of Harmonic AI and a software engineer at Google. Full bio →
Other articles

Email Deliverability Guide 2026: Checklist and Sender Rules
Email deliverability explained: a prioritized checklist, the 2026 Gmail, Yahoo, and Outlook sender rules, and how to fix email that keeps landing in spam.

Email Deliverability Benchmarks 2026: Inbox Placement Data
Validity's 2025 seed tests averaged 87.2% inbox placement, but only 77.4% at Microsoft. Inbox, spam, complaint, and bounce benchmarks by provider, region, industry, and B2B.