Blog / Email Marketing

Cold Email Bouncing? 7 Rules to Fix Bounce Rate Before It Kills Your Domain

Your Campaign Bombed. Here Is the Diagnosis.

Your last cold email campaign had an 18% bounce rate. You did not know that until your outreach tool sent the summary. Now Gmail is throttling your domain, your open rate collapsed from 35% to 8%, and your $5,000/month prospecting stack is burning cash on dead addresses.

The problem is not your subject line. It is not your send time. It is not your follow-up sequence.

You are sending to invalid email addresses, and every bounce is a vote against your domain reputation.

Most teams discover this too late. According to Validity's 2024 State of Email report, a bounce rate above 2% triggers measurable inbox placement degradation. At 5%, major mailbox providers (Gmail, Outlook, Yahoo) begin throttling or outright rejecting your mail. Recovery takes 3–6 months of perfect list hygiene.

This guide is the diagnosis — and the treatment. We cover the exact bounce rate thresholds that matter, the 7 rules outbound teams use to stay under 2%, and a 10-line MailValid API integration that costs $0.001 per email.

Get 100 free verification credits — no credit card →


The 2% Rule: How Many Bounces Before Stopping a Cold Email Campaign

This is the most common question we see from outbound teams: How many bounces are too many? When do I pause? When do I stop?

Here is the exact framework used by teams sending 100,000+ cold emails per month:

Bounce Rate Status Action Required Risk Level
0–1% Excellent Maintain current workflow None
1–2% Good Monitor closely; verify next list before sending Low
2–3% Warning Pause new sequences; re-verify entire list Medium
3–5% Critical Stop all sends immediately; clean list + warm-up reset High
5%+ Emergency Full stop. Domain reputation damage likely. 3–6 month recovery. Severe

The hard line is 2%. Below 2%, your sender reputation is safe. Between 2–3%, you are in the danger zone where ISPs start scoring you down. Above 3%, you are one campaign away from throttling. Above 5%, you are likely already blacklisted by one or more providers and do not know it yet.

Why 2%? The Validity Data

Validity (the company behind Sender Score) collected data from over 4 billion mailboxes and found that senders with bounce rates under 2% maintain inbox placement rates above 85%. At 3–5%, inbox placement drops to 60–70%. Above 5%, it can fall below 50% — meaning half your emails go to spam or are rejected outright.

The 2% threshold is not arbitrary. It is the point where mailbox provider algorithms shift from "monitor" to "penalize."


Bounce Rate Benchmarks by Email Type

Not all bounces are equal, and not all lists carry the same risk. Here is how bounce rates break down by list source:

List Source Typical Bounce Rate (Unverified) Risk Factor
Scraper exports (Apollo, Hunter, ZoomInfo) 15–35% High — decayed enrichment data
Purchased lead lists 25–45% Severe — often contain spam traps
LinkedIn Sales Navigator exports 10–20% Medium — better than scrapers, still decayed
Webinar signups (organic) 5–12% Low-Medium — typos and fake emails
Inbound demo requests 3–8% Low — user-intent addresses
Referral introductions 1–3% Very Low — pre-warmed contacts

If your list source is in the top half of this table, verification is not optional. It is the price of admission.


The 7 Anti-Bounce Rules

These are the seven rules top outbound teams follow to maintain sub-2% bounce rates. Skip any one, and your risk compounds.

Rule 1: Verify Before You Send — Every Single Time

The only scalable fix is real-time verification at the point of list import. Not regex validation. Not MX lookup. Full SMTP handshake verification that confirms the mailbox exists.

Here is how to verify a single email with the MailValid API in Python:

import requests

API_KEY = "mv_live_your_key_here"
EMAIL = "[email protected]"

response = requests.post(
    "https://mailvalid.io/api/v1/verify/single",
    headers={
        "X-API-Key": API_KEY,
        "Content-Type": "application/json"
    },
    json={"email": EMAIL}
)

result = response.json()
print(result)

Sample response:

{
  "success": true,
  "credits_used": 1,
  "result": {
    "email": "[email protected]",
    "status": "valid",
    "is_valid": true,
    "syntax_valid": true,
    "domain_valid": true,
    "has_mx": true,
    "smtp_checked": true,
    "smtp_response_code": 250,
    "is_disposable": false,
    "is_role_based": false,
    "is_catch_all": false,
    "confidence_score": 95,
    "status_reason": "mailbox_confirmed",
    "verification_time_ms": 234
  }
}

MailValid checks syntax, domain, MX records, SMTP handshake, disposable detection, role-based detection, and catch-all detection in a single call. Average response time is under 500ms.

For bulk lists, verify before importing into your outreach tool:

import requests
import csv

API_KEY = "mv_live_your_key_here"

def verify_bulk(email_list):
    response = requests.post(
        "https://mailvalid.io/api/v1/verify/bulk",
        headers={"X-API-Key": API_KEY, "Content-Type": "application/json"},
        json={"emails": email_list}
    )
    return response.json()

