Warm up a new sending domain
Build sender reputation before high-volume sends
New domain sending email? Your reputation is zero. Mailbox providers (Gmail, Outlook) treat you as suspicious. Sudden burst from new sender = spam folder.
Warm-up: gradually increase volume over 4-6 weeks.
Schedule
Day 1: 100 emails
Day 2: 150
Day 7: 1,000
Day 14: 5,000
Day 21: 10,000
Day 28: 50,000
Day 35: 100,000Roughly double weekly. Adjust per ESP's recommendations.
DNS first
Before warming, set up SPF, DKIM, DMARC:
acme.com SPF: v=spf1 include:_spf.your-ESP.com -all
default._domainkey.acme.com DKIM: v=DKIM1; k=rsa; p=...
_dmarc.acme.com DMARC: v=DMARC1; p=quarantine; rua=mailto:dmarc@acme.comWithout these, you're flagged regardless of volume.
Initial sends: warm contacts
Day 1: send to people you KNOW will open / interact:
- Your own team.
- Beta testers.
- Existing customers you have permission to email.
Positive engagement boosts reputation.
DON'T:
- Send to a purchased list.
- Send to old / cold contacts.
Monitor metrics
Watch:
- Bounce rate: < 2% target.
- Spam complaints: < 0.1%.
- Open rate: > 30%.
- Reply rate: > 5%.
If any deteriorate: pause, investigate. Don't push through.
# ESP webhooks track these
curl $ESP/stats?domain=acme.comVolume increase rules
Increase IF:
- Bounce rate stable / decreasing.
- Spam complaints near 0.
- Engagement healthy.
Hold (don't increase) IF:
- Bounce > 5%.
- Spam complaints > 0.1%.
Decrease IF:
- Bounces continue.
- Inboxing dropping.
Subdomain delegation
For high-volume marketing AND transactional:
noreply@acme.com, transactional (high inboxing needed).marketing@list.acme.com, bulk marketing.
Different subdomains have different reputations. Transactional doesn't suffer from marketing's bulk patterns.
Olympus emails: transactional → use mail.acme.com or noreply@acme.com.
ESP automated warm-up
Some ESPs (SendGrid, Postmark) automatically pace sends during warm-up. Enable:
sendgrid.send({ ..., ip_pool_name: "warmup-pool" });ESP gates throughput. Less manual work.
Move to dedicated IP later
For high volume (50k+/day), consider dedicated IP:
Shared IP: pool of senders. Other senders' problems affect you.
Dedicated IP: your reputation only.ESPs offer dedicated for $50-300/mo. Worth it at scale.
Bounces during warmup
Hard bounces should drop:
Day 1: 5% bounces (old list, lots of invalid).
Day 14: 1% (improving).
Day 28: 0.3% (clean list).If bounces stay high: your list is bad. Clean it.
Spam complaint thresholds
Mailbox providers' tolerance:
- Gmail: ~0.3% complaints triggers issues.
- Outlook: ~0.5%.
- Yahoo: ~0.5%.
Over: deliverability drops. Below: gradual reputation improves.
Engagement as proxy
If your emails are opened / clicked / replied to:
- Providers see engagement = "users want this."
- Reputation improves.
If not opened:
- Providers see "user doesn't want this."
- Reputation degrades.
Send fewer / better emails > more / mediocre.
Tools
- GlockApps: test deliverability.
- Mail-Tester: single-email check.
- MXToolbox: blacklist check.
Run before each warm-up phase.
For customer's white-label domain
If your B2B customer adds their domain (white-label):
- They handle warm-up.
- You can provide guidance.
- Start them slow.
<Banner intent="info">
Your domain {customer.domain} is new. Start with 100 emails / day for the first week to build reputation.
</Banner>Don't migrate domains casually
Switching from your-saas.com to mail.your-saas.com = re-warm-up. Even if it's similar / same TLD.
Plan migrations.
Maintain reputation
Once warmed:
- Don't send to cold lists.
- Clean bounces from list.
- Honor unsubscribes.
- Monitor weekly.
Reputation can degrade in weeks if you slip.