Skip to content
wiki · technical reference

IP Warming

Taking a fresh IP from cold to production by ramping volume slowly and seeding real engagement. Skip it and you're blocklisted in a week.

~8 min read

Why receivers require warming

Gmail, Outlook, Yahoo, Apple all maintain reputation profiles for every sending IP they see. The profile tracks volume patterns, complaint rates, engagement signals, authentication history, and how the sender's behaviour matches what a legitimate sender at that volume looks like.

A new IP shows up with zero history. The receiver has no idea whether this IP belongs to a legitimate ESP or to a spammer that just rotated. Sending 50,000 messages on day one from an IP with no history looks exactly like the behaviour pattern of a spammer trying to outrun reputation tracking. Receivers know that pattern. They respond by rate-limiting, routing everything to spam, or applying a temporary block.

Spread the same volume across 30 days with engagement signals throughout, and you look like a legitimate sender ramping up. Same final volume, completely different reputation trajectory. That's the entire point.

The mechanics: a logarithmic ramp

Standard 30-day warmup follows a logarithmic curve. Day 1 around 50 messages. Day 30 around 50,000. Why logarithmic instead of linear? Because receiver reputation tracking responds non-linearly to volume. The early days establish baseline trust. The later days demonstrate sustained, predictable behaviour.

Approximate daily targets for a 30-day warmup to 50K daily:

Day 1:    50         Day 16:  6,000
Day 2:    100        Day 17:  7,500
Day 3:    200        Day 18:  9,000
Day 4:    400        Day 19:  10,500
Day 5:    600        Day 20:  12,500
Day 6:    900        Day 21:  15,000
Day 7:    1,200      Day 22:  18,000
Day 8:    1,500      Day 23:  22,000
Day 9:    1,800      Day 24:  26,000
Day 10:   2,200      Day 25:  30,000
Day 11:   2,800      Day 26:  35,000
Day 12:   3,400      Day 27:  40,000
Day 13:   4,000      Day 28:  45,000
Day 14:   4,800      Day 29:  48,000
Day 15:   5,500      Day 30:  50,000+

These are total daily targets across all receivers. Within a day, traffic should distribute across major receivers proportionally to your eventual production mix. If Gmail is 40% of your audience, it should be ~40% of your warmup volume.

Engagement seeding: where DIY warmup fails

Volume alone doesn't build reputation. A new IP sending 50 messages on day 1 to a list of cold prospects, with zero opens and zero replies, is sending 50 messages worth of negative signal. That's worse than not sending at all.

Production warmup needs engagement seeding: the early-warmup volume goes to a curated network of real opt-in mailboxes that interact with the messages. They open. They reply. They mark as not-spam. They move messages from spam to inbox. Those signals tell receivers "the recipients want this mail," which is the strongest reputation input there is.

How the engagement network composition shifts during a 30-day warmup:

  • Days 1-7. Around 95% engagement network, 5% real audience. Pure trust-seeding.
  • Days 8-14. 85% engagement network, 15% real audience. First Postmaster Tools rating typically registers around day 5-7.
  • Days 15-21. 70% engagement network, 30% real audience. Reputation profile stabilises.
  • Days 22-28. 40% engagement network, 60% real audience. Real-world traffic patterns dominate.
  • Days 29-30. 10% engagement network, 90% real audience. Stabilisation.

SaaS warmup tools (Mailwarm, Lemwarm, Folderly) implement this idea at small scale. They put your single mailbox into a network of around 500 other mailboxes that mutually warm each other. Fine for a single B2B outreach mailbox doing 50/day. Useless for a dedicated IP that needs to reach 50K daily; the engagement network has to be orders of magnitude larger to seed signals at that scale.

Authentication and infrastructure prerequisites

Warming an IP without proper authentication is wasted work. Before day 1 you need:

  • Custom rDNS aligned with the sending domain. 185.10.20.30 reverses to mail.example.com, and mail.example.com forward-resolves back to the same IP.
  • Valid HELO/EHLO matching the rDNS. Mismatch is an instant red flag.
  • SPF record at the sending domain root, listing the IP being warmed.
  • DKIM signing with 2048-bit keys, public key published at the appropriate selector.
  • DMARC record at p=none initially with rua= reporting active. Promote to p=quarantine after warmup.
  • MTA-STS policy file at the .well-known location, declaring TLS enforcement for inbound mail.

Missing any of these? Fix it before starting. Adding authentication mid-warmup forces receivers to re-evaluate the IP from scratch, often resetting whatever reputation has been built so far.

Monitoring during the warmup

