Best Practices

Email scrubbing: how to clean a list without losing the subscribers worth keeping

user.cleaning team
May 15, 2026
8 min read
**Email scrubbing** is the process of removing invalid, inactive, and risky addresses from a marketing list to protect deliverability. Scrubbing typically catches three categories: addresses that hard-bounce, addresses that have stopped engaging entirely, and addresses flagged as risky (catch-all, role-based, disposable). The goal is a smaller list that delivers more reliably, not a smaller list for its own sake.

Quick answers

  • Scrubbing vs. verification? Verification confirms an address exists; scrubbing also removes addresses that exist but won't engage.
  • How often? Quarterly is the floor for active marketing lists; before any major send is the practical minimum.
  • Will I lose revenue? Short-term yes (smaller send), long-term no (better inbox placement on the remaining list usually nets out positive within two campaigns).

Scrubbing vs. verification — what's actually different

The two terms are often used interchangeably, but they answer different questions.

Verification asks: does this mailbox exist and accept mail right now? It's a synchronous, address-by-address check. The verifier returns a verdict — Valid, Risky, Invalid — based on syntax, MX records, SMTP probe, and reputation lookups.

Scrubbing asks: should this address be on my marketing list at all? It includes verification, plus engagement filtering (no opens in 12 months), plus sub-status filtering (role-based addresses, catch-all domains, known complainers).

A list that has been verified but not scrubbed will still contain valid mailboxes nobody is reading. A list that has been scrubbed but not verified will still contain occasional addresses that bounce. Most teams need both, run together.

When to scrub a list

Run a full scrub in any of these situations:

  • Bounce rate on a recent campaign exceeded 2%
  • Open rate has dropped 20%+ over the past three campaigns
  • The list has been imported from a new source (CSV upload, lead-gen vendor, tradeshow)
  • It's been more than 90 days since the last scrub
  • You're warming a new sending domain or IP
  • You're about to send to the full list for a major launch

Run a partial scrub (verification only, no engagement filter) before any send to a segment that hasn't been mailed in 60+ days. Mailbox decay is real and silent; addresses that worked in March may not work in May.

What scrubbing actually removes

Six categories of addresses are typically removed in a thorough scrub:

CategoryWhat it isWhy remove
Invalid syntaxDoesn't match RFC 5322Will never deliver
Dead domain / no MXDomain doesn't accept mailWill never deliver
Hard-bounced previouslyAddress rejected by serverPermanent failure, will repeat
Disposable / temporaryMailinator, Guerrilla, Temp-Mail, etc.Won't be read
Spam-trap candidatesRecycled or honeypot addressesDamages reputation severely
Long-term unengagedNo opens or clicks in 12+ monthsDrags down deliverability metrics

Optional categories that depend on your sending strategy:

  • Role-based (info@, sales@, support@) — keep for B2B SaaS, drop for consumer marketing
  • Catch-all domains — score and decide per the catch-all guide
  • Free-provider addresses on a B2B list — sometimes drop, sometimes keep

The 7-step scrub process

Action checklist for a full scrub:

  1. Export the list to CSV (one address per row, plus engagement columns if available).
  2. Run the file through user.cleaning's bulk verifier or equivalent.
  3. Drop everything verdict = Invalid; tag everything verdict = Risky for a per-segment decision.
  4. Filter by engagement: drop addresses with zero opens or clicks in the past 12 months.
  5. Suppress role-based addresses if your strategy targets individuals only.
  6. Re-import the cleaned list into your ESP, replacing the old segment.
  7. Document what was removed and why — you'll want the baseline for the next quarterly scrub.

A typical scrub on a year-old marketing list of 100,000 contacts removes 15,000–25,000 addresses across these categories. The remaining list usually improves open rate by 20–40% because the inactive contacts were dragging the average down.

API scrubbing vs. batch CSV scrubbing

Two operating modes; pick based on volume and frequency.

Batch CSV scrubbing is the right default for periodic cleans (monthly or quarterly). Export the list, upload to a verifier's web UI, wait, download the cleaned file, re-import. user.cleaning's bulk endpoint handles up to 1M addresses per file with results back in minutes. This works for any team and requires no engineering.

API scrubbing is the right default for continuous list hygiene. Each new signup is verified before being added to the list; each bounce is suppressed automatically; addresses that go inactive for X months are removed by a scheduled job. user.cleaning's verification API returns the same verdict shape as the batch tool. This requires engineering setup but eliminates the periodic-scrub overhead.

The hybrid model — API for new signups, quarterly batch for the existing list — is what most growing teams settle on.

Cost vs. benefit math

A typical mid-market list of 250,000 contacts:

  • Cost of bulk scrub: roughly $250–$1,000 depending on vendor and verdict mix
  • Time investment: 30 minutes to upload, wait, re-import
  • Typical removal: 30,000–50,000 addresses (12–20% of list)
  • Open-rate lift on the remaining list: 20–40%
  • Bounce-rate reduction: usually below 1% from a starting point of 3–5%

The ROI math is straightforward: if open rate goes from 18% to 24% on a list that drives any meaningful revenue per send, the scrub pays for itself on the first campaign.

What scrubbing doesn't fix

Scrubbing fixes list quality. It does not fix:

  • Authentication problems (SPF, DKIM, DMARC misalignment)
  • Sender-reputation damage already done
  • Content that trips spam filters
  • IP-level reputation if you're on a shared sending IP

A list that's been scrubbed but mailed from a domain with broken SPF will still see the same deliverability problems. Scrub the data, then audit the infrastructure. The full deliverability checklist is in email deliverability best practices.

How often should you scrub, by list type

List typeRecommended cadence
High-volume marketing (>1M sends/mo)Monthly
Mid-volume marketing (100k–1M/mo)Quarterly
Transactional onlyAt signup + every 6 months
Cold-outreach (B2B sales)Before every major send
Newsletter under 10k subscribersEvery 6 months
Re-engagement campaignsAlways before send

These are floors, not optimums. Teams sending to the same list more frequently or that observe bounce-rate drift between scheduled cleans should run an interim verification pass.

FAQ

What's the difference between email scrubbing and email scrub?

Same thing. "Scrub" is the verb form, "scrubbing" is the noun. Both refer to cleaning a marketing list.

Is email scrubbing the same as list cleaning?

Practically yes. Some vendors use "list cleaning" for batch processing and "scrubbing" for continuous, but the underlying work is identical.

What does an email scrubbing API do?

The same checks as a batch tool, accessible programmatically. You call the API per address (or per batch) and get back the verdict in real time. user.cleaning's verification API is one example.

How much does it cost to scrub a list?

Roughly $1–$8 per 1,000 addresses depending on volume and vendor. Most charge only for verdicts you act on; addresses returned as Invalid often don't count against your credit.

Will scrubbing hurt my numbers?

Short term, yes — the list gets smaller. Medium term, no — open rate, click rate, and inbox placement on the remaining list improve enough that total engagement usually goes up within two campaigns.

Can I scrub for free?

For small lists (<1,000 addresses), the free user.cleaning verifier covers single-address checks. For larger lists, free tiers from most vendors cover ~100–500 verifications.

What's the most overlooked scrubbing target?

Long-term unengaged contacts. Most teams scrub for invalid and disposable but keep stale opted-in subscribers on the list, which silently drags down deliverability metrics.

Run a scrub on any list with the user.cleaning bulk verifier or via API.