# Verify 100 emails at once
emails = ["[email protected]", "[email protected]", "[email protected]"]
results = verify_bulk(emails)

Get your free API key →

Rule 2: Do Not Trust Apollo or Hunter "Verified" Badges

Here is a secret the lead gen platforms do not advertise: verified does not mean deliverable.

Apollo's own documentation states their email verification process achieves approximately 91% accuracy. That means 9% of "verified" Apollo emails will bounce. On a list of 10,000 contacts, that is 900 guaranteed bounces — enough to push you into the 3–5% danger zone if the rest of your list is imperfect.

Why do verified emails still bounce?

  • Data decay: Apollo's enrichment data comes from third-party sources with refresh cycles that lag reality by 3–6 months. An employee who left last quarter is still marked "verified."
  • Catch-all acceptance: Many corporate domains accept all email (catch-all), so verification tools see a 250 OK response. The mailbox does not exist, but the server says it does.
  • Role-based traps: Addresses like info@, admin@, and noreply@ may pass verification but reject external cold mail.

The fix: Run every Apollo and Hunter export through SMTP verification after export. Do not trust the platform badge. Trust the SMTP handshake.

Rule 3: Warm Up New Domains — No Exceptions

A fresh domain sending 500 cold emails on day one is an automatic red flag. Gmail and Outlook have no sender history for your domain, so they default to extreme caution.

The 14-day warm-up schedule:

Day Daily Volume Target Inbox Rate
1–3 10–20 emails 100% (to known good addresses)
4–6 30–50 emails 95%+
7–9 75–100 emails 90%+
10–12 150–200 emails 85%+
13–14 300–500 emails 80%+
15+ Scale to target volume Maintain <2% bounce rate

Send to your warmest, most verified contacts in the first week. Use MailValid to filter your highest-confidence addresses (confidence_score ≥ 90) for the initial sends.

Rule 4: Filter Catch-All Domains Before Sending

Catch-all domains silently destroy deliverability. The SMTP server accepts every email, so your tool reports "delivered." But the email goes nowhere. Your bounce rate looks fine while your reply rate stays at zero.

MailValid flags catch-all domains in the API response:

if result["result"]["is_catch_all"]:
    # Exclude from cold outreach or segment to low-priority sequence
    print(f"Catch-all detected: {email} — flag for review")

For cold outreach, our recommendation is to exclude catch-all addresses entirely unless you have a specific reason to include them (e.g., target is a Fortune 500 and it is your only contact pathway).

Rule 5: Segment by Domain Type

Not all domains carry equal risk. Segment your list and apply different verification thresholds:

Domain Type Example Bounce Risk Strategy
Free providers gmail.com, yahoo.com Medium Verify all; expect higher decay
Corporate company.com Low Verify all; confidence ≥ 90
Role-based info@, admin@ High Remove or isolate
Disposable tempmail.com Extreme Auto-remove
Educational .edu Medium Seasonal; verify before each semester
Government .gov Low Strict compliance; verify always

Rule 6: Monitor SMTP Error Codes — The Early Warning System

Your SMTP error codes tell you exactly what is wrong before your bounce rate becomes visible in dashboards. Here is the reference table every outbound team should have bookmarked:

SMTP Code Meaning Bounce Type Action
421 Service not available Soft Retry in 30 minutes
450 Mailbox unavailable Soft Retry in 1 hour
451 Local error in processing Soft Retry in 1 hour
452 Insufficient system storage Soft Retry in 4 hours
500 Syntax error Hard Remove immediately
501 Syntax error in parameters Hard Remove immediately
550 Mailbox unavailable Hard Remove immediately
551 User not local Hard Remove immediately
552 Mailbox full Soft Retry in 24 hours; suppress after 3
554 Transaction failed Hard Remove immediately
554 5.4.0 Routing failure Hard Remove; check domain validity
550 5.1.1 Bad destination mailbox Hard Remove; address does not exist
550 5.1.2 Bad destination system Hard Remove; domain invalid

Codes reference RFC 3463 (Enhanced Status Codes) and RFC 5321 (SMTP Protocol).

The critical codes to watch:

  • 554 5.4.0 — Routing failure. Usually means the domain is dead or the MX record is misconfigured. Remove these addresses immediately.
  • 550 5.1.1 — User unknown. The mailbox never existed, or the employee is gone. Remove immediately.
  • 552 — Mailbox full. Retry once in 24 hours. If it happens again, treat as a hard bounce.

Rule 7: Emergency Stop Protocol

If your bounce rate crosses 3% mid-campaign, you need an emergency stop protocol. Here is the exact checklist:

  1. Pause all active sequences immediately — do not wait for the campaign to finish.
  2. Export your bounce list — identify which addresses bounced and why.
  3. Re-verify the remaining list using MailValid bulk verification.
  4. Check your domain reputation — use Google Postmaster Tools and Microsoft SNDS.
  5. Reduce send volume by 50% for the next 7 days.
  6. Do not resume full volume until your bounce rate is below 1.5% for three consecutive sends.

