The boring email hygiene routine that fixed our deliverability

Why I am writing about email (and not personal finance) today

  • In mid 2026, email deliverability is the small-business problem that keeps repeating – not because email is dead, but because inbox providers are stricter and more automated than ever.
  • I keep seeing the same pattern: good businesses send decent content, but a quietly messy list drags everything down.
  • This post is the routine we settled on after a couple of painful months: fewer bounces, fewer spam-folder surprises, and more stable results.

The pain point: nothing is “wrong” – yet results keep sliding

  • Open rates drift down, but content quality did not change.
  • Replies slow down, even from customers who used to respond.
  • You run a promo and it performs fine one month, then falls flat the next.
  • You look for a fancy fix: new subject lines, more personalization, different sending days.
  • The unglamorous truth: inbox providers treat list quality like a signal of whether you are a responsible sender.
  • If you keep mailing dead addresses, role accounts, and typo domains, you train the system to expect bounces and complaints.
  • And once that reputation slips, every future campaign starts from a worse position.

The lesson we learned the hard way

  • We assumed “small list” meant “safe.” We were wrong.
  • A list of 3,000 can be riskier than 30,000 if it is old, imported from multiple places, and never cleaned.
  • We also assumed unsubscribes were the main metric. They matter, but bounces and silent non-engagement matter just as much – sometimes more.
  • If you want predictable email performance, treat list hygiene like bookkeeping: regular, boring, and non-negotiable.

The workflow we use: simple, repeatable, and measurable

  • This is not a one-time cleanup. It is a loop.
  • We run it monthly, plus a mini version after every large import (trade show list, partner referral list, old CRM export).
  • The goal is not perfection. The goal is to keep “bad signals” from piling up.

Step 1 – Control how addresses enter your world

  • We stopped accepting “email lists” as a single spreadsheet that floats around. Every source gets tagged.
  • We keep a simple intake note: where it came from, when, and what consent means in practice.
  • Why it works: when a campaign goes sideways, you can trace the damage to a source instead of blaming your whole program.
  • Concrete example: we had a “customer list” that included receipts forwarded by an office manager. Many were temporary or mistyped addresses. That one segment caused most of our bounces.

Step 2 – Normalize and deduplicate before you do anything else

  • Before validation, we normalize:
  • Lowercase everything.
  • Trim spaces.
  • Split combined fields like “Name <[email protected]>” into separate columns.
  • Deduplicate on email address, not on name.
  • Why it works: verification and bounce handling are less useful if you keep multiple versions of the same contact. Also, duplicates are an easy way to annoy people and trigger complaints.

Step 3 – Verify addresses before sending (especially after imports)

  • We use eMail Verifier for list checks before a new segment gets mailed.
  • We do not treat verification as “permission.” It is only a technical check: does the mailbox look deliverable?
  • Why it works: it prevents avoidable hard bounces, which are among the fastest ways to harm sender reputation.
  • What we do with results:
  • Invalid – remove immediately.
  • Unknown – keep out of the main list and test cautiously, or request a fresh address from the customer.
  • Role accounts (info@, sales@, support@) – we usually exclude unless the business relationship clearly expects it.
Example decision rule we use
(if you need something concrete):

If status = Invalid -> Suppress
If status = Unknown -> Hold for manual review
If role account -> Suppress unless explicitly opted in
If status = OK -> Eligible to mail

Step 4 – Send in a way that protects reputation

  • This is where people jump straight to templates and subject lines. We focused on risk management first.
  • We send to engaged contacts first, then expand.
  • Why it works: engagement acts like a positive signal and can buffer you when you mail less-engaged segments.
  • We use MaxBulk Mailer for campaigns where we want tight control over sending, segmentation, and content versions on a desktop workflow.
  • We keep segments simple:
  • Recent customers (last 12 months).
  • Older customers (12-36 months).
  • Leads who asked for quotes.
  • Newsletter signups who never bought.
  • Why segmentation works (in plain terms): you stop forcing one message to do all jobs. A quieter message to older customers can outperform a louder promo that feels irrelevant.

