Home/Email deliverability/Bounce rate/Bounce rate spike after importing a list

Bounce rate spike after importing a list

A bounce rate spike after importing a list points at the list first, because the content and the domain did not change. Addresses that went dead while the list sat unused all get mailed in one send, and their bounces arrive together. The fix is to suppress the addresses that hard bounced, verify the older contacts, and re-send in batches ordered from most engaged to least, so any weak part of the list shows up while it is still small.

VerifiedBy Kam Low, Co-founder and CTO·Updated

Why bounce rate spikes after importing a list

You imported a list, sent the first campaign to it, and the bounce rate came back far above anything the account had seen before. The content did not change and the domain did not change. The audience did, and that is where a bounce rate spike after importing a list comes from. Stop sending, suppress the addresses that hard bounced, then re-import and send in batches from most engaged to least, verifying the older contacts first.

An import is the moment the most unknown addresses enter a sending account at once. Nitrosend does not clean an imported list, so every address in the file is treated as sendable until a receiving server refuses it. Addresses that went dead while the list sat unused all get tried in the same send, and the bounces arrive together.

How high the number went decides how fast to move. Work it out first with the email bounce rate calculator, then read it against the levels below.

Bounce rate after an import, and what it calls for

Bounce rate levels after a list import and the response each one calls for
Bounce rateWhat happensWhat to do
Around 10%The email provider Nitrosend sends through issues a hard warning. Separately, Nitrosend paused one account's sending automatically at 10.84%, 27 hard bounces out of 249 sent.Hold the next send and check the list before anything else goes out.
Around 15%The email provider Nitrosend sends through switches the sender off.Treat the whole import as unverified until each segment proves otherwise.
Above 20%One campaign to an unchecked import can land here in a single send, because all of its bounces come back together.Act fast and isolate the cause: find the segment the bounces came from and stop sending to it.

Causes, most likely first

Check these in order. The first two come straight from the list itself, and the later ones are worth ruling out once the list is clean.

  1. Old addresses that nobody has mailed in a long time. Contacts with no recent opens, clicks or deliveries are the ones most likely to have closed their mailbox or left the company. A list exported from a previous provider can carry addresses nobody has mailed in years.
  2. The whole file went out in one send. When every contact is mailed at once, the weakest addresses go out alongside the strongest, and their bounces land in the same campaign. Nothing earlier in the account had a chance to show which part of the list was weak.
  3. Contacts the previous provider had already stopped mailing. An export of all contacts can include addresses that bounced or unsubscribed there. Imported again, they get mailed again, and the hard bounces come straight back.
  4. Addresses that were never checked. Sign-ups with typos, role addresses and form spam sit quietly in a list until the first send to them. A recent sign-up date does not mean the address works.
  5. Temporary refusals rather than dead addresses. A sudden jump in volume from a new sender can draw temporary refusals from receiving servers. These are soft bounces, and they need a different response from hard ones, as the guide to soft bounce vs hard bounce sets out.

The fix for each cause

Old addresses, and the whole file in one send

Re-import in batches, from most engaged to least engaged, in this order:

  1. Anyone who clicked.
  2. Anyone who opened.
  3. Anyone who received mail successfully.
  4. Anyone who signed up in the last six months and passed address verification.
  5. Everyone else, also verified.

When a larger list is moving from a previous email provider, the contacts who engaged most with campaigns sent there go first.

Each batch goes in through nitro_import_contacts, which takes a CSV file or up to 100 contacts inline per call. Over MCP a call handles 100 contacts at a time because the import is synchronous, so an agent working through a large list calls it again for each chunk of 100 until the batch is in. The same import endpoint is available over the REST API, the Nitrosend CLI and from code in any of the supported languages, for example a Python script that splits the file by engagement first.

Contacts the previous provider had already stopped mailing

Take them out of the file before importing, or add them to the suppression list through /v1/my/suppressions so they are never mailed. An address that hard bounced at the last provider will hard bounce here too, which is the permanent kind of failure described in soft bounce vs hard bounce email.

Addresses that were never checked

Run them through an address verification service before they reach a send, and import only the addresses that pass. Anything that fails stays out of the account or goes on the suppression list.

