List hygiene is a set of rules, not an annual project

Nothing has gone wrong yet, which is the only sensible moment to set this up. Someone has noticed the list is four years old and nobody can say what is in it.

The alternative is the pattern most teams are stuck in: mail the list, watch the numbers get worse, panic-clean, repeat. Each cycle costs a bit of reputation that the next one starts from.

The order the work happens in

  1. Suppress hard bounces automatically on first failure

    Most platforms do this and some don't. Check yours rather than assuming, because a platform that retries a dead address three times is charging you three bounces for one bad record.

  2. Write a sunset rule and let it run

    Twelve months with no open, click or purchase, and the address stops receiving campaigns. It's the single highest-value rule here, and it needs no verification at all.

  3. Verify on a schedule tied to sending, not the calendar

    Before any send to data older than three months. A weekly newsletter surfaces its own decay and needs less; a list mailed twice a year accumulates a year of rot and delivers it in one campaign.

  4. Deduplicate on every import

    Gmail dots and plus-tags disguise one mailbox as several, and you pay to check the same person repeatedly. Normalizing before the check is free and always worth doing.

  5. Put the numbers somewhere a person sees them

    Bounce rate, complaint rate and the unresolved share, recorded per send. You can see a trend months before you cross a threshold, and nobody notices a trend that lives in an export.

What each result means here

The same four results and their flags, read against this job. A catch-all worth keeping in one situation is one to exclude in another.

ResultWhat to do with it
ValidNothing. This is the working part of the list and the point of the exercise.
InvalidSuppress permanently, with the date. Do not delete the record, because deleting it means re-importing it later from an old file.
Catch-allTag and keep mailing while engagement holds. Engagement is the only evidence available for these.
UnknownLeave in place and re-check next cycle. A server that refused an answer today may answer next month.
Role flagSegment rather than remove. Role addresses complain more, so they deserve their own frequency.
Disposable flagRemove, and block the domain at your signup form so it stops arriving.

How you know it is finished

The rules run without anybody triggering them, and the last three campaign reports show a bounce rate that is flat rather than climbing. Hygiene has no finish date, only a state you either hold or lose.

What this does not fix

Standing hygiene is a small recurring cost rather than a large occasional one. The 100 free credits a month cover spot checks, and credits never expire, so a quarterly rhythm does not lose you anything bought ahead of time.

Questions people ask

What is the difference between list hygiene and verification?

Verification is one step inside hygiene. Hygiene also covers your suppression rules, your sunset policy, deduplication and how often you send, and several of those cost you nothing.

How often should hygiene rules run?

Continuously for suppression and sunsetting, which are rules rather than tasks. Verification runs before sends to data older than about three months.

Does removing inactive contacts hurt reach?

It cuts the number of people you mail and usually raises the number who see it, because providers weigh engagement. Your smaller list that gets opened will beat your larger one that gets filtered.

Try it on the file in front of you

100 free checks a month, no card. Addresses we could not get an answer on come back labeled as unknown, and those are not billed.