MailValid vs ZeroBounce vs NeverBounce: Exact Pricing for 2026

Here is what cold email verification costs at scale. These are live prices pulled from each provider's website in May 2026:

Provider 10K Emails 50K Emails 100K Emails Per-Email Price Free Tier
MailValid $15 $50 $150 $0.0015 → $0.001 100 credits/day forever
ZeroBounce $75 ~$250 $390 $0.008 100 credits (one-time)
NeverBounce $80 ~$200 ~$300 $0.007 1,000 credits (one-time)
DeBounce $15 $50 $90 $0.0015 Not specified
MillionVerifier $19 ~$50 $99 $0.0019 Small free tier

For a team sending 50,000 cold emails per month:

  • MailValid: $50/month
  • ZeroBounce: ~$250/month
  • NeverBounce: ~$200/month

Annual savings with MailValid: $1,800–$2,400. That is enough to fund an additional SDR or double your ad budget.

And unlike NeverBounce, MailValid credits never expire. Buy 50,000 credits today, use them over 18 months, and pay nothing extra.


The ROI of Fixing Bounce Rates

Let us run the math for a typical outbound team:

Metric Unverified List Verified List (MailValid)
Monthly emails sent 50,000 50,000
Bounce rate 15% 1.5%
Bounced emails 7,500 750
Verification cost $0 $50
Monthly savings (avoided bounces) N/A 6,750 deliverable emails
Deliverability improvement Baseline +15–20% inbox placement

At a 15% bounce rate, you are losing 7,500 potential conversations per month. At a 1.5% bounce rate, you are losing 750. The difference — 6,750 extra emails reaching inboxes — is the entire pipeline for a small sales team.

And the cost of not fixing it? Domain recovery after a blacklist event costs $500–$2,000 in consultant fees, plus 3–6 months of lost pipeline. MailValid's $50/month prevention is 10–40x cheaper than the cure.


FAQ: Cold Email Bounce Rate

How many bounces before I should stop a cold email campaign?

Stop immediately at 3%. Pause and clean at 2%. These thresholds are based on Validity's deliverability research and are used by major ESPs to score sender reputation. A single campaign above 5% can trigger throttling that takes months to recover from.

Why do Apollo-verified emails still bounce?

Apollo's verification is approximately 91% accurate, with a 3–6 month data decay lag. That means 9% of "verified" Apollo contacts are already invalid. Additionally, catch-all domains and role-based addresses pass Apollo's checks but reject external cold mail. Always run Apollo exports through SMTP verification before sending.

What does email verification actually check for cold email?

A complete verification checks six layers: (1) syntax validation (RFC 5322), (2) domain validity and MX record lookup, (3) SMTP handshake confirmation, (4) disposable email detection, (5) role-based address flagging, and (6) catch-all domain detection. MailValid performs all six in a single API call.

Should I re-verify my list before every cold outreach campaign?

Yes — if your list is older than 30 days. Email databases degrade at approximately 22.5% per year according to HubSpot research. For high-volume teams (50K+ emails/month), verify weekly. For smaller teams, verify at point of import and re-verify monthly.

Is double verification necessary for cold email?

No. A single quality SMTP verification is sufficient. Running two verification tools on the same list adds cost without reducing the 5–9% edge cases that neither tool can catch (mailbox full, temporary server errors, manual blocks).

Does email verification prevent all hard bounces?

No — it prevents 90–95% of avoidable hard bounces (invalid addresses, dead domains, typos). The remaining 5–10% are edge cases: temporary mailbox errors, server misconfigurations, or manual blocks that no tool can predict.

What is a good bounce rate for cold email?

Under 2% is ideal. 1% or below is excellent. Above 3% puts your domain at risk. Above 5% almost guarantees throttling or blacklisting.


Verify Before You Send, Or Pay Twice Later

Cold email bounces are a tax on poor list hygiene. Every unverified address you send to is a dice roll with your domain reputation — and the house always wins.

The teams winning at outbound in 2026 are not guessing. They are verifying every single address before it leaves their SMTP server. They know their bounce rate in real time. They have an emergency stop protocol. And they never trust a "verified" badge without running the SMTP handshake themselves.

MailValid makes that verification trivial:

  • $0.001 per email at scale
  • 100 free credits per day — no credit card required
  • Under 500ms response time for real-time validation
  • Credits never expire

Whether you are sending 1,000 or 1,000,000 emails per month, the math is simple: verify first, or pay later.

Get 100 free credits and fix your bounce rate today →

See full pricing vs ZeroBounce and NeverBounce →

M

MailValid Team

Email verification experts

Share:

Join developers who verify smarter

Stop letting bad emails hurt your deliverability

100 free credits. $0.001/email after. Credits never expire. No credit card required.

More from MailValid

Verify 100 emails free Start Free