Email Warm-Up Strategies for New Domains
A practical playbook for building sender reputation from scratch
Sarah Okonkwo
Deliverability Specialist
Why New Domains Start at Zero
Every new domain begins with no sender reputation. Inbox providers like Gmail, Outlook, and Yahoo have no historical data to judge your sending behavior, so they treat you with suspicion. If you immediately blast 50,000 emails from a freshly registered domain, the result is predictable: your messages land in spam, your IP gets throttled, and you may even end up on a blocklist.
Warm-up is the process of gradually increasing your sending volume while building a positive reputation through high engagement. It is not optional—it is a prerequisite for any serious email program. Even if you are migrating from another ESP and bringing a clean list, the new IP or domain still needs to be warmed independently.
The Warm-Up Schedule
A standard warm-up takes 2–4 weeks, depending on your target volume. Here is a sample schedule for a domain targeting 50,000 emails per day:
// Warm-up schedule (daily send volume)
const warmupSchedule = [
{ day: 1, volume: 50 },
{ day: 2, volume: 100 },
{ day: 3, volume: 200 },
{ day: 4, volume: 400 },
{ day: 5, volume: 700 },
{ day: 6, volume: 1000 },
{ day: 7, volume: 1500 },
{ day: 8, volume: 2500 },
{ day: 9, volume: 4000 },
{ day: 10, volume: 6000 },
{ day: 11, volume: 9000 },
{ day: 12, volume: 13000 },
{ day: 13, volume: 18000 },
{ day: 14, volume: 25000 },
{ day: 15, volume: 35000 },
{ day: 16, volume: 50000 },
];The exact numbers are guidelines, not rules. The principle is to roughly double volume every 1–2 days while monitoring bounce and complaint rates. If you see a spike in bounces or complaints at any stage, pause and investigate before continuing.
Targeting Your Most Engaged Recipients
During warm-up, you want to maximize positive engagement signals. This means sending only to recipients who are most likely to open, click, and interact with your emails. Start with users who have recently signed up, recently active users, or users who have historically shown high engagement.
Here is a practical approach: query your database for users who have logged in within the last 30 days or who opened your last 3 emails. Use these as your warm-up cohort. As your volume ramps, gradually expand to less-engaged segments. This strategy sends a clear signal to inbox providers: your recipients want your mail.
// Select warm-up recipients ordered by engagement
const warmupRecipients = await db.contacts.findMany({
where: {
suppressed: false,
lastEngagedAt: {
gte: subDays(new Date(), 30),
},
},
orderBy: { lastEngagedAt: "desc" },
take: todayVolume,
});Automated Warm-Up Tools
Manual warm-up is tedious and error-prone. Several ESPs now offer automated warm-up features that handle the volume ramping for you. Brew provides a fully automated warm-up mode: when you add a new sending domain, you can enable warm-up and Brew will automatically throttle your sends according to a proven schedule, dynamically adjusting based on real-time bounce and complaint data. If Brew detects a reputation drop, it slows the ramp automatically.
Mailgun offers IP warm-up tooling through their dashboard, with a suggested schedule and the ability to split traffic between warmed and new IPs. SendGrid provides a similar feature called “Automated IP Warmup” that gradually increases the percentage of traffic routed through a new IP. If you are using Resend or Postmark, warm-up is less of a concern for shared IP plans since the IP is already warm—but you still need to warm your domain reputation.
Monitoring During Warm-Up
During the warm-up period, you should be checking your metrics daily. The key indicators to watch are:
Bounce rate: Should stay below 2%. If hard bounces spike, you have list quality issues. Spam complaint rate: Must stay below 0.10%. If complaints rise, your recipients may not recognize your sender name or did not expect the email. Open rate: This is your primary positive signal. Open rates above 30% during warm-up are a strong indicator of healthy engagement. Inbox placement: Use seed testing (GlockApps, or brew.new’s built-in placement tests) to verify you are landing in the inbox, not spam or promotions.
// Example: Daily warm-up health check
async function checkWarmupHealth(date: string) {
const stats = await emailApi.getStats({ date });
const healthy =
stats.bounceRate < 0.02 &&
stats.complaintRate < 0.001 &&
stats.openRate > 0.25;
if (!healthy) {
await alertOps("Warm-up health check failed", stats);
await pauseWarmup();
}
return healthy;
}Common Warm-Up Mistakes
Sending too much too fast: This is the number one mistake. Resist the temptation to accelerate the schedule. Even if things look good on day 3, jumping to full volume will damage your reputation. Using purchased or unverified lists: Warm-up amplifies list quality issues. If your list contains spam traps or invalid addresses, they will surface immediately and tank your reputation. Inconsistent sending patterns: Inbox providers prefer predictable senders. Sending 10,000 on Monday, zero for three days, then 50,000 on Friday looks suspicious. Maintain a consistent daily cadence throughout warm-up.
Ignoring content quality: Even during warm-up, your email content matters. Avoid spammy subject lines, excessive images with no text, and URL shorteners. Write emails that look like they come from a real product or service, because they do. The warm-up period is not just about volume—it is about establishing a pattern of legitimate, wanted communication.
Sarah Okonkwo
Deliverability Specialist
Sarah helps companies land in the inbox, not the spam folder. Her background spans DNS authentication, ISP relations, and compliance.