Step 5 – Process bounces every time, not “when we get to it”

  • This was the step we used to skip. It was the step that mattered most.
  • We now process bounces after every campaign, usually the next morning.
  • We use eMail Bounce Handler to parse bounce messages and classify them.
  • Why it works: bounces are feedback. If you keep mailing hard bounces, you are telling mailbox providers you do not maintain your list.
  • Our handling rules:
  • Hard bounce (user does not exist, domain does not exist) – suppress immediately.
  • Soft bounce (mailbox full, temporary failure) – allow 2-3 attempts over time, then suppress if it repeats.
  • Spam complaint – suppress immediately and review what was sent and to whom.
A small-business-friendly cadence

Day 0: Send campaign
Day 1: Process bounces, suppress hard bounces
Day 7: Recheck repeat soft bounces
Day 30: Monthly hygiene run (verify + dedupe + segment review)

Step 6 – Use a suppression list like a seatbelt

  • We maintain a suppression list that includes:
  • Unsubscribes.
  • Hard bounces.
  • Repeat soft bounces.
  • Addresses that asked to be removed (even if they never used the unsubscribe link).
  • Why it works: people accidentally re-import old contacts all the time. A suppression list prevents that one mistake from becoming a deliverability incident.

Step 7 – Keep acquisition honest (and boring)

  • We stopped using “add everyone you met” behavior.
  • Instead, we send a one-time follow-up to new contacts and ask them to confirm what they want.
  • Why it works: the first email sets expectations. Clear expectations reduce complaints and improve engagement.
  • If someone does not engage after that first follow-up, we do not keep poking them forever. We would rather have a smaller list that performs than a bigger list that harms us.

What changed for us (and what did not)

  • What improved:
  • Fewer hard bounces within two sends.
  • More stable inbox placement – fewer “I did not get it” messages from regular customers.
  • Less time spent guessing whether content or deliverability was the problem.
  • What did not magically improve:
  • If the offer is weak, hygiene will not save it.
  • If you email people who did not ask for it, verification will not protect you from complaints.
  • If you change your sending behavior wildly (huge spikes, long gaps), you still create risk.

A quick note on list building tools and scraping

  • You can extract addresses from sources in a lot of ways. If you use eMail Extractor, treat it as a research and data-entry helper, not a license to spam.
  • Why I am cautious here: unsolicited mail is where small businesses get into trouble fastest – legally, reputationally, and operationally.
  • The practical middle ground we use: only mail people when we can explain (to them) why they are receiving the email and how to stop it.

The metrics we actually watch

  • Hard bounce rate – should be very low. If it spikes, stop and investigate the source segment.
  • Spam complaints – even a small number is serious for a small list.
  • Reply rate (for relationship emails) – tells you if you are sending something humans want to respond to.
  • Click-to-open rate (when links exist) – more useful than raw opens in 2026.
  • Why these work: they connect to sender reputation and actual business outcomes, not vanity stats.

Common mistakes I would avoid if I were starting again

  • Mailing an old list “just once” – that is often all it takes to cause a reputation dip.
  • Ignoring soft bounces forever – repeated temporary failures are still a bad signal.
  • Treating verification as consent – it is not.
  • Over-segmenting too early – 4-6 segments you can maintain beats 25 segments you cannot.

Where to learn more (one link)


Checklist

  • Tag every list source with date and consent context
  • Normalize and deduplicate emails before importing anywhere
  • Verify new imports and quarantine “unknown” results
  • Send to engaged contacts first, then expand carefully
  • Process bounces after every campaign and suppress hard bounces
  • Maintain a suppression list and always apply it on imports
  • Review metrics monthly, not only when something breaks

3 Actionable Takeaways

  • Run a bounce-processing step the morning after every send – do not wait for a quarterly cleanup.
  • Quarantine any list you did not personally watch being collected, and verify it before it touches your main audience.
  • Keep your segmentation simple enough that you will still be doing it six months from now.

Leave a Reply