An IP under warmup needs constant monitoring. Signals to track:

  • Gmail Postmaster Tools. The IP reputation gauge (low / medium / high) and the spam rate. Reputation typically registers around day 5-7. If it registers as "low" or "bad," stop the warmup and audit immediately.
  • Microsoft SNDS. Color rating per IP (red / yellow / green). Green by day 14 is the goal.
  • 84-RBL polling. Spamhaus, Barracuda, SORBS, UCEPROTECT, the rest. A listing during warmup is rare on a clean IP, but should be detected within minutes if it happens.
  • Bounce rates. Hard bounces above 2-3% indicate either bad list quality or pre-existing reputation issues. Soft bounces above 5% mean receiver-side throttling, often a sign of overly aggressive ramp.
  • Engagement network metrics. Open rates, reply rates, not-spam classifications from the engagement traffic. Drops mean content or configuration issues.

If anything goes red, pause the warmup. Resuming after a fix typically loses 3-5 days. Ignoring the red signal and continuing typically loses the entire warmup.

Common mistakes that ruin warmups

  • Day 1 volume too high. Should be in the low hundreds, not low thousands. 5,000 day-1 messages from an unknown IP is spam-pattern behaviour.
  • Ramping too fast. Doubling daily looks like a sender outrunning detection. The curve should be logarithmic, not exponential.
  • No engagement signals. Pure cold or pure transactional during early warmup gives receivers nothing positive to work with. The engagement network is what generates the signal that matters.
  • Mixing transactional and bulk. Different sending patterns confuse reputation tracking. Warm separately when you can.
  • Day-31 production at full volume. A successful warmup gets undone if day 31 jumps to 5x the warmup volume. Increase real traffic by 25-50% per week for the first month after warmup, not all at once.
  • Forgetting subdomain rotation. If one subdomain carries 100% of warmup and 100% of production, any reputation hit in production is concentrated there. Subdomain rotation distributes risk.
  • Ignoring receiver-specific feedback. Postmaster Tools and SNDS are saying something. Pay attention. A rating drop on day 12 is information, not a coincidence.

When to pick managed warming over DIY

The economics depend on volume and on what's at stake.

DIY with a SaaS tool (Mailwarm, Lemwarm) costs €30-50/month and works for single-mailbox B2B outreach at 50-100 messages/day. The engagement network is small. The schedule is approximate. The monitoring is basic. But the volume profile matches what the tool can do.

Managed warmup costs €199-299/month and works for dedicated IPs hitting 10,000-100,000 daily. The engagement network is large enough to seed signals at that scale. The schedule is calibrated. The monitoring catches issues within minutes. The engineering team handles delisting if anything breaks.

Wrong choice: using a SaaS warmup tool for a dedicated-IP-grade warmup. The engagement network is too small to seed signals at 5,000+ daily. The reputation curve flatlines around day 10-14 because the network has nothing more to offer. The IP enters production with mediocre reputation that takes 60+ days of real traffic to recover from. You don't save money. You just pay later.

Troubleshooting

Postmaster Tools shows "low" or "bad" reputation by day 7
Stop warming. Audit the IP's authentication (rDNS, SPF, DKIM, DMARC), the engagement network composition, and the content being sent. Common causes: rDNS pointing to a generic ISP-style hostname, DKIM not signing properly, the engagement network hitting spam-trap addresses, content with strong spam-pattern signals. Fix the root cause before resuming.
IP gets Spamhaus listed during warmup
Almost never happens with a properly configured fresh-IP warmup. If it does, the cause is usually engagement-network compromise (a seed mailbox is actually a spam trap) or pre-existing IP reputation (the "fresh" IP wasn't actually fresh). Pause, identify the cause, submit delisting with audit evidence. Recovery is typically 7-14 days at no extra charge if you're on managed warmup. Multi-week on DIY.
Bounce rate above 5% in the first week
Early warmup bounces should be under 2%. Higher means either receiver-side rate-limiting (pull volume back 30-50% and resume slower) or list quality (engagement network sending to invalid mailboxes). On managed warmup the engagement network is curated and bounces should be near zero. High bounces mean a misconfiguration on our end. Escalate immediately.
Production volume on day 31 causes reputation drop
You ramped too fast post-warmup. Don't go from 50K to 200K overnight. Increase by 25-50% per week for the first month. If the drop is already happening, pull back to the warmed volume level and ramp again from there.
IP looks fine but specific receivers (corporate Outlook) reject
Public-mailbox reputation (Gmail, Yahoo, Apple) and tenant-level corporate filtering are different problems. Some corporate Outlook tenants apply their own anti-spam filtering on top of Microsoft's. These rejections need sender support requests to the affected tenant or to Microsoft, not warmup adjustments. Separate problem. Your IP can have green Postmaster Tools and still get rejected by specific corporate filters.

Related entries