If you searched does Mailchimp charge for unsubscribed contacts, do unsubscribed contacts count in Mailchimp, or Mailchimp unsubscribe vs archive, the answer is the one merchants keep finding the hard way: yes, unsubscribed contacts still bill. So do non-subscribed ones. The only statuses that drop off your contact limit are archived, cleaned, and deleted.
Shopify bot checkouts walk straight into that rule. Mailchimp for Shopify creates a contact from the checkout email whether or not anyone opted in. Unsubscribe those bots and they stop getting campaigns. They stay on the invoice. Archive is the only drop that actually moves the bill.
That is the Mailchimp version of a problem we already covered for Klaviyo active profiles. The bot is the same. The billing lever is not — and the usual advice (unsubscribe them, turn on double opt-in, run a quarterly cleanup) does not close the gap for checkout-created contacts.
How Mailchimp counts contacts on your bill
Mailchimp’s paid plans are priced on contact total, not on how many people you actually email. In Mailchimp’s own pricing glossary, a contact is “an individual member of your audience,” and “subscribed, unsubscribed, and non-subscribed contacts are included in your contact count.” Archived, cleaned, and deleted contacts are the ones that “don’t count toward your contact total or the price of your marketing plan.”
The contact-type table is even more blunt:
| Status | Counts toward the contact limit? | Can receive marketing email? |
|---|---|---|
| Subscribed | Yes | Yes |
| Unsubscribed | Yes | No |
| Non-subscribed | Yes | No |
| Cleaned | No | No |
| Archived | No | No |
| Deleted | No | No |
Unsubscribed is the trap. It sounds like the contact is gone. They are gone from your campaigns. They are not gone from the tier you pay for.
Non-subscribed is the other trap, and it is the one Shopify fills. A non-subscribed contact is someone who “interacted with you but hasn’t opted in” — Mailchimp’s examples include “your online store” and “an integration.” They cannot receive marketing campaigns. They still count.
Two more rules make this expensive in practice:
- Peak, not current. Mailchimp bills the peak contact total during the billing period. Archive a thousand bots on the last day of the month and this invoice still reflects the high-water mark. Go over your contact limit and you get add-on overage charges instead of a pause. To keep a lower tier, you have to hold the lower total for a full cycle.
- Per audience, not per person. The same email in two audiences is two contacts. Mailchimp says this outright: audiences do not share data, so duplicates raise the total.
Why Shopify bot checkouts create billable Mailchimp contacts
Mailchimp for Shopify syncs store customers and checkout activity into your audience in near real time. An email entered at checkout becomes a contact.
Mailchimp draws the line by consent, not by “is this a real shopper.” In its abandoned-cart docs: customers who provide an email in the connected store but don’t opt in “are added to your Mailchimp audience as non-subscribed contacts.” Opt in at checkout, and they sync as subscribed. Don’t, and they still sync — as non-subscribed.
Both rows count toward the monthly contact limit. There is no “don’t create a contact until they join a list” switch. The Shopify connection is doing what it was built to do: keep an audience that matches the store.
The opt-in box does not save you. In the checkouts CartWatch scores across merchant stores, bots often tick the marketing consent box. The largest farms fill every field, so by volume about three in four bot checkouts arrive opted in. At a typical store it is a little over half, about the same as real shoppers there. Either way it is common enough to plan for, and for the scripts harvesting discount codes, getting into your flows is the point.
So there are two ways in, and they meet at the same line on your invoice:
- The bot doesn’t opt in. Mailchimp creates a non-subscribed contact from the connected store. You cannot mail them campaigns. You still pay for them. Abandoned-cart automations will still send them the first recovery email — Mailchimp allows that one transactional-style send to non-subscribed contacts from a connected store.
- The bot does opt in. You get a billable subscribed contact and a subscriber: welcome flow, campaigns, SMS if a phone number came with it, and a padded denominator on every open and click rate.
The second path costs strictly more. The first path is the one merchants miss, because the contact never shows a Subscribed badge, so it does not look like a list-bombing problem. It still moves the contact slider.
When a store is under a bot attack — spam signups, fake abandoned checkouts, or a list-bombing run — the scripts submit an email on every pass. Every run is a Shopify customer or checkout. Every one of those is a Mailchimp contact if the integration is live.
Unsubscribe vs archive: why only archive drops the count
This is the Mailchimp-specific failure mode, and it is why copying Klaviyo advice here quietly fails.
On Klaviyo, suppression removes a profile from the billable active-profile count. Unsubscribing in Mailchimp is not that. Unsubscribed contacts still count. You have stopped the send and kept the charge.
Mailchimp is explicit that archiving is what takes a contact off the billing tier without destroying the record. The contact moves to a separate archived table. History stays. You can unarchive later. They no longer count.
Archiving alone is not quite enough either. A contact can unarchive themselves by submitting a signup form or interacting with your connected store, and Mailchimp restores them with their most recent subscription status. Archive a still-subscribed bot and the next Shopify sync can bring them back subscribed. Unsubscribe first, then archive: if they come back, they come back unsubscribed rather than landing in a flow.
Permanent delete also drops the count. Mailchimp tells you to reserve that for GDPR requests. Archive is the reversible lever. It is also the one that actually changes the bill.
How bot contacts raise your Mailchimp plan
The volumes are not dramatic, which is why they hide. Shopify merchants in Klaviyo’s community have described about 20 fake checkouts a day and 2,500+ spam signups in two months. Those are checkout events. If Mailchimp for Shopify is connected, they are Mailchimp contacts too.
Twenty a day is about 600 a month. Against Mailchimp’s published Standard tiers (US list prices, they move):
| Contact limit | Approx. monthly cost (Standard) |
|---|---|
| 250 (Free) | $0 |
| 500 | ~$20 |
| 1,500 | ~$45 |
| 2,500 | ~$60 |
| 5,000 | ~$100 |
| 10,000 | ~$135 |
| 25,000 | ~$310 |
| 50,000 | ~$450 |
Take a store sitting at 4,400 real contacts on the 5,000 tier at ~$100/month. Six hundred bot contacts a month puts it over 5,000 inside the first month. Stay over the limit and you pay overages; make the increase “permanent” and the 10,000 tier at ~$135 is the new floor. That is a 35% increase driven by addresses that will never buy anything — and the fill rate does not stop, so the next cliff (15,000 at ~$230) is a few quiet months out.
The Free plan cliff is sharper. Mailchimp’s free tier now caps at 250 contacts. A store with 200 real subscribers and a modest bot wave is off free in a few weeks, paying for a Standard or Essentials tier whose extra contacts are junk.
At 2,500 fake contacts in two months, a store with 8,000 real contacts crosses 10,000 and keeps going. That is how a modest bot problem becomes a permanent bump in the Mailchimp bill — not because you mailed them, but because they exist.
Why fake contacts don’t leave your contact count
The instinct is that junk ages out. Some of it does. Hard bounces and repeated soft bounces become cleaned, and cleaned contacts drop off the limit. That only catches addresses that fail delivery.
A lot of bot-submitted addresses don’t fail. List bombing frequently uses real, deliverable addresses belonging to real people who have no idea they were signed up. Randomized addresses on live domains behave the same way at the SMTP layer. Those contacts never clean, and they never unsubscribe because nobody is reading. Unsubscribe them yourself and they still count. They sit in the audience paying rent until you archive them.
They also pad every metric you use to decide whether email is working. Open and click rates fall because the denominator includes ghosts — the same denominator problem that shows up in Shopify when bot checkouts destroy your abandonment rate. Shopify’s own abandoned-checkout bot filter does not stop the contact from being created in Mailchimp on the way through.
Why CAPTCHA, double opt-in, and unsubscribe-all don’t close the gap
The usual Mailchimp hygiene list is worth doing for form spam. None of it stops checkout-created contacts from landing on the bill.
Double opt-in is the closest, and it is genuinely worth turning on for signup forms. Pending contacts do not count toward the limit, and unconfirmed addresses are dropped after 60 days. That governs form joins. It does not govern Shopify sync. A checkout email arrives as subscribed or non-subscribed, not pending. The contact is billable the moment it syncs.
CAPTCHA and honeypots protect your popup and embedded forms. Abandoned checkout bots often hit cart permalinks that skip the storefront, so there is frequently no form for the challenge to sit on. Shopify’s own captcha does not cover checkout.
Unsubscribe-all, a suppression segment, or “remove them from campaigns” stops the send. It is the right deliverability move and the wrong billing move. The contact is still unsubscribed, still in the audience, still in the peak.
Quarterly archive does work on the bill — archiving is the right lever — but look at what it asks. Mailchimp’s own inactive-contact guidance is a behavioral proxy (no opens on the last N campaigns), not a bot test. It catches quiet real customers alongside bots, so you cannot archive it wholesale without torching people who simply don’t open much. That leaves reviewing contacts by hand at the 600-a-month rate above, then doing it again next month because the fill rate never stops. Peak billing also means a cleanup in week four does not refund week one. You already paid for the high-water mark. Nobody sustains the review. The archive happens once, then not again for two quarters while the count climbs back up.
How to archive bot contacts before they raise your bill
The lever is right. The timing is wrong. Mailchimp does not charge for archived contacts — archive, not unsubscribe, is what removes a contact from the billable total. So the goal is not a quarterly cleanup. It is unsubscribing and then archiving the fake contact in the same window it is created, in every audience it landed in, while the evidence to identify it still exists.
That’s what CartWatch does. It scores every Shopify checkout webhook in real time against the signals bots can’t fake convincingly — email format and disposability, address verification, missing visitor context that a real browser session always leaves, and request velocity no human matches — then auto-tags the customer in Shopify and, with Mailchimp connected, unsubscribes and archives the matching contact in every audience. On Standard and above, it can optionally delete the Shopify customer record of a very-high-risk bot. Archive is reversible; CartWatch never uses Mailchimp’s permanent-delete action. Setup is in the Mailchimp integration docs.
It can’t stop Mailchimp from creating the contact; nothing can, as long as Mailchimp for Shopify is live. What it can do is get that contact off the billable count before it becomes next month’s floor, instead of after you’ve paid for it a dozen times. If your Mailchimp contact total has been growing faster than your sales, install CartWatch from the Shopify App Store and find out how much of that growth is real.
FAQ
Does Mailchimp charge for unsubscribed contacts? Yes. Unsubscribed contacts count toward your monthly contact limit and plan price. They cannot receive marketing email. They still bill.
Do non-subscribed Mailchimp contacts count toward billing? Yes. Non-subscribed contacts — including people who entered an email at Shopify checkout without opting in — count toward the same limit.
Does archiving contacts reduce my Mailchimp bill? Archived contacts do not count toward the contact limit. Mailchimp bills the peak total in the current cycle, so archiving lowers the next cycle once you hold the lower count for a full period. Unsubscribe does not do this.
What is the difference between unsubscribe and archive in Mailchimp? Unsubscribe stops campaigns and keeps the contact in the audience — and on the bill. Archive removes the contact from the audience and from the billing tier, and keeps their history. Delete is permanent and meant for GDPR, not list cleanup.