Email Deliverability

Email List Hygiene Checklist: 10 Steps Before You Press Send

A dirty email list destroys your deliverability, inflates your costs, and can get you blacklisted. Follow this pre-send checklist to clean your list, protect your sender reputation, and maximize inbox placement.

March 2026·14 min read

Why Email List Hygiene Is Non-Negotiable

Every email you send to an invalid address, a disengaged subscriber, or a spam trap actively damages your sender reputation. ISPs like Gmail, Outlook, and Yahoo track your bounce rate, spam complaint rate, and engagement metrics in real time. A bounce rate above 2% triggers reputation penalties. A spam complaint rate above 0.1% can land you on a blocklist. Once your sender reputation drops, even your emails to valid, engaged subscribers start hitting the spam folder.

The math is straightforward. If your list of 50,000 has 5% invalid addresses, that is 2,500 bounces per campaign. At a 5% bounce rate, Gmail will throttle your sending and start routing your messages to spam. The cost is not just the $25 to $50 you paid your ESP to send those bounced emails. It is the thousands of legitimate subscribers who never see your message because your reputation took a hit. For a deeper dive, read our guide on how clean data improves email deliverability.

Here is the 10-step checklist. Complete every step before every campaign send. No exceptions.

The Pre-Send Email List Hygiene Checklist

Step 1: Remove Hard Bounces From Previous Campaigns

What to do: Export your bounce report from your last campaign. Filter for hard bounces (permanent delivery failures). Remove every hard-bounced address from your current send list.

Why it matters: A hard bounce means the address does not exist, the domain is dead, or the mailbox is permanently full. Sending to a known hard bounce a second time tells ISPs you are not managing your list. This is one of the fastest ways to tank your sender score.

Impact: Removing hard bounces alone can improve your deliverability rate by 3 to 8 percentage points. If you are experiencing high bounce rates with Mailchimp specifically, see our guide to fixing Mailchimp bounce rates with data cleaning.

Step 2: Validate Email Syntax

What to do: Check every email address against a standard syntax pattern. A valid email has a local part, an @ symbol, and a domain with at least one dot. Remove or flag addresses that fail syntax validation.

Why it matters: Addresses missing the @ symbol, containing spaces, or with invalid characters will bounce immediately. Catching these before send prevents unnecessary bounces.

john.smith@ (missing domain)

john smith@gmail.com (space in local part)

john@.com (missing domain name)

@gmail.com (missing local part)

john@@gmail.com (double @ symbol)

john.smith@gmail.com (valid)

Impact: Syntax validation catches 1 to 3% of addresses in a typical list, all of which would be guaranteed bounces.

Step 3: Fix Common Domain Typos

What to do: Scan the domain portion of every email address against a known list of common typos. Auto-correct when there is an obvious match. Flag ambiguous cases for manual review.

Why it matters: Domain typos are the single most recoverable category of invalid email. These are real people who wanted to give you their real email address but made a typing mistake. Fixing the typo recovers a valid subscriber instead of bouncing them out of your list permanently.

TypoCorrectionFrequency
gmial.comgmail.comVery common
gmal.comgmail.comVery common
gamil.comgmail.comCommon
gmail.cogmail.comCommon
gnail.comgmail.comCommon
yaho.comyahoo.comVery common
yahooo.comyahoo.comCommon
yahoo.conyahoo.comCommon
yhaoo.comyahoo.comOccasional
hotmal.comhotmail.comVery common
hotmial.comhotmail.comCommon
hotmail.conhotmail.comCommon
outlok.comoutlook.comCommon
outloo.comoutlook.comOccasional
iclould.comicloud.comCommon
icoud.comicloud.comOccasional
aol.conaol.comCommon

Impact: Typo correction recovers 0.5 to 2% of addresses that would otherwise bounce. These are real subscribers you keep instead of lose.

Step 4: Remove Role-Based Addresses

What to do: Remove or flag email addresses that go to a role or function rather than a person. Common role-based prefixes include:

info@, admin@, support@, sales@, marketing@, help@,

contact@, webmaster@, postmaster@, abuse@, noreply@,

office@, team@, hello@, billing@, hr@

Why it matters: Role-based addresses are shared inboxes managed by multiple people. The person who opted in may no longer monitor the inbox. Other recipients who see your email may mark it as spam, and one spam complaint from a role-based address carries the same weight as any other. ISPs also view high volumes of role-based sends as a signal of purchased or scraped lists.

Impact: Removing role-based addresses reduces spam complaints by 10 to 25% in most campaigns.

Step 5: Remove Disposable and Temporary Email Domains

What to do: Check every email domain against a database of known disposable email providers. Remove any matches. The most common disposable domains include:

mailinator.com, guerrillamail.com, tempmail.com,

throwaway.email, 10minutemail.com, yopmail.com,

sharklasers.com, guerrillamailblock.com, grr.la,

dispostable.com, mailnesia.com, maildrop.cc,

fakeinbox.com, trashmail.com, temp-mail.org,

getnada.com, emailondeck.com, mohmal.com,

burnermail.io, inboxbear.com

Why it matters: Disposable email addresses are created to be used once and discarded. They are never checked again after initial use. Sending to them is a guaranteed waste and contributes to your bounce rate as these addresses expire quickly.

