How to warm up an email domain: a step-by-step guide

Step-by-step domain warmup: DNS prerequisites, a week-by-week ramp built on published ESP schedules, monitoring gates, and mistakes that reset progress.

Published August 20, 2026 · 10 min read

To warm up an email domain, you send a small volume of real mail on day one — around 50 messages is the common published starting point — and increase it gradually over three to six weeks while bounce and complaint rates stay clean. Before that first send, the domain needs to be roughly 30 days old with SPF, DKIM, and DMARC in place. This guide is the step-by-step version, built from the ramp schedules mailbox providers and ESPs actually publish — with an honest note about what those schedules are and are not.

Before day one: prerequisites

Warmup fails most often before it starts. Four gates come first.

1. Age the domain about 30 days. Spamhaus operates the Zero Reputation Domain (ZRD) list, and as deliverability practitioner Al Iverson puts it, any mailbox provider subscribing to the full Spamhaus suite "is going to reject mail from your domain, if your domain is less than 24 hours old" (Spam Resource). His recommendation is to age a new domain at least 30 days before commercial sending, and Spamhaus itself notes that most threat-intelligence companies flag newly registered domains for about their first 30 days. A domain registered this morning cannot be warmed this afternoon — even test messages will bounce at some providers.

2. Publish SPF, DKIM, and DMARC. Google's sender guidelines and Yahoo's sender requirements both expect SPF and DKIM to pass and DMARC to be published and aligned. Microsoft joined them: since May 5, 2025, senders over 5,000 messages/day to Outlook.com addresses need all three, with non-compliant mail routed to Junk and eventually rejected with 550 5.7.15 Access denied (Microsoft). Authentication is not a warmup accelerant; it is the entry ticket. Warming an unauthenticated domain builds reputation on a sender identity filters half-trust.

3. PTR record, if you run your own mail server. Google requires the sending IP to have valid reverse DNS (Google). If you send through an ESP such as Resend, the ESP's infrastructure handles PTR — one less thing on your list.

4. Working postmaster@ and abuse@ addresses. Both Google and M3AAWG's Sending Domains best practices list functioning role addresses as baseline hygiene.

You can verify the DNS side of this list — SPF, DKIM, DMARC, and more — in a minute with our free domain checker.

Choose what you are warming

Domain vs. IP. These are separate reputations. If you send through a shared IP — the default for nearly every Resend, Postmark, SendGrid, or Mailgun customer — the IP is already warm, shared with thousands of senders, and you warm the domain only. On a dedicated IP you warm both at once, and the IP is usually the tighter constraint (AWS). The domain is the reputation worth caring about most: as Mailgun notes, you will likely change IPs many times but rarely change domains, and Resend states that mailbox providers weight domain reputation over IP reputation for exactly that reason.

Primary domain vs. subdomain. A common and sensible pattern, recommended by M3AAWG, is to send each mail stream from its own subdomain (offers.example.com for marketing, info.example.com for transactional) so one stream's complaint spike cannot damage the other. Two caveats. First, a new subdomain of a warm parent domain is still treated as an unknown sender and needs its own warmup (Litmus); M3AAWG confirms that switching between organizational domain and subdomain "can require a ramp-up for the new combination." Second, Gmail counts its 5,000/day bulk-sender threshold per primary domain across all subdomains, over a rolling 24 hours (Google FAQ) — subdomains isolate reputation streams, not Gmail's bulk-sender arithmetic.

The ramp: what the published schedules actually say

Here is what major providers publish, side by side:

Source Day 1 Shape Timeline
SendGrid generic schedule 50 Doubles daily through day 8, then +21–33%/day 21 days to 1M/day
AWS SES 150 per mailbox provider Per-provider ramp, ~2×/day early, ~1.04×/day by week 6 40 days to 21M/day
Resend (new domain) 150–400/day Daily totals paired with hourly caps 7 days to ~2,000/day
Postmark 50–100 per major provider Double while metrics hold, then +20–50%/day 3–6 weeks
Litmus 1% of engaged list Percentage of list, doubling weekly 4–8 weeks to 100%

Before using any of these, be clear about what they are: vendor consensus, not science. No independent study validates any specific schedule. Laura Atkins of Word to the Wise, one of the field's most cited independent practitioners, is blunt: "There's no right way to warm up an IP nor is there a specific formula that everyone should follow" (Word to the Wise). SendGrid says the same in its own footnotes — schedules vary with list quality, engagement, and content, and "using it does not guarantee success." Treat every table as a starting heuristic that your own metrics override.

