Skip to content

Guides · 7 min read

Cleaning a Mailchimp audience before a big send

How to clean a Mailchimp audience before a big campaign: export, verify, tag or archive bad contacts, and re-import without breaking merge fields or billing.

Feb 20, 2026 · SimpleCold team

Four-part flow for cleaning an audience: export, verify the file, bring results back, then send in the right order, with verify highlighted

A big send to a Mailchimp audience you have not mailed in a while is where bounce problems show up. Mailchimp watches bounce rates and abuse complaints closely, and a campaign that bounces badly can trigger a compliance review on your account. Cleaning the audience first takes less time than dealing with that.

This guide shows how to clean a Mailchimp audience in four parts: export, verify, act on the results, and tidy up. It works for any plan.

What Mailchimp already does for you

Mailchimp cleans some addresses on its own. When an email hard-bounces, Mailchimp marks the contact as cleaned and stops sending to it. Repeated soft bounces can also lead to a contact being cleaned. Cleaned contacts do not count toward your audience billing.

That is helpful but reactive. Mailchimp only learns an address is bad after you send to it, and those bounces count against you. Verifying first moves the discovery to before the send.

It is also worth knowing the difference between the contact statuses you will see:

StatusMeaning
SubscribedWill receive campaigns
UnsubscribedOpted out; you cannot re-subscribe them yourself
Non-subscribedExists in the audience (e.g. from a purchase) but never opted in to marketing
CleanedMailchimp stopped sending because of bounces
ArchivedRemoved from the active audience and billing, but history is kept

Archiving is your main tool for removing bad contacts without losing their history.

Part 1: Export the audience

  1. Go to Audience, then All contacts.
  2. Choose Export Audience and wait for the file. Mailchimp exports a zip with one CSV per status.
  3. You only need the subscribed file for this job. Keep the others for reference.

Open the subscribed CSV and check that the email column is named Email Address or similar. Leave every other column in place.

Part 2: Verify the file

Upload the CSV to a bulk email verifier. SimpleCold detects the email column automatically, keeps every original column, and appends the result columns, including Result, Reason code and Reason. Your headers come back exactly as they were, so the file you download can go straight back into Mailchimp.

While it runs, decide your rules. A sensible default:

  • Undeliverable: archive.
  • Risky, disposable: archive.
  • Risky, catch-all or no response: keep, but tag so you can send to them separately.
  • Risky, role-based: keep if this is a B2B list where info@ addresses signed up themselves; tag them either way.
  • Deliverable: keep.

Part 3: Bring the results back into Mailchimp

You have two options. Pick based on whether you want Mailchimp to keep the bad contacts' history.

Option A: Tag, then archive

  1. Filter the verified file to rows you want to remove. Save just the email column as a new CSV.
  2. In Mailchimp, go to Audience, then Import contacts, and upload that file.
  3. Choose Update existing contacts, map only the email field, and add a tag such as verify-remove-2026-02.
  4. Create a segment for that tag, select all, and choose Archive.

This keeps everything traceable. If someone asks why a contact disappeared, the tag tells you.

Option B: Tag everything by result

If you want to send to risky contacts separately, import the whole verified file with Update existing contacts and map the Result column to a new text merge field (for example VERIFY). Then build segments:

  • VERIFY is Deliverable for the main send.
  • VERIFY is Risky for a smaller, slower follow-up send.
  • VERIFY is Undeliverable to archive.

Merge fields are easier to filter than tags when you have several values. Keep the field name short; Mailchimp limits merge tag length.

Part 4: Send in the right order

  1. Send the main campaign to the deliverable segment first.
  2. Check the campaign report after a few hours. If hard bounces are close to zero, proceed.
  3. Send to the risky segment in a smaller batch, or a day later. Catch-all domains can accept mail at the server and bounce it afterwards, so watch this one closely.
  4. Hold the no-response addresses (Risky, where the server wouldn't confirm) until you have re-checked them.

Splitting the send this way means a problem in the risky segment does not drag down the results of your best contacts.

Do not forget the source

A clean audience gets dirty again if the same bad addresses keep arriving. Check where contacts come from:

  • Signup forms without confirmation let typos and fake addresses straight in. Mailchimp's double opt-in setting fixes most of that, and our glossary entry on double opt-in explains the trade-offs.
  • Imports from events, webinars and CRMs are where most dead addresses come from. Verify those files before importing them, not after.
  • Integrations that sync contacts from other tools can re-add archived addresses. Check your sync settings.

How often to repeat this

For an active newsletter, a full clean once or twice a year plus verification of every new import is usually enough. If your audience includes a lot of business addresses, people change jobs often, so lean toward more frequent checks. The post on how often to clean your email list goes into this in more detail.

For the integration side, including how the CSV round trip looks today, see the Mailchimp integration page. If you want to try it on a small export first, the free list cleaning tool checks up to 100 addresses once a day without an account.

Check your list before you send it

Start with 200 free credits. Pay per credit after that.