Skip to main content
← Back to all posts
List Hygiene · 10 min read

How to clean an email list, step by step.

A dirty email list is costing you money on every campaign you send. This guide walks through exactly how to identify and remove every type of bad address - from hard bounces to spam traps to disengaged subscribers - and keep your list clean going forward.

By EmailSheriff · · 10 min read · Practical
22%
of email addresses go bad every year
83%
of deliverability problems trace back to list quality
2%
bounce rate threshold before reputation damage begins
34%
average open rate improvement after cleaning a dirty list

1. Why list cleaning is not optional

Many marketers treat email list cleaning as an occasional housekeeping task - something to do when things feel slow. The reality is that list decay is continuous and relentless. Every month you delay cleaning, the problem compounds.

Here is what happens when you send to a dirty list:

  • Hard bounces accumulate - each one damages your sender reputation with Gmail, Outlook, Yahoo and Apple Mail
  • Spam trap hits occur - old abandoned addresses get recycled as spam traps. You hit them, you get blacklisted.
  • Your engagement metrics collapse - invalid and disengaged addresses drag down your open and click rates, which inbox providers use as quality signals
  • You pay more for less - most ESPs charge by list size. Paying to store and send to 20,000 addresses when only 14,000 are valid is pure waste.
The numbers behind list decay

A list of 100,000 subscribers that was clean at launch will, after 12 months of no cleaning, contain approximately 22,000 invalid or highly risky addresses. After 24 months, that figure approaches 40,000. Sending to those addresses on every campaign means every campaign is actively damaging your sender reputation.

The cost calculation: if your ESP charges $150/month for 100,000 contacts, you're paying $60/month for contacts that can never engage and are actively hurting your deliverability.

2. Types of bad email addresses

Hard bounce addresses

A hard bounce means permanent delivery failure. The receiving server has definitively told your ESP that this address does not exist, the domain does not exist, or mail is not accepted for this address. Hard bounces must be removed immediately - there is never a legitimate reason to attempt a second send to a hard-bounced address.

Soft bounce addresses

Soft bounces are temporary failures - the mailbox was full, the server was temporarily unavailable, the message was too large. Most ESPs automatically retry soft bounces. An address that soft-bounces repeatedly over 3-5 sends should be treated as a hard bounce and removed.

Disposable and temporary addresses

Users who sign up with Mailinator, Guerrilla Mail, 10 Minute Mail and similar throwaway services are explicitly telling you they do not want a relationship. These addresses may still be valid technically, but the inbox is unmonitored and will never result in engagement. They should be removed or at minimum suppressed from marketing campaigns.

Role-based addresses

Addresses like info@, noreply@, admin@, sales@ are assigned to functions rather than people. noreply@ is particularly problematic - it actively rejects incoming mail. Others like info@ typically go to a shared inbox where marketing email is deprioritised or deleted without being read.

Inactive subscribers

These are addresses that are technically valid and deliverable, but the person has not opened, clicked or engaged with any of your emails in 6-12 months. Continuing to send to them drags down your engagement rate and signals to inbox providers that your content is unwanted.

Typo addresses

Common typos like gmial.com, hotnail.com, yahooo.com result from users mistyping their address during signup. These addresses may never have worked, or the message is going to the wrong person entirely. A good validation tool suggests corrections for common typos.

Spam traps

The most dangerous category. Spam traps look like normal email addresses but are maintained by anti-spam organisations specifically to identify senders with bad list hygiene. Hitting even one spam trap can result in immediate blacklisting. They cannot be identified by format alone - they look identical to valid addresses. The only protection is rigorous list hygiene practices that prevent trap addresses from entering your list in the first place.

3. Step-by-step list cleaning process

Step 1

Export your full list from your ESP

Download your complete subscriber list as a CSV file. Include all columns - email address, name, source, signup date, last open date, last click date. You will need the engagement data in later steps.

Step 2

Run the list through a validation tool

Upload your CSV to an email validation service. A good validator checks syntax, MX records, disposable domains and role-based patterns for every address. The output will categorise each address as Clean, Risky or Bad, often with specific reasons. Export the results.

Step 3

Remove hard fails immediately

Delete all addresses flagged as Bad - invalid syntax, non-existent domains, known disposable providers, hard fail role addresses like noreply@. These go directly to your suppression list. Do not attempt to re-engage them.

Step 4

Segment and handle Risky addresses

Risky addresses require a judgment call. Common subcategories include catch-all domains (cannot confirm mailbox exists), soft-fail role addresses (info@, support@), and free provider addresses. Decide based on your use case - a B2C sender may be fine keeping free provider addresses, while a B2B sender should consider removing them.

Step 5

Segment inactive subscribers for re-engagement

From your remaining Clean addresses, identify everyone who has not opened or clicked any email in the past 6 months. Do not delete them yet - run a re-engagement campaign first (see Section 4). Anyone who does not respond to re-engagement gets removed.

Step 6

Remove your existing hard bounces and unsubscribes

Check your ESP's bounce and unsubscribe records. Any address that has previously hard-bounced or unsubscribed must remain on your suppression list permanently. Accidentally re-importing these addresses from an old list file is a common mistake that causes immediate deliverability problems.

Step 7

Upload the clean list back to your ESP

Import your cleaned and validated list. The first campaign after a major clean typically shows a significant improvement in open rate (because the denominator of invalid addresses has shrunk) and a very low bounce rate (because you have removed the problem addresses).

Run step 2 right now - free

Upload your CSV to EmailSheriff. Get instant validation for every address with a clear Clean / Risky / Bad verdict and exportable results.

Start cleaning your list →

4. Re-engagement campaigns before removal

Before deleting inactive subscribers, give them one last chance. A well-crafted re-engagement campaign can recover 5-20% of your inactive list - real people who had drifted away but are still potentially interested.

The re-engagement email structure

Keep it short and honest. Something like: "We noticed you haven't opened our emails in a while. We don't want to bother you - are you still interested in hearing from us? Click below to stay subscribed, or simply ignore this email and we'll remove you from our list in 7 days."

Give them a single clear CTA - "Yes, keep me subscribed" - and make it easy. Anyone who clicks stays on the active list. Anyone who does not respond within 7-14 days gets removed.

Do not send re-engagement emails to addresses that hard-bounced. Hard bounces are permanent - the address does not exist. Attempting to re-engage them just generates more bounces and further damages your reputation.

5. Preventing list decay going forward

Cleaning your list fixes the current problem. The following practices prevent the problem from returning.

Double opt-in for all new signups

Require new subscribers to confirm their email address by clicking a link in a confirmation email. This eliminates typos, disposable addresses and people who entered someone else's email. Double opt-in reduces signup volume by 20-30% but the addresses you do collect are almost always valid and genuinely interested.

Real-time validation at the point of signup

Add email validation to your signup forms. As the user types, validate syntax and check the domain for MX records. Flag obvious typos with a suggestion. Reject known disposable domains with a friendly message asking for a primary email address. This prevents bad addresses from entering your list at all.

Process bounces immediately after every send

Your ESP generates bounce reports after every campaign. Hard bounces must be added to your suppression list before the next send. Most ESPs do this automatically - verify your settings to confirm this is enabled.

Sunset policy for inactive subscribers

Establish a formal policy: if a subscriber has not engaged in 9 months, they go into a re-engagement segment. If they do not respond to the re-engagement email, they are removed. Apply this consistently after every major campaign period.

6. Tools for list cleaning

EmailSheriff (free)

Upload a CSV of up to 500 addresses without an account (50,000 per file with a free account) and get instant validation - syntax, MX records, disposable detection, role-based flagging and typo suggestions. Export clean, risky and bad lists separately. No signup required for basic use. Best for regular list hygiene and pre-campaign checks.

Your ESP's built-in tools

Mailchimp, Klaviyo, Brevo, Campaign Monitor and most major ESPs have some form of list cleaning or engagement filtering built in. These are typically less comprehensive than dedicated validation tools but are convenient for basic maintenance.

Google Postmaster Tools (free)

Not a list cleaning tool, but essential for monitoring. Shows your domain reputation as seen by Gmail, your spam rate, and delivery errors. The single most important monitoring tool for any email sender. Set it up at postmaster.google.com.

MXToolbox (free tier available)

Check whether your domain or IP is on any major blacklist. Run this check monthly and immediately if you notice a sudden deliverability drop.

7. How often should you clean your email list?

Sending frequency Recommended cleaning interval What to focus on
Daily or weeklyMonthly full validationBounces, new disposable domains, engagement
MonthlyQuarterly full validationFull validation + inactive removal
Infrequent or batch sendsBefore every sendFull validation every time - lists go stale quickly

8. Frequently asked questions

Will cleaning my list hurt my subscriber count metrics?

Yes - your subscriber count will go down. But your deliverability, open rates and conversion rates will go up. The subscribers who remain are real, engaged people. A list of 8,000 active subscribers is far more valuable than a list of 15,000 where 7,000 are dead weight dragging down your reputation.

Should I clean my list if I have low bounce rates?

Yes. Low bounce rates are a good sign but they do not mean your list is clean. Catch-all domains (which accept all mail even for non-existent mailboxes) can hide large numbers of invalid addresses. Disengaged subscribers do not cause bounces but they do damage your engagement rate. Regular cleaning is necessary regardless of your bounce rate.

Can I just buy a clean email list instead?

No - and this cannot be overstated strongly enough. Purchased email lists are a guaranteed path to blacklisting and potential legal liability under GDPR, CCPA and CAN-SPAM. The people on purchased lists have never given you permission to contact them. They will mark your emails as spam, decimating your sender reputation in days. Build your list organically.

What should I do with addresses that are "risky"?

It depends on the reason. Catch-all domains - acceptable to keep if the domain is a known legitimate company. Free providers like Gmail - keep for B2C, consider removing for B2B. Role addresses like support@ or sales@ - keep if relevant to your product, remove if not. Soft-fail role addresses like info@ - suppress from main campaigns, remove after 3 months of no engagement.

Pre-campaign cleaning checklist

  • Export full list from ESP as CSV
  • Run through EmailSheriff - remove all Bad addresses
  • Verify no previously hard-bounced addresses are re-included
  • Verify all previous unsubscribes are on suppression list
  • Segment inactive subscribers (no engagement in 6+ months)
  • Run re-engagement campaign to inactive segment if over 10% of list
  • Remove inactive non-responders before main campaign send
  • Check domain is not on any blacklist (MXToolbox)
  • Verify bounce rate was below 2% on last campaign
Clean your list in minutes - free

Upload your CSV to EmailSheriff and get a complete health report for every address. Export your clean list and you're ready to send with confidence.

Start cleaning now →
+ Related tools
Email List Cleaner
Bulk-check up to 500 emails free. Syntax + MX + disposable + typo detection.
Full Audit
Run all 6 deliverability checks on a domain in 30 seconds, graded A-F.
DNS Checker
SPF · DKIM · DMARC · MX with plain-English explanations of what each fix means.