All posts
11 min readPigeonify

List hygiene: the unglamorous work that keeps you in the inbox

Most deliverability problems are list problems. Cleaning yours feels like losing audience, and is usually the single highest-return thing you can do.

DeliverabilityLists

Senders spend weeks on subject lines and years never removing a single address. The subject line is not the problem.

Almost every deliverability problem that lands on our support desk is a list problem wearing a different hat. The sender has done nothing obviously wrong — no bought data, no misleading copy — and their open rate has been sliding for a year while their bounce rate creeps up. The cause is simply that the list is old and nobody has taken anything out of it.

This guide covers what list decay actually costs, how to clean a list you already have, and how to stop collecting addresses that were never going to work. None of it is glamorous. It is reliably the highest-return work available to an email programme.

What a dirty list actually costs

It is tempting to treat bounces as a rounding error. A few percent of a send failing does not feel like a crisis. Mailbox providers disagree, and so does every sending platform, because the numbers are used as a direct signal of whether you know who you are emailing.

Three thresholds matter:

  • Bounce rate above 2% is where most sending platforms start intervening. On Pigeonify, sending is paused automatically at that point, because every account shares the same sending infrastructure and one bad list degrades delivery for everyone on it.
  • Complaint rate above 0.1% is the ceiling Gmail and Yahoo hold bulk senders to. Their published limit is 0.3%, but 0.1% is the number to run at — by the time you reach 0.3% the damage is already in your reputation.
  • Bounce rate above 5% is roughly where AWS, the infrastructure underneath a great many sending platforms, begins reviewing accounts.

The painful part is that these are not cliff edges you fall off once. Reputation is cumulative. A month of 8% bounces does not cost you a month of delivery; it costs you the months afterwards, while you earn back trust you spent.

Why lists decay even when you do nothing wrong

People change jobs. Students graduate. Companies are acquired and migrate domains. Addresses get abandoned without anyone unsubscribing, because abandoning an inbox is easier than managing it.

Roughly a quarter of a typical list goes stale each year through nothing you did. If you have been collecting addresses for four years and have never removed any, assume a large fraction of what you are paying to email no longer exists.

Worse, abandoned addresses do not simply stop responding. Providers eventually recycle some of them into spam traps — addresses whose only purpose is to catch senders who never clean their lists. Hitting one is disproportionately damaging, because there is no innocent explanation for having it. A recycled trap means you are mailing an address that has not been read in years and you never noticed.

There is a second kind, the pristine trap: an address that was never a real person at all, published where only a scraper would find it. Those tell a provider something stronger still, which is that your list contains addresses nobody ever gave you.

Clean the list you already have

If your list has never been cleaned, start here rather than with collection practices. The addresses are already in your database; the question is which of them are real.

Verify before you send, not after

A bounce is the expensive way to discover an address is dead. The receiving server records the attempt, your platform records the failure, and your reputation absorbs the cost — all to learn something that could have been checked beforehand.

Verification splits into layers, and they are not equally conclusive:

  • Syntax catches malformed addresses and typos. Cheap, instant, and catches less than people expect.
  • Domain and MX records confirm the domain exists and has a mail server willing to receive. This catches dead companies, misspelled domains and addresses that were never going to resolve.
  • Disposable detection flags throwaway inboxes from signup incentives. They were never going to read anything.
  • Mailbox verification is the one that actually answers the question. It connects to the receiving server and asks whether the specific mailbox exists, without sending a message.

Pigeonify checks the first three when you import a list, and refuses any file where more than 2% of the addresses fail — the same limit we hold accounts to, applied before a single message goes out. What it does not do is mailbox-level verification, which needs a dedicated service.

For that, an email verification api like PilotVerify will connect to the receiving server and confirm the mailbox exists, flag catch-all domains where no answer is possible, and clean a bulk CSV before you import it anywhere. On an old list the difference is substantial: syntax and MX checks might remove 3% of a four-year-old database, while mailbox verification routinely finds several times that.

Disclosure: PilotVerify is built by the same team as Pigeonify. We mention it because mailbox verification is a real gap in what we do, not because it is ours — any reputable verification service will fill it, and the advice in this section holds whichever you pick.

This is worth doing once on your existing list, and then at the point of signup, which is far cheaper than doing it in bulk forever.

Re-engage, then actually remove

Verification tells you whether an address exists. It cannot tell you whether the person wants your email. For that you need engagement data.

Set a threshold. No opens or clicks in 90 days is reasonable for most senders, longer if you send rarely — a quarterly newsletter needs a year before silence means anything.

Send those people one honest email. Not "we miss you" with a discount; something direct:

You haven't opened anything from us in a while. Click here to keep receiving these, otherwise we'll stop.

Then actually stop. The entire value of a re-engagement campaign is in the removal that follows it. A campaign that ends with everyone still on the list has achieved nothing except one more send to people who do not read you.

Expect a low response. Two to five percent clicking through is normal, and that is the point: you have just identified the 95% who were costing you reputation for no return.

Remove on the first hard bounce

A hard bounce means the mailbox does not exist. There is no second chance to give, and re-sending to it is the single clearest signal to a provider that you are not paying attention. Suppress immediately and permanently.

