Verification + hygiene
📖 4 min readUpdated 2026-04-18
Every email you send to a non-existent or invalid address is a hard bounce. Bounces are the #1 reputation destroyer in cold email. Email verification is the prerequisite to every send, and the step most teams skip when they're in a rush.
What email verification does
Checks whether an email address actually exists and will accept mail before you try to send. Methods:
- Check syntax (is it formatted correctly?)
- Check domain MX records (does the domain accept email at all?)
- SMTP handshake (connect to the receiving server and check if the address exists, without actually sending)
- Additional checks: is the domain disposable, is it a catch-all, is the address role-based
Output per address:
- Valid, deliverable
- Invalid, will bounce
- Catch-all, domain accepts anything, uncertain
- Risky, syntactically okay but flagged
- Unknown, couldn't verify
Why verification matters
Hard bounce rates damage sender reputation badly. Rule of thumb:
- Under 2% bounce rate: safe
- 2-3%: caution, clean the list
- Over 3%: actively damaging reputation
- Over 5%: Gmail/Outlook will start filtering you aggressively
A single unverified list can push you from 1% to 6% bounce rate overnight. One campaign can damage infrastructure for weeks.
Verification tools
Standalone verifiers
- ZeroBounce: accurate, handles catch-alls well
- NeverBounce: reliable, integrates with many tools
- Million Verifier: cheap per-email at scale
- Bouncer: strong enterprise option
- MailTester / Emailable / Kickbox: alternatives with similar quality
Built into data providers
Apollo, Clay, and some email finders include verification. Usually less rigorous than standalone verifiers. Good as first pass, but double-check with standalone for important campaigns.
Built into cold email tools
Instantly, Smartlead have built-in verification. Convenient, quality varies.
The verification workflow
- Extract emails from your data source
- Run through a dedicated verifier (ZeroBounce or similar)
- Keep only "valid" results
- Optionally include "catch-all" if you're okay with higher bounce risk
- Drop "invalid," "unknown," "risky"
- Upload to cold email tool
The catch-all problem
Some domains accept all email regardless of whether the specific address exists. Verifiers can't tell which specific addresses at catch-alls are real.
Options:
- Include catch-alls, accept slightly higher bounce rate
- Exclude all catch-alls (safer but you lose coverage)
- Use advanced verifiers that score catch-all likelihood
Pragmatic: include catch-alls for large corporate domains (likely real if pattern matches company convention), exclude for unknown small-domain catch-alls.
Cost structure
- ZeroBounce: $16 per 10K addresses
- NeverBounce: $8 per 10K
- Million Verifier: $6 per 10K
- Bouncer: $7 per 10K
At scale (100K+ addresses/month), sub-$100/month easily. Cheap insurance against reputation damage.
List hygiene beyond verification
Dedupe
Same person may appear multiple times across exports. Dedupe by email.
Remove existing contacts
Current customers, existing relationships, past positive replies should not be in cold lists.
Remove unsubscribes
Global DNC list applied before every campaign send.
Remove bounced addresses from prior campaigns
Don't re-bounce. If an address bounced once, it stays invalid until you have reason to think it changed.
Remove role-based addresses if strict
info@, sales@, contact@, these get more spam complaints than personal addresses. Include only if specifically targeting that role.
Remove irrelevant titles
If the title doesn't match your ICP, remove. Sending to "intern" or "analyst" when your ICP is "VP" wastes volume.
Staleness
Addresses verified 6 months ago may now be invalid. People change jobs. Domains close. Re-verify high-value lists quarterly or before major campaigns.
The verification-first discipline
Never upload a list to a sending tool without running verification first. Even lists from Apollo or ZoomInfo. Even "verified" lists from Clay. Fresh verification before every campaign is cheap and protects the infrastructure.
Monitoring bounce rate
Watch bounce rate per campaign in the sending tool. Rules:
- Over 3%: pause campaign, re-verify remaining list
- Over 5%: immediately stop, investigate, all future campaigns paused until resolved
Don't continue campaigns with high bounce rates hoping it improves. It won't, and the damage compounds.
The data source quality check
If a data source consistently produces high bounce rates even after verification, that source is unreliable. Switch or stop using it.
Over time you build intuition: "Apollo accuracy for X segment is poor," "Clay+LinkedIn for Y segment is excellent." Use the right source for each segment.
What to do with this
- Verify every list before it reaches your sending tool, 3%+ bounce rate damages reputation faster than any copy mistake
- Use two-stage verification for high-stakes lists (NeverBounce + ZeroBounce), one tool alone misses 10-20% of bad addresses
- Drop catch-all addresses from cold campaigns, they mostly don't deliver to a human and inflate bounce rate invisibly
- Track bounce rate per data source, not blended, unreliable sources should be dropped after 2 consecutive weeks of 3%+ bounces
- Re-verify lists that sat dormant more than 60 days, email addresses decay 20-30% per year from role changes alone
Next: Intent signals.