Impact: In B2C lists, disposable addresses can represent 2 to 8% of your total. Removing them prevents future bounces and improves engagement metrics. For more on removing invalid addresses, see our guide on how to remove invalid emails for free.

Step 6: Deduplicate by Email (Case-Insensitive)

What to do: Normalize all email addresses to lowercase, then remove duplicates. Keep the record with the most complete data or the most recent activity.

John.Smith@Gmail.com → john.smith@gmail.com (keep)

john.smith@gmail.com → john.smith@gmail.com (duplicate, remove)

JOHN.SMITH@GMAIL.COM → john.smith@gmail.com (duplicate, remove)

Why it matters: Sending the same person the same email twice is unprofessional and increases unsubscribe rates. ESPs also charge per recipient, so duplicates waste money directly.

Impact: Typical lists contain 3 to 10% duplicates. Removing them saves money and improves the recipient experience.

Step 7: Remove Unsubscribed Contacts

What to do: Cross-reference your send list against your unsubscribe list. Remove every address that has previously opted out. This sounds obvious, but it is commonly missed when lists are compiled from multiple sources or exported from different systems.

Why it matters: Sending to unsubscribed contacts violates CAN-SPAM (up to $50,120 per email), GDPR, and CCPA. It also guarantees spam complaints from people who explicitly told you to stop emailing them. A single spam complaint from an unsubscribed user carries heavy weight with ISPs.

Impact: Compliance with unsubscribe requests is a legal requirement with severe financial penalties for violations.

Step 8: Check Domain MX Records

What to do: For every unique domain in your list, perform an MX (Mail Exchanger) record lookup. If the domain has no MX records, it cannot receive email. Remove all addresses at that domain.

Why it matters: Domains without MX records include typo domains (user@gogle.com), defunct company domains, and domains that exist but do not have email configured. Every email sent to a domain without MX records is a guaranteed hard bounce.

Impact: MX record validation catches 1 to 5% of addresses that syntax validation misses. An address can be syntactically valid but still undeliverable if the domain does not accept email.

Step 9: Remove Catch-All Domain Addresses

What to do: Identify domains configured as "catch-all" (they accept email to any address, whether the mailbox exists or not). Flag addresses at catch-all domains for closer review or segment them into a separate, lower-priority send.

Why it matters: Catch-all domains accept everything during the SMTP handshake, so they never bounce. But many of the addresses do not have real mailboxes behind them. The emails get accepted, then silently discarded. This inflates your "delivered" count while hurting engagement metrics because nobody reads those emails. Low engagement signals to ISPs that your content is unwanted.

Impact: Segmenting catch-all addresses prevents them from dragging down your engagement rates and misleading your campaign analytics.

Step 10: Segment by Engagement (Remove 6+ Month Inactive)

What to do: Check your email analytics for open and click activity. Any subscriber who has not opened or clicked an email in the last 6 months should be moved to a re-engagement segment or removed from your active send list.

Why it matters: Gmail, Outlook, and Yahoo heavily weight engagement in their spam filtering algorithms. If a large percentage of your recipients never open your emails, ISPs interpret this as a signal that your email is unwanted. Repeatedly sending to non-openers actively harms your deliverability to engaged subscribers.

Impact: Removing or re-engaging inactive subscribers can improve open rates by 15 to 30% and dramatically improve inbox placement. A smaller, engaged list outperforms a large, disengaged one every time.

Cumulative Impact: What Happens When You Complete All 10 Steps

Each step in this checklist targets a different category of list quality issues. Together, they compound to produce dramatic improvements in campaign performance:

MetricBefore HygieneAfter Hygiene
Bounce rate5-12%Under 1%
Spam complaint rate0.1-0.5%Under 0.05%
Open rate12-18%25-40%
Inbox placement70-80%95%+
Cost per engaged recipient$0.015-0.03$0.005-0.01

The improvement is not linear. Clean lists have a multiplier effect: higher inbox placement leads to more opens, which leads to better engagement signals, which leads to even higher inbox placement. It is a virtuous cycle that starts with list hygiene. Read our full guide on how to clean your email list for additional strategies beyond this checklist.

How NoSheet Automates Steps 1 Through 9

Manually completing this checklist for every campaign is tedious and error-prone. NoSheet's email validator automates the first nine steps in a single operation:

Syntax validation: Every email is checked against RFC 5322 standards. Invalid formats are flagged immediately.

Domain typo correction: NoSheet maintains a continuously updated database of 500+ common domain typos and auto-corrects them, recovering subscribers that would otherwise bounce.

Role-based detection: Addresses with role-based prefixes are automatically flagged so you can exclude them from your send list.

Disposable domain filtering: NoSheet checks against a database of 30,000+ disposable email domains, updated weekly, to catch temporary addresses.

MX record verification: Every unique domain is checked for valid MX records. Addresses at domains that cannot receive email are flagged.

Catch-all detection: Domains configured as catch-all are identified so you can segment or suppress those addresses.

Deduplication: Case-insensitive duplicate removal across your entire list.

Upload your list, run the validator, and download a clean file with invalid addresses removed and issues flagged. The entire process takes seconds, regardless of list size. Step 10, engagement-based segmentation, requires your campaign analytics data, but NoSheet can merge your engagement data with your contact list to make that segmentation easy.

Clean Your Email List Before Your Next Send

Upload your list and validate every address in seconds. Catch bounces, typos, disposables, and duplicates before they hurt your reputation.

Validate Your Email List