The tables do agree on one non-obvious principle: growth rate should shrink as absolute volume grows. SendGrid's "aggressive" curve doubles daily only while the numbers are trivially small, then decays to roughly +21–33% per day; AWS's curve decays from ~2×/day to ~1.04×/day by week six. Doubling from 50 to 100 is invisible to a filter; doubling from 400,000 to 800,000 is a volume anomaly. Any advice presenting "double daily" or "+30% daily" as one flat rule is wrong at one end or the other.

A week-by-week example

For a sender targeting a steady state of about 2,000 emails/day — the range many small SaaS and newsletter senders occupy — a defensible ramp looks like this:

Week Daily volume Growth rule Grounded in
1 25 → 200 Roughly double daily SendGrid doubles daily at small volumes; Postmark starts at 50–100 per provider
2 250 → 700 +20–30%/day Postmark's "grow by only 20–50% each day" once volume is substantial
3 850 → 1,600 +10–20%/day, hold each new tier 2–3 days Mailgun's staged plan; MailReach's 20%/day cap
4 1,600 → 2,000, then hold Plateau at target AWS warns against volume spikes right after warmup

Resend's own 7-day table reaches ~2,000/day in a single week — the aggressive end of the range — while M3AAWG suggests six weeks as an average for a full warmup. Where you land depends mostly on target volume and list quality; the evidence on duration is collected in how long domain warmup takes.

If you'd rather not run this ramp by hand, this is the mechanism WarmEnvelopes automates: a configurable start volume and daily increment sent through your own Resend account, with every send logged — the schedule logic is described in how the ramp-up schedule works.

Spread sends through the day, and never send in bursts

Google's sender guidelines state this directly: "Send email at a consistent rate. Avoid sending email in bursts" (Google). A day's volume fired in one batch at 09:00 looks like a spike even when the daily total is on schedule. This is why several ESPs express warmup partly or entirely in hourly caps: Resend pairs every daily figure with an hourly maximum, and SendGrid's automated warmup is defined only in hourly limits, starting at 20 emails/hour (SendGrid). Spreading sends across several hours of the working day is the practical implementation.

Consistency also means sending most days. Reputation models run on rolling windows, and M3AAWG warns that "lapses in sending or major fluctuations in traffic volume can impact both forming and sustaining sending reputation." Mailgun's staged plan explicitly resets progress on skipped days. A sender at 1,000/day who goes quiet for a week and returns at 1,000/day presents an anomaly against their own baseline — and anomaly-against-self is a stronger spam signal than absolute volume.

What to send, and to whom

If you have a subscriber list: warm with your most engaged recipients first. Litmus recommends targeting subscribers who opened or clicked in the previous three months; Klaviyo starts with a 30-day-engaged segment and only widens the window as metrics hold. Send real, wanted content — warmup is not a separate genre of email, it is your normal email at reduced volume to the people most likely to engage. And ramp per provider, not just in aggregate: a list that is 70% Gmail hides the fact you are hammering one provider (AWS).

If you have no list yet — a new product domain, a transactional stream that hasn't launched — you need controlled recipients: your own mailboxes at Gmail, Outlook, and other providers, plus colleagues and seed contacts. This is what WarmEnvelopes does in its simplest form: it sends real messages from your domain, through your Resend account, to inboxes you control. That is a materially different mechanism from third-party warmup pools that exchange mail between strangers' inboxes — a practice Resend argues against, though no mailbox provider has published a position either way.

For cold-outreach setups: the numbers are entirely different — tens of messages per mailbox per day, not thousands per domain — and content during warmup should be plain text with no images, links, or attachments (MailReach). See email warmup tools for how that ecosystem differs.

Monitor while you warm

Two metrics gate the ramp:

  • Spam complaint rate. Keep it below 0.10% and never let it reach 0.30% — Gmail's own two-tier threshold (Google); Yahoo uses the same 0.3% ceiling. During warmup the denominators are small, so a single complaint can move the number a lot — react to trends over a few days, but react.
  • Bounce rate. Published gates range from under 2% (Postmark) to under 4% (Resend). Rising bounces during warmup usually mean list quality problems, which warming cannot fix.

Braze's automated warmup publishes the most concrete "hold the ramp" rules in the industry: it pauses progression when delivered rate falls below 90%, open rate below 10%, bounce rate above 5%, or complaint rate above 0.04%. Those are good defaults for a manual ramp too: on a breach, hold the current tier — or drop back one — until metrics recover, rather than pushing on.