Temporary refusals

Slow the sending down rather than suppressing the addresses. Send pacing has its own order, close to the import order but not the same:

  1. Contacts who clicked.
  2. Contacts who opened.
  3. Verified contacts.
  4. Contacts with a successful delivery.
  5. Everyone else, from most recent to oldest.

Volume grows only as each batch comes back clean.

A new account on the Free plan starts at 100 commercial recipients per rolling 24 hours. At that pace an import of 3,000 contacts takes a month to reach everyone, so plan the batches around the allowance rather than one send. The Free plan also caps total volume at 8,000 emails up front, then 500 a month, so check the size of the list against it first.

What to do next

Before the next send, check the last campaign's bounce numbers with nitro_get_insights, which reports email analytics for the account. If the rate is still near the levels in the table above, the problem segment has not been found yet, and nothing else should go out until it has.

Once the bounces have settled, plan the rest of the list the way a warm-up plan would: send to the most engaged segment first, then widen in batches. A contact who has not engaged in years goes last, and only after verification. Sending in that order keeps any bad batch small enough to catch before it moves the account's rate.

For the wider picture, email bounce rate covers the formula and benchmarks, and bounce rate in email marketing covers keeping the number low across ongoing campaigns.

Go deeper

Common questions

Why did the bounce rate only spike after the import?

Because the import added addresses the account had never mailed, and Nitrosend does not clean an imported list. Every address in the file counts as sendable until a receiving server refuses it, so the dead ones are only found when the first send to them bounces. At around 15%, the email provider Nitrosend sends through switches sending off.

Should I delete the whole imported list?

No. Suppress the addresses that hard bounced so they are never mailed again, then re-send to the rest in batches from most engaged to least. Contacts who clicked or opened go first. Anyone who signed up in the last six months follows once verified, and everyone older goes last, also verified.

How many contacts can one import call take?

nitro_import_contacts takes a CSV file, or up to 100 contacts inline per call. Over MCP the import is synchronous, so an agent working through a larger list calls it again for each chunk until the whole batch is in. The same import is also available over the REST API and the Nitrosend CLI.

At what bounce rate does sending stop?

The email provider Nitrosend sends through switches a sender off at around 15%, and Nitrosend pauses an account's sending automatically when a campaign's bounce rate runs high. Hold every further send until the segment the bounces came from is found, then suppress the hard bounces and resume with the most engaged batch.

Hand the re-import to an agent

Ask your agent in Claude, ChatGPT or Cursor, through the Nitrosend MCP server, to split the list by engagement and import the first batch with nitro_import_contacts. It can then check the bounce numbers with nitro_get_insights before it moves on to the next batch.

Import the list in the right order.

Simple pricing. Unlimited contacts.

Every plan includes full stack emailing: Flows, Newsletter Campaigns and Transactional Email, plus our NitroWheel LLM and all agent integrations (Claude, ChatGPT, Codex, Cursor and others). Pay for what you send, not who you store.

Free
$0
forever
  • Emails 8,000then 500/mo
  • Email types Transactional & Marketing
  • AI actions 20/mo
  • Contacts Free & Unlimited
  • Brands 3 · Custom domain 1
  • Seats 1
  • Recipients / rolling 24h 100–5,000
  • Email validation Prepaid only
Start free
Ultra
$100
per month
  • Emails 125,000/month
  • AI actions 5,000/mo
  • Brands 10 · Domains 10
  • Seats 10
  • Frontier AI Included
  • Dedicated IP Available
  • Recipients / rolling 24h 1,000–625,000
  • Email validation Prepaid only
Get started
Enterprise
$300
per month
  • AI actions Unlimited
  • Unlimited brands & domains Included
  • SSO / SAML Included
  • 99.9% SLA Included
  • Recipients / rolling 24h Contracted
  • Email validation Prepaid only
Get started

Daily allowances depend on your plan and sender standing. Strong list, domain and delivery evidence can raise standing, including on day one. Trusted receives the full plan allowance; available email credits, safety checks and delivery pacing still apply.

Free forever. No credit card required. See full comparison →