Email Hygiene Best Practices: Keep Your List Healthy and Deliverable
On this page
What Email Hygiene Means
Email hygiene is the practice of keeping your email list clean, accurate and engaged. It includes removing invalid addresses, suppressing disengaged contacts, correcting formatting errors, handling bounces and maintaining a list that accurately represents people who want to hear from you and can actually receive your messages.
Good hygiene is not optional. It directly affects:
- Deliverability. ISPs monitor bounce rates and engagement. A dirty list increases bounces, which damages sender reputation, which sends more of your email to spam.
- Cost. Most ESPs charge by contact count. Paying to store contacts who cannot receive your email or who never engage is wasted budget.
- Metrics. Invalid and disengaged contacts distort open rates, click rates and conversion rates. You cannot optimise what you cannot accurately measure.
- Compliance. GDPR, CAN-SPAM and CASL require honouring unsubscribes and managing consent. Poor hygiene increases the risk of sending to people who have opted out.
List Health Indicators
Metrics that signal hygiene problems
| Metric | Healthy | Warning | Action needed |
|---|---|---|---|
| Hard bounce rate | Under 0.5% | 0.5-2% | Over 2% |
| Soft bounce rate | Under 1% | 1-3% | Over 3% |
| Spam complaint rate | Under 0.05% | 0.05-0.1% | Over 0.1% |
| Unsubscribe rate | Under 0.3% | 0.3-0.5% | Over 0.5% |
| Open rate (B2B) | Over 20% | 15-20% | Under 15% |
| Open rate (B2C) | Over 15% | 10-15% | Under 10% |
| List growth rate | Positive | Flat | Declining |
| Engagement rate (opens + clicks) | Over 30% of list active in 90 days | 20-30% | Under 20% |
Warning signs
- Sudden drop in open rates. May indicate deliverability issues caused by poor list hygiene.
- Increasing bounce rates over time. The list is decaying and not being maintained.
- Flat or declining list size despite acquisition. Unsubscribes and bounces are outpacing new subscribers.
- ESP warnings. Most ESPs will flag accounts with high bounce or complaint rates.
- Blacklist notifications. Your sending IP or domain appearing on blacklists.
Hygiene Practices
1. Handle bounces immediately
Hard bounces (permanent delivery failure):
- Remove from all sendable lists after the first hard bounce.
- Add to a suppression list to prevent re-addition.
- Do not attempt to email a hard-bounced address again.
Soft bounces (temporary delivery failure):
- Allow 2-3 soft bounces over separate sends before taking action.
- Common causes: mailbox full, server temporarily unavailable, message too large.
- After 3 soft bounces, treat as a hard bounce and suppress.
Most ESPs handle bounce processing automatically. Verify that your ESP's bounce handling is enabled and configured correctly. Check that hard bounces are being suppressed, not just flagged.
2. Process unsubscribes immediately
- Remove from the sending list within 24 hours (CAN-SPAM requires within 10 business days; best practice is immediate).
- Add to a suppression list to prevent re-addition from other sources.
- Do not email unsubscribed contacts again, even from a different list or sending system.
- If you use multiple sending systems, sync the suppression list across all of them.
3. Remove invalid addresses proactively
Do not wait for bounces to identify invalid addresses. Proactively verify your list:
When to verify:
- Before importing any new list (purchased, scraped, or collected from an event).
- Before sending to a list that has not been emailed in 3+ months.
- Quarterly for your full active list.
- After a migration between ESPs or CRMs.
Verification process:
- Export your email list.
- Upload to Email Extractor to deduplicate first.
- Run the deduplicated list through an email verification service.
- Process results:
- Valid: keep on the sendable list.
- Invalid: suppress immediately.
- Risky/catch-all: flag for cautious handling (see Catch-All Domain Handling Strategies).
- Disposable: suppress or flag depending on your tolerance.
4. Remove duplicates
Duplicates inflate your list count, distort metrics and waste send volume. The same person receiving the same email twice looks unprofessional and increases unsubscribe risk.
Where duplicates come from:
- Imported from multiple sources (event list + CRM + manual addition).
- Different capitalisation or formatting (john@example.com vs John@Example.com).
- Re-subscription with a different name but same email.
- Integration errors (data flowing from multiple sources into the same list).
Upload your lists to Email Extractor for case-insensitive deduplication across multiple files and formats. See How Email Deduplication Works.
5. Suppress role-based addresses
Role-based addresses (info@, sales@, support@, admin@) are not personal addresses. They typically go to a shared inbox or are unmonitored.
Handling options:
- Suppress from all marketing and outreach lists (most conservative).
- Flag and send only transactional or highly relevant content.
- Segment into a separate list with lower sending frequency.
See Role-Based Addresses.
6. Identify and suppress spam traps
Spam traps are email addresses used by ISPs and anti-spam organisations to identify senders with poor list hygiene. There are two types:
- Pristine traps: addresses that were never used by a real person. They only appear on your list if you scraped, purchased, or guessed addresses.
- Recycled traps: addresses that were once real but were abandoned and later repurposed as traps. They appear on your list if you did not remove them when they became inactive.
You cannot identify spam traps by looking at them. They look like normal addresses. The defence is good hygiene:
- Never purchase email lists.
- Remove hard bounces immediately.
- Remove contacts who have not engaged in 12+ months.
- Verify addresses before sending.
7. Engagement-based pruning
Contacts who never open or click are dragging down your deliverability. ISPs track engagement; low engagement signals that your email is unwanted.
Define engagement tiers:
| Tier | Definition | Action |
|---|---|---|
| Active | Opened or clicked in the last 90 days | Full sending frequency |
| Passive | Opened in the last 90-180 days but has not clicked | Reduced frequency, re-engagement content |
| Disengaged | No opens in 180+ days | Re-engagement campaign |
| Inactive | No opens in 365+ days | Suppress or remove |
Re-engagement campaign:
Before removing disengaged contacts, attempt re-engagement:
- Email 1 (day 0): "We miss you" / "Still interested?" Different subject line style than usual. Ask if they want to continue receiving emails.
- Email 2 (day 7): Offer to update their preferences (different content, different frequency). Include a prominent unsubscribe option.
- Email 3 (day 14): Final email. "We'll stop emailing you unless we hear back." Clear opt-in button.
After re-engagement:
- Contacts who engage (open, click, reply): move back to the active list.
- Contacts who explicitly unsubscribe: suppress.
- Contacts who do not respond to any of the 3 emails: suppress from regular sends. Keep on file for annual or semi-annual win-back attempts.
8. Monitor for typos and formatting issues
Common typos and formatting errors that should be caught on entry and cleaned periodically:
| Error | Example | Fix |
|---|---|---|
| Common domain typos | @gmial.com, @yaho.com, @hotmal.com | Auto-correct to the correct domain |
| Missing TLD | user@example | Reject or flag at entry |
| Spaces in address | user @example.com | Strip spaces |
| Double periods | user@example..com | Remove extra period |
| Invalid characters | user@example.com> | Strip invalid characters |
| Case inconsistency | User@Example.COM | Lowercase all |
Maintenance Schedule
After every send
- Process hard bounces (should be automatic with your ESP).
- Process unsubscribes (should be automatic).
- Review complaint reports (if available from ISP feedback loops).
Weekly
- Review bounce trends (are bounce rates increasing?).
- Check for new blacklist appearances (use a monitoring service).
- Review ESP dashboards for health warnings.
Monthly
- Run engagement analysis (identify newly disengaged contacts).
- Review unsubscribe trends (increasing rates may indicate content problems).
- Check for duplicate records created in the past month.
- Review new contacts added (are they from quality sources?).
Quarterly
- Full list verification through an email verification service.
- Re-engagement campaign for contacts in the "disengaged" tier.
- Deduplication of the full list.
- Review and update suppression list (merge duplicates, verify it is being applied across all sending systems).
- Review segmentation (are segments still accurate?).
Annually
- Full list audit (comprehensive health check).
- Suppress contacts with no engagement in 12+ months (after re-engagement attempt).
- Review consent records (do you have a valid basis for emailing each contact?).
- Review data sources (are any sources consistently producing invalid or disengaged contacts?).
- Update validation rules (new disposable email domains, new role-based patterns).
Prevention: Keeping the List Clean from the Start
Form-level validation
- Require email confirmation (double opt-in) for newsletter and content subscriptions.
- Validate email syntax on the form (client-side).
- Check for disposable email domains (server-side).
- Check for common typos and suggest corrections.
- Use a CAPTCHA or honeypot to prevent bot submissions.
Import validation
- Require verification before importing any list (purchased, scraped, or event-collected).
- Reject imports with bounce rates above 5%.
- Flag imports with high percentages of role-based or disposable addresses.
- Deduplicate against the existing database before importing.
Integration validation
- Validate data flowing from integrated systems (CRM syncs, form tools, third-party platforms).
- Set up rules to prevent invalid addresses from entering the email system through integrations.
- Monitor integration-sourced contacts separately to identify quality issues.