Three monitoring caveats, current as of August 2026. First, Google Postmaster Tools only shows data above a volume floor (roughly 100 authenticated messages/day to Gmail), so early warmup is largely blind (Google). Second, Postmaster Tools no longer shows domain or IP reputation at all — those dashboards were removed when v1 was retired in late 2025, so any guide telling you to "check your domain reputation in Postmaster Tools" is stale; spam rate and compliance status are what remain. Third, open rates are structurally inflated by Apple Mail Privacy Protection, which registers opens on delivery regardless of behavior (Twilio) — if you gate your ramp on opens, cross-check with clicks or replies.

Also: some spam-folder placement in week one is normal, not a failure signal. Al Iverson: "It is actually not uncommon to experience some spam folder placement during the warming process" (Spam Resource). If it persists past the early weeks, see why emails go to spam.

Common mistakes

  1. Registering and sending the same day. The Spamhaus ZRD mechanism rejects it outright at subscribing providers.
  2. Sending the whole day's volume in one burst. Violates the one instruction Google states verbatim.
  3. Jumping volume between tiers. A step-change against your own baseline reads as a compromise or a purchased list, whatever the absolute number.
  4. Skipping days, or stopping and restarting. Reputation decays: "most reputation systems only store data for 30 days" (SendGrid), and Braze advises restarting warmup entirely after three months of silence. After a ~30-day gap, re-ramp from a materially reduced volume rather than resuming at full speed.
  5. Ramping in aggregate while one provider takes most of the load. Throttling is per-provider; ramp per-provider.
  6. Gating the ramp on open rate with an Apple-heavy audience. Privacy-protected opens are partly fictional; use clicks and replies as the cross-check.
  7. Believing warmup will fix bad mail. It won't. Atkins again: "You can only warm an IP to the reputation of the mail sent from that IP" (Word to the Wise). Warming is a pacing mechanism, not a laundering mechanism.

When is warmup "done" — and the handoff cliff

A domain is warmed up when three things are true: filters have enough observed history to hold a prior about you, that prior is positive, and you are sending at or near target volume with stable metrics. The first condition decays with inactivity on roughly a 30-day window; the second can be destroyed by a single bad send. In that sense warmup is never permanently done — as Atkins puts it, an identity cannot be "pre warmed and then left without traffic" without losing the benefit (Word to the Wise). AWS recommends about 1,000 emails/day per mailbox provider just to maintain a warmed reputation (AWS).

The most dangerous day of the whole process is the day after it ends. AWS warns explicitly: "You should avoid sending large volumes of email immediately after the warmup process is complete" (AWS). Treating day 30 as a finish line and jumping from your last warmup tier to full campaign volume recreates exactly the anomaly the whole exercise existed to avoid. Keep the same growth discipline — 20–30% steps, held for a few days — until real sending volume has fully replaced the ramp.

One threshold deserves a flag at handoff: the day you send 5,000 messages to personal Gmail addresses within a rolling 24 hours, Google classifies you as a bulk sender — permanently, per its own FAQ — with the full requirements that status carries. Cross that line deliberately, with authentication, one-click unsubscribe, and clean metrics already in place, not by accident on launch day.

Frequently asked questions

How many emails should I send on day one of warmup?

The published schedules cluster around 50: SendGrid's generic warmup table starts at 50 emails on day one, Postmark recommends 50–100 per major mailbox provider, and Resend's new-domain guidance starts at 150–400 per day. Starting smaller is never harmful; starting larger is the main way senders get filtered in week one.

Do I need to warm up a domain if I'm on a shared IP?

Yes. Shared IPs (the default at Resend, SendGrid, Postmark, and Mailgun) are already warm, but your domain carries its own separate reputation that starts at zero and follows you across ESPs and IPs. On a shared IP you skip IP warming, not domain warming.

Can I warm up a brand-new domain the day I register it?

No. Mailbox providers subscribing to Spamhaus's Zero Reputation Domain list reject mail from domains less than 24 hours old, and most threat-intelligence systems flag domains for roughly their first 30 days. Register the domain, set up DNS, and let it age about a month before the first send.

What spam complaint rate is acceptable during warmup?

Google's sender guidelines say to keep the spam rate below 0.10% and never let it reach 0.30%; Yahoo uses the same 0.3% ceiling. During warmup, hold or reduce volume the moment complaints approach 0.1% — at low volumes a handful of complaints is enough to cross it.

Does my domain's reputation reset if I stop sending?

It decays rather than resets instantly. SendGrid and Braze both state that most reputation systems store data for about 30 days, so after a month of silence you should re-ramp at reduced volume, and Braze advises restarting warmup entirely after three months of inactivity.

Related reading