Soft bounces are different: a full mailbox, a server temporarily refusing, a greylist. Retry those a few times, and after four or five failures across several days treat them as permanent. Our bounce handling guide covers the response codes in detail and which ones mean what.

Whatever platform you use, this should be automatic. If removing a bounced address is a manual job, it will not happen.

Stop collecting bad addresses

The cheapest hygiene is not acquiring bad addresses in the first place.

Use double opt-in. A confirmation email costs you the people who mistyped their address or never really wanted in. Those are exactly the people who would have complained. It also gives you something no other method does: evidence, in the form of a click from the recipient's own mailbox, that the subscription is real.

Never use pre-ticked boxes. Consent obtained by inattention produces complaints, and under GDPR it is not consent at all.

Validate at the point of entry. A signup form that accepts john@gmial.com has created a bounce you will pay for months later. Checking the address while the person is still on the page lets them fix it themselves.

Never buy or rent a list. There is no version of this that works. The addresses did not agree to hear from you, the complaint rate will be severe, and the trap density in commercially available data is high enough that one send can undo a year of good sending. Every platform worth using prohibits it, and the ones that do not are not worth using, because their shared reputation is already ruined by the customers who do.

What to expect when you clean

A list of 50,000 with 30% dormant becomes 35,000. That number feels like a loss, and every marketer who has run this process has had the same uncomfortable conversation about it.

Here is what actually changes:

  • Open rate rises — not because more people are reading, but because you stopped counting people who never were. The underlying readership is unchanged; the denominator is finally honest.
  • Bounce and complaint rates fall, often below the thresholds that were throttling you.
  • Placement improves for everyone remaining. This is the one that matters. The 35,000 real people start seeing your email in their inbox rather than their spam folder, because providers stopped treating you as a sender who does not know their audience.
  • Your bill falls, since most platforms charge by contacts stored or emails sent.

You did not lose 15,000 customers. You stopped paying to send to 15,000 people who were quietly damaging your ability to reach the other 35,000.

Make it routine

Hygiene is not a project with an end date. The schedule that works for most senders:

  • Continuously: suppress hard bounces and complaints automatically, and honour unsubscribes immediately. Add one-click unsubscribe headers if you have not — Gmail and Yahoo require them of bulk senders, and our List-Unsubscribe guide covers the implementation.
  • Monthly: review bounce rate, complaint rate and engagement trend. A rising bounce rate is the earliest warning you get, and the one most often missed. Our guide to email metrics that matter covers which numbers deserve attention.
  • Quarterly: run a re-engagement pass and remove whoever does not respond.
  • Before any large or unusual send: verify the list, particularly if it has been sitting unused. A list that was clean nine months ago is not clean now.

The alternative is doing all of this reactively, after placement has already collapsed, when recovery takes months rather than an afternoon. Authentication matters too — if SPF, DKIM and DMARC are not in place, no amount of list hygiene will save you; see SPF, DKIM and DMARC explained and check your own records with our free SPF checker.

Frequently asked questions

How often should I clean my email list?

Suppress hard bounces and complaints continuously and automatically. Beyond that, run a re-engagement pass quarterly and remove the people who do not respond. Verify addresses in bulk before any large send, and particularly before mailing a list that has been dormant — a list that was clean nine months ago is not clean today.

What is a good bounce rate?

Under 2% is the number to run at. Most sending platforms intervene at that point, and AWS begins reviewing accounts around 5%. A healthy, regularly cleaned list usually sits well under 1%. If you are consistently above 2%, the problem is the list rather than the platform, and changing providers will not fix it.

Does removing subscribers hurt my results?

Only the numbers that were already lying to you. Removing people who never open costs you no readership, because they were not reading. Open rate, click rate, bounce rate and complaint rate all improve, inbox placement improves for the subscribers who remain, and the bill falls if you pay by contacts or volume.

Can I just send to everyone and let the bounces sort it out?

No. That is exactly the behaviour bounce rates are designed to detect. Sending to a list you have not verified is how an account gets throttled or suspended, and the reputation damage outlasts the send. Verification before sending costs a fraction of a cent per address; a damaged sending reputation costs months.

What is the difference between email verification and list cleaning?

Verification asks whether an address exists and can receive mail — syntax, domain, mail server, and ideally the mailbox itself. List cleaning is broader: it also removes people who exist but do not want your email, based on engagement. You need both. A list of verified addresses who never open is still a deliverability problem.

Should I use double opt-in even though it shrinks my list?

Yes, if you can bear the trade. Double opt-in typically confirms 20% to 40% of an imported list, which looks alarming. What it removes is mistyped addresses, people who never wanted in, and anyone who signed up with an address they do not read — all of whom were going to bounce or complain. The confirmed remainder is worth more than the whole was.

The short version

Verify the addresses, remove the people who do not engage, suppress bounces the first time, and never buy data. Do it on a schedule rather than in an emergency.

It is unglamorous work that nobody will congratulate you for, and it will do more for your delivery than any subject line you ever write.

Start free — 5,000 emails a month, no card

Send email that actually arrives

Authentication, suppression and bounce handling built in. Start free, no card required.

Start free