Email List Cleaning: How to Clean Your Email List for Free (Step by Step)
Email list cleaning means removing the addresses that will bounce, never read your email, or hurt your sender reputation, before you send to them. Done right it takes minutes, costs nothing for most lists, and protects the one thing you can't buy back quickly: a sending domain that inbox providers trust.
This guide gives you the full cleaning process in order, shows what each step removes on a real-looking list, explains how cleaning a cold outreach list differs from cleaning a newsletter list, and tells you when a free clean is enough and when paying for a deeper check is worth it.
What a dirty list does to you
Bad addresses don't just fail quietly. Every hard bounce tells Gmail, Microsoft and the rest that you are mailing addresses you never confirmed. Push that past a couple of percent and they start filtering more of your mail to spam, including the mail sent to perfectly good addresses. Unengaged and throwaway addresses add a second, slower problem: low engagement signals that make future mail less likely to reach the inbox.
So cleaning isn't housekeeping. It decides whether the good part of your list ever sees your message.
Want to see how dirty your list is before reading further? Paste a sample below. It runs the same checks as the full process, live, and shows what cleaning would remove.
The cleaning process, step by step
- 1Remove duplicatesSame address twice = double sends and double complaints.
- 2Fix format and typosBroken syntax out; gmial.com becomes gmail.com.
- 3Drop dead domainsNo domain, no mail server, or a Null MX.
- 4Drop throwaway inboxesMailinator, Yopmail and 10,000+ more.
- 5Decide on team inboxesinfo@, sales@, support@.
- 6Decide on personal inboxesGmail or Yahoo on a B2B list.
- 7Separate catch-allsCan't be confirmed; send them separately.
- 8Apply suppressionPast bounces, unsubscribes, complaints.
1. Remove duplicates
Merge lists from different sources and you will have the same person twice, often with different capitalisation (Jane@Acme.com and jane@acme.com are the same mailbox). Lowercase and trim every address, then dedupe. Sending twice doubles the chance of a spam complaint for zero extra replies.
2. Fix the format and the typos
Remove anything that isn't a real address: missing @, spaces, two addresses pasted into one cell, trailing dots. Then fix typos of the big providers: gmial.com, hotmial.com, outlok.com, yahooo.com, .con endings. On forms and event lists this step alone rescues real people.
3. Drop dead domains
Look up each domain's MX records. If the domain doesn't exist, has no mail server, or publishes a "Null MX" (which means "we accept no email"), every address on it will hard bounce. On older B2B lists this is where the biggest chunk of bad addresses sits: companies that closed, rebranded or got acquired. Our guide on how to check if an email is valid shows the lookup by hand.
Check any domain from your list right here:
4. Drop throwaway inboxes
Temporary inboxes from services like Mailinator or 10MinuteMail exist for a few minutes and then they're gone. They come from lead magnets, free trials and gated content. Check every domain against a disposable-domain list; the community-kept one has more than 10,000 entries.
5 and 6. Decide on team and personal inboxes
These are judgment calls, not errors. info@ and sales@ exist but rarely reply and draw more complaints. A Gmail address on a B2B list may be the founder's real inbox, or an old one they never check. For cold outreach, most teams drop team inboxes and review personal ones. For a newsletter people subscribed to, keep both.
7. Separate catch-all addresses
Catch-all domains accept mail for any address, so you can't confirm the mailbox in advance. Don't delete them, and don't mix them in either: send them as their own smaller batch and watch the bounce rate. More on this in our catch-all email guide.
8. Apply your suppression list
Anyone who hard bounced, unsubscribed or marked you as spam before must never be re-imported. Keep one suppression list across every tool and campaign, and check new lists against it before upload. Re-mailing someone who unsubscribed is both a deliverability problem and, in most places, a legal one.
What cleaning removes on a typical list
Here is how the steps play out on an example of 10,000 scraped B2B leads. Your numbers will differ, but the shape is typical: a few big cuts early, then smaller decisions.
Cold lists vs newsletter lists
The steps above apply to both, but the emphasis is different, and mixing up the two approaches is a common mistake.
- Nobody opted in: providers forgive less
- Clean right before every upload, not once
- Verification is the main tool
- Drop team inboxes; review personal ones
- Target: under 2% bounces
- People opted in, so addresses start valid
- Clean every 3 to 6 months, and after any bounce spike
- Engagement is the main tool: prune long-term inactives
- Keep personal inboxes; they are your readers
- Target: low bounces and rising engagement
How often to clean
| List | When |
|---|---|
| Cold outreach | Right before every upload. A list verified three months ago has already decayed. |
| Newsletter | Every 3 to 6 months, plus before any big send to an old segment. |
| Event or webinar signups | Before the first follow-up: forms collect typos and throwaways. |
| After a bounce spike | Immediately. Pause, clean the rest of the list, then resume. |
| Bought or merged lists | Before anything else touches them. |
Cleaning inside your email platform
Most email platforms handle part of this automatically. Mailchimp, for example, marks hard-bounced contacts as "cleaned" and stops sending to them, and Klaviyo suppresses bounced profiles. What platforms don't do is check a list before you import it, and that's when the damage happens: the first send to a dirty list is the one that bounces. Clean first, then import.
Free cleaning vs paid cleaning
Steps 1 to 6 and the catch-all split are things a free tool can do well, because they rely on public DNS and known lists. Paid services add a server-side mailbox check (the SMTP probe), which can confirm individual mailboxes on domains that answer honestly.
Our free email verifier does steps 1 to 7 on up to 25,000 emails per run, with no signup. Drop in your CSV and it keeps all your columns, adds a status and a reason to each row, and lets you download only the rows worth sending. It runs in your browser, so the list itself is never uploaded.
Clean your list in the browser: dedupe, typos, dead domains, throwaways, team inboxes.
Clean a list freeAlready sent? Check the damage
If a list went out before it was cleaned, put your numbers in. Anything over 2% means clean the rest of that list before the next send.
A clean list is still not a good list
Cleaning removes addresses that can't or shouldn't receive your email. It doesn't make the rest want it. For cold outreach, the biggest lever after cleaning is relevance: sending to people with a real reason to care right now. Clean lists of the wrong people still get ignored, and ignored mail slowly hurts deliverability too.
Once the list is clean, check the message: run your copy through the spam word checker and keep an eye on your bounce rate after every send.