How to clean a Mailchimp audience before your next campaign
Mailchimp already cleans up some bad addresses for you, but only after you've emailed them and they've bounced. If your audience has old contacts, imported lists or sign-up-sheet entries, it's worth checking it before you hit send.
Export your audience, tidy the spreadsheet (duplicates, typos, stray spaces), check which addresses still work, then archive the bad ones in Mailchimp: import only their email column with a tag, make a segment of that tag and archive it. Mailchimp cleans an address only after it bounces, so checking first stops those bounces from happening.
This guide walks through the whole job with Mailchimp's real menu names: export, clean the spreadsheet, check which addresses still work, and then archive the bad ones in Mailchimp without overwriting anyone's details.
What Mailchimp already does for you
It helps to know what Mailchimp handles on its own, so you don't do double work:
- Hard bounces are removed straight away. When an address bounces permanently, Mailchimp marks it Cleaned and leaves it out of every future send.
- Repeated soft bounces are cleaned too. Mailchimp allows 7 soft bounces for an address with no subscriber activity, and up to 15 for contacts who've opened or clicked before. After that, the address is treated as a hard bounce and cleaned.
- Cleaned contacts are free. Mailchimp doesn't charge for cleaned addresses, and they don't count toward your audience limit.
The catch is timing. Mailchimp only learns an address is dead by sending to it. A campaign to an old list can rack up a burst of bounces in one go, and a high bounce rate is exactly what mailbox providers watch when they decide whether to trust your mail. Checking first means those bounces never happen.
Step 1: Export your audience
Only account Owners and Admins can export. In Mailchimp:
- Click Audience. If you have more than one audience, pick the right one from the Audience drop-down.
- Click Export audience.
- In the Export all contacts? pop-up, click Export CSV. Mailchimp emails you when the file is ready.
You'll usually get a ZIP file with a separate CSV for each type of contact: subscribed, unsubscribed, non-subscribed and cleaned. You only need to check the subscribed file, because those are the people you're about to email. Mailchimp keeps each export in your account for 30 days under Audience → More options → Export history.
Save an untouched copy of the original file before you change anything, and do your work on a second copy. If names or accented letters look garbled when you open the file in Excel, that's a character-encoding issue, not damaged data. Mailchimp's help pages suggest opening it as UTF-8 text instead.
Step 2: Clean up the spreadsheet
| Email Address | First Name | Last Name | TAGS | What's wrong |
|---|---|---|---|---|
jane.cooper@northwind.com | Jane | Cooper | customer | Nothing obvious |
Jane.Cooper@northwind.com | Jane | Cooper | newsletter | Duplicate (capital letters and a trailing space) |
tom.reyes@gmial.com | Tom | Reyes | open house | Typo in the domain |
info@harborlogistics.com | vendor | Role address, no name | ||
sam.lee@oldbrokerage.com | Sam | Lee | past client | Looks fine, but the company closed |
Some problems are visible without any special tool:
- Duplicates. The same address twice, often with different capital letters or a stray space. Mailchimp itself won't store two contacts with the same email in one audience, so duplicates usually come from merging exports or other lists. ListaFix's free duplicate remover handles this in your browser, and the guides for Excel and Google Sheets show the manual way.
- Typos in common domains, such as
gmial.comoryaho.com. Fix them only when the intended address is obvious. ListaFix's free typo fixer suggests corrections for you to approve. - Broken entries: no @ sign, a missing ending like
.com, or two addresses typed into one cell. - Role addresses like
info@andsales@. They aren't wrong, but they behave differently. See role-based email addresses.
When you remove a duplicate, delete the whole row, not just the email cell. And be careful with shared addresses: a couple or a small office can genuinely share one email.
Step 3: Check which addresses still work
A spreadsheet can only tell you whether an address is written correctly. It can't tell you whether the mailbox still exists. In the example above, sam.lee@oldbrokerage.com looks perfect, but the company closed and the address is dead. Finding that out takes an email checker that asks the receiving mail server, without sending an actual email.
Whatever checker you use, look at what it does with your data before you upload a file of customer details, and whether it keeps your other columns. A results file that only contains email addresses means extra work matching everything back up.
| Email Address | First Name | TAGS | Veml Status | Veml Reason |
|---|---|---|---|---|
jane.cooper@northwind.com | Jane | customer, newsletter | Passed | Mailbox accepted |
tom.reyes@gmail.com | Tom | open house | Passed | Typo fixed (gmial.com → gmail.com) |
info@harborlogistics.com | vendor | Risky | Role address | |
sam.lee@oldbrokerage.com | Sam | past client | Invalid | Domain no longer receives mail |
Step 4: Decide what to do with each result
Don't treat everything except "Passed" as garbage. A sensible starting point:
- Passed: keep emailing as normal.
- Invalid: the address can't receive mail. Remove it from your sends (Step 5).
- Risky: read the reason. A role address or a catch-all domain may be a real customer. A throwaway inbox or a likely typo probably isn't.
- Unknown: the mail server didn't give a clear answer. That's not the same as bad. See what an Unknown result means for how to handle these safely.
Your own data is the tie-breaker. Someone who opened your last campaign is worth keeping even if a checker can't confirm their mailbox. Someone who hasn't opened anything in two years is a good candidate for removal, whatever the result.
Step 5: Archive the bad addresses in Mailchimp
Here's the safest way to act on your results inside Mailchimp, without overwriting anyone's name or custom fields:
- In your results file, filter to the rows you've decided to remove (usually Invalid, plus any Risky ones you've chosen to drop). Copy only the email column into a new CSV.
- In Mailchimp, click Audience, open the Add contacts drop-down and choose Import contacts. Choose Upload a file and select that small CSV.
- Tick Update any existing contacts, then click Continue to tag and add a new tag such as remove-invalid-nov-2026.
- On the match step, make sure only the email column is matched. Mailchimp warns that with "update existing" on, blank cells erase existing data, which is why you're importing nothing but the email column. The import won't change anyone's subscription status.
- Finish the import, then create a segment of contacts with that tag. In the segment preview, select all, click Actions, then Archive, and type ARCHIVE to confirm.
Archived contacts stop receiving campaigns and don't count toward your Mailchimp billing tier. Nothing is lost: you can bring them back any time from Audience → More options → Archived contacts.
Don't delete your original audience or re-import your whole cleaned file over the top of it. Archiving the bad ones is quicker, keeps your history, and can be undone.
A quick checklist
- Export the audience and save an untouched copy.
- Work on the subscribed file.
- Remove confirmed duplicates (whole rows).
- Fix obvious typos and broken entries.
- Check the remaining addresses with an email checker.
- Decide on each result, using your engagement data as the tie-breaker.
- Import just the emails to remove, tag them, and archive the tagged segment.
- Keep the original export until you're happy with the result.
Do this before any campaign to an old or imported list, and every few months for a list you send to regularly. See how often to clean your email list for a schedule.
See also: moving away from Mailchimp? Read how to clean your list before you switch email platforms.
This is general information, not legal advice. Mailchimp is a trademark of its owner; EmailNa and Veml aren't affiliated with it.
Questions people ask
- Doesn't Mailchimp clean my list automatically?
- Partly. Mailchimp marks an address Cleaned after a hard bounce, or after 7 soft bounces (15 for contacts with past activity). But it only finds out by sending to the address, so a send to an old list can still produce a burst of bounces. Checking first avoids them.
- Do cleaned or archived contacts cost me money in Mailchimp?
- No. Mailchimp doesn't charge for cleaned addresses, and archived contacts don't count toward your billing tier.
- Can I just re-import my whole cleaned file?
- It's risky. With "Update any existing contacts" ticked, blank cells in your file erase existing data in Mailchimp. Importing only the emails you want to remove, tagging them and archiving that segment is safer.
- Which export file should I check?
- The subscribed CSV. Those are the people your next campaign goes to. Unsubscribed and cleaned contacts aren't emailed anyway.
- Can I undo archiving?
- Yes. Go to Audience, More options, Archived contacts, select the contacts and click Unarchive. They come back with their most recent subscription status.