Cold Email Domain Warming, Inbox Rotation, and Deliverability: A Practical Playbook
Warm a new cold email domain for 2–4 weeks before real sending, keep each mailbox under roughly 20–40 cold emails per day, and rotate volume across many mailboxes rather than pushing any single one harder. Warmup runs inside your sending tool (Instantly, Smartlead, ReachInbox). Your infrastructure provider's job is different: hand you authenticated, fully owned mailboxes on separate domains with SPF, DKIM, and DMARC already correct. These are two separate layers, and confusing them is the most common reason deliverability programs stall.
The rest of this article is the operational detail. What to configure before the first send, what a realistic ramp looks like, the arithmetic for sizing a mailbox fleet, how to configure rotation without breaking your threads, and how to tell whether any of it is working when each mailbox is too small to show up in Google Postmaster Tools.
What is domain warming, and does it still work in 2026?
Domain warming is the practice of starting a new sending domain at very low volume with high positive engagement (opens, replies, and "move to inbox" actions) and increasing volume gradually so mailbox providers build a reputation record for the domain before it carries real campaign traffic.
It still works, but it is worth being precise about why, because the mechanism is widely misunderstood. Warming does not "unlock" volume. What it does is two things:
- It avoids the cold-start spike. A brand-new domain with no history that suddenly sends 500 emails a day looks exactly like a throwaway spam domain, because that is the behavior pattern throwaway spam domains have. Ramping removes that signal.
- It seeds a positive engagement baseline. Mailbox providers weight sender reputation heavily on recipient behavior. Starting with traffic that gets opened and replied to gives the domain something better than a blank slate.
What warming cannot do is compensate for a bad list, a bad offer, or copy that generates spam complaints. Warmup buys you a clean starting position. Your actual campaign behavior is what you do with it, and it will overwrite the warmup signal within days. Teams that treat warmup as a magic prerequisite and then blast a scraped list get the same result as teams that skip warmup entirely, just two weeks later.
One honest caveat about warmup networks: they work by having pools of mailboxes email each other and mark messages as important. Mailbox providers are aware of this pattern. Warmup traffic is a useful reputation floor and a useful "is this mailbox even working" canary, but treat it as one input, not proof of health. A domain can show 98% warmup inbox placement and still land in spam for real prospects, because real prospects behave differently than a reciprocal pool.
What has to be true before you send a single cold email?
Do all of this before warmup starts. Warming a misconfigured domain warms a misconfiguration.
Use secondary domains, never your primary
Cold outreach should never run on the domain that carries your invoices, password resets, and customer support email. Register lookalike domains such as getyourbrand.com, yourbrandhq.com, or yourbrand.io, and 301-redirect each to your main site so a curious prospect who strips the path still lands somewhere legitimate. If a secondary domain gets burned, you retire it and your real business email is untouched.
Buy them at least two to four weeks before you intend to send. Domain age is a weak signal on its own, but registering and sending on the same day is a strong negative one.
Get authentication right
- SPF: one record, one
v=spf1string, ending in~allor-all. Stay under the 10 DNS-lookup limit. Multiple SPF records is a hard fail, not a soft one. - DKIM: enabled and actually signing. On Google Workspace, generating the key is not enough. You must also click "Start authentication" after the DNS record propagates. This is the single most common silent failure in new Workspace tenants.
- DMARC: start at
v=DMARC1; p=none; rua=mailto:...so you receive aggregate reports, then move top=quarantineonce reports confirm SPF and DKIM align on all legitimate traffic. - MX records: present and pointing at the mailbox provider. A domain that sends but cannot receive is a spam signature.
- Custom tracking domain: if you use link tracking, use a subdomain of the sending domain (
track.getyourbrand.com) rather than your sending tool's shared tracking domain, which thousands of other senders have already degraded.
The bulk-sender requirements Google and Yahoo introduced in February 2024, plus Microsoft's equivalent for consumer Outlook domains enforced from May 2025, formalized SPF, DKIM, and DMARC as baseline for anyone sending 5,000+ messages a day to those providers, along with one-click unsubscribe and keeping spam complaint rates below 0.3%. Cold email fleets often sit under 5,000/day per domain, which technically puts them below the threshold. Ignore the threshold. Configure as if you were above it, because the same signals feed general filtering decisions at any volume.
Set up unsubscribe handling
Include a plain-text opt-out line and, where your sending tool supports it, the List-Unsubscribe header with one-click support. Cold email people resist this because it reduces reply rates. It also reduces spam complaints, and spam complaints are what actually kill domains. Google's guidance is a spam rate below 0.3%, with 0.1% as the target you should actually run at. A handful of complaints across a small fleet is enough to breach it.
How long should warmup run, and what does the ramp look like?
Plan on 2–4 weeks per new mailbox before it carries campaign traffic, with warmup continuing indefinitely at reduced volume afterward.
A workable ramp per mailbox:
- Days 1–7: warmup only, roughly 5–15 messages per day, climbing gradually.
- Days 8–14: warmup at 20–30 per day. Optionally begin 5–10 real sends per day to your warmest, most likely-to-reply segment.
- Days 15–21: real sending at 10–20 per day, warmup continuing alongside.
- Days 22–30: real sending at 20–30 per day, holding warmup at a maintenance level.
- Steady state: 20–40 real cold emails per mailbox per day, with warmup left running at 5–15 per day permanently.
Two things about this schedule deserve emphasis.
The platform limits are not the safe limits. Google Workspace permits 2,000 messages per day per user to external recipients; Microsoft 365 permits 10,000 recipients per day. Those are abuse ceilings, not deliverability guidance. Sending 200 cold emails a day from one mailbox will not trip a Workspace limit and will absolutely trip a reputation one.
Ramp the domain, not just the mailbox. If you run three mailboxes on one domain, the domain's daily volume is the sum of all three. Three mailboxes at 30/day is 90/day on that domain. Stagger mailbox launches within a domain by several days rather than starting all three at once.
How many mailboxes and domains do you actually need?
Work backwards from target daily volume. The arithmetic is simple and most teams get it wrong by a factor of three.
Take a target of 1,000 cold emails per day:
- At a conservative 30 emails per mailbox per day, you need ~34 mailboxes.
- At 3 mailboxes per domain, a common ceiling that keeps any single domain under ~90/day, you need ~12 domains.
- Add buffer for mailboxes in warmup, mailboxes being rested, and mailboxes retired mid-quarter. Call it 40 mailboxes across 14 domains.
Do not plan follow-ups as free volume. A three-step sequence to 1,000 new prospects a day is not 1,000 sends a day. At steady state it is closer to 2,500–3,000, because each day's new contacts overlap with two prior days' follow-ups. Size the fleet against total sends, not new contacts.
On cost: at Inboxlogy's $2.80 per mailbox per month with no setup fee, a 40-mailbox fleet is $112/month plus domain registrations. That number matters mainly because it means over-provisioning is cheap. Running 40 mailboxes at 25/day is meaningfully safer than running 25 mailboxes at 40/day, and the price difference is a rounding error against the cost of burning a domain and the pipeline attached to it.
What is inbox rotation, and how do you configure it correctly?
Inbox rotation is your sending tool distributing a campaign's volume across a pool of connected mailboxes so no single mailbox or domain absorbs the whole load. It is a feature of Instantly, Smartlead, ReachInbox, and similar platforms. You connect the mailboxes, define the pool, and the tool schedules across them.
Configuring it well comes down to five rules:
1. Keep follow-ups on the originating mailbox
This is the rule most often broken. Rotation should assign a prospect to a mailbox, not a send to a mailbox. If step one comes from [email protected] and step two arrives from [email protected] in what claims to be the same thread, you have broken threading, confused the recipient, and produced a pattern that looks like exactly what it is. Every reputable tool supports this. Verify the setting rather than assuming.
2. Set per-mailbox daily caps, not just a campaign cap
A campaign-level cap of 1,000/day across 34 mailboxes does not guarantee even distribution. Tools will skew toward mailboxes with available capacity, and a few mailboxes can end up carrying disproportionate load. Set the per-mailbox cap explicitly at 20–40 and let the campaign cap be the product.
3. Stagger sending windows and add jitter
Constrain sends to business hours in the recipient's timezone, and enable randomized intervals between sends. Thirty emails fired in ninety seconds at 9:00:00 is machine behavior. Thirty emails spread across a six-hour window at irregular intervals is not.
4. Segment pools by campaign, not one pool for everything
Assign each offer or major segment its own mailbox pool on its own domains. This isolates blast radius: if one offer generates complaints, it degrades the domains carrying that offer and leaves the rest of the fleet intact. One giant shared pool means one bad campaign contaminates everything.
5. Hold new mailboxes out of the rotation until they've ramped
Adding a day-old mailbox into an active pool means it immediately receives its share of campaign volume, which is the cold-start spike you spent two weeks avoiding. Most tools let you set a per-mailbox ramp. Use it, or keep new mailboxes in a warmup-only pool until they graduate.
Where does warmup actually run, and what does an infrastructure provider do?
These are two distinct layers, and knowing which vendor owns which saves a lot of confusion when something breaks.
The infrastructure layer provides the domains and mailboxes and makes sure they are authenticated and legitimate. Inboxlogy is an infrastructure provider: it does not run warmup. What it does is provision authorized Google Workspace and Microsoft 365 mailboxes with SPF, DKIM, and DMARC configured automatically, on dedicated US or EU IPs rather than a shared pool you share with unknown senders, with 100% ownership and full admin access on your side and a full API for programmatic provisioning.
The sending layer (Instantly, Smartlead, ReachInbox) runs warmup, rotation, sequencing, and reply handling. You connect the Inboxlogy mailboxes to that tool and enable warmup there.
The part worth scrutinizing when you evaluate any infrastructure vendor is ownership. A large share of cheap mailbox vendors resell seats inside their own Google Workspace or Microsoft tenant. You get an SMTP login; you do not get the admin console, you do not own the tenant, and you have no independent relationship with Google or Microsoft. Three consequences follow:
- If another customer in that tenant gets the tenant suspended, your mailboxes die with it, without warning and without recourse.
- You cannot verify DKIM is actually signing, cannot inspect audit logs, and cannot fix a misconfiguration yourself.
- You cannot migrate. Your domains are attached to someone else's tenant.
Authorized reseller provisioning with full admin access, which is what Inboxlogy's ownership model means in practice, avoids all three. You can log into the admin console, confirm DKIM status yourself, export what you need, and leave. That is worth checking with any vendor you consider, including this one: ask for admin console access before you buy, and if the answer is "we manage that for you," you are buying a seat in someone else's tenant.
What actually burns domains?
In rough order of how often it is the real cause:
- List quality. Scraped or unverified lists produce hard bounces and spam traps. Keep bounce rate under 2–3%; verify every list before import, and re-verify anything older than 60 days.
- Spam complaints. Driven by poor targeting and no visible opt-out. The 0.3% threshold sounds generous until you compute it on a small fleet: 3 complaints in 1,000 sends breaches it.
- Volume that outpaces engagement. Sending more while reply rates fall is the pattern filters are built to catch. If replies drop, cut volume. Do not add mailboxes to compensate.
- Copy and formatting. Heavy HTML, images, multiple links, and public link shorteners all hurt. Plain text with one link performs better and looks like a person wrote it.
- Open tracking. The tracking pixel forces HTML and adds a redirect domain. Many mature senders disable open tracking on cold sequences entirely and measure replies instead. Replies are the metric that matters and the only one filters reward.
- Bad infrastructure. Shared IP pools with unknown neighbors, unowned tenants, recycled domains with prior spam history.
How do you monitor deliverability when each mailbox sends so little?
This is the genuine hard problem with distributed fleets, and it deserves a straight answer: Google Postmaster Tools will mostly show you nothing. It requires substantial daily volume to a single domain before it reports reputation data, and a domain sending 90 emails a day across all mailboxes will not reach it. Set it up anyway, since it costs nothing and becomes useful if you consolidate, but do not treat an empty dashboard as good news. What to actually watch:
- Reply rate per domain, tracked over time. This is your best available proxy for inbox placement. A domain whose reply rate drops by half while the list and copy stay constant is a domain going to spam. Track it per domain, not per campaign, or you will average the signal away.
- Bounce rate per mailbox. A sudden bounce spike on one mailbox usually means a provider block, not a bad list.
- DMARC aggregate reports. These arrive regardless of volume and will tell you if SPF or DKIM alignment breaks, for example after a DNS change or a sending tool reconfiguration.
- Spam placement tests, run weekly per domain. Seed-list tests are imperfect, since seed inboxes have no engagement history and can read worse than reality, but a domain that suddenly fails a test it previously passed is a real signal. Use them for change detection, not absolute truth.
- Microsoft SNDS if you operate your own sending IPs, and blocklist monitoring (Spamhaus, SURBL) on your domains and tracking domains.
- A manual check. Once a week, send from a rotating sample of mailboxes to a real Gmail and a real Outlook account you own, and look at where it lands. It takes five minutes and catches things dashboards miss.
What do you do when a domain gets burned?
First, diagnose before you react, because the fix differs completely by cause:
- Sudden total failure on one mailbox: usually an auth break or a provider block. Check DKIM signing status and DMARC reports first. Often fixable in an hour.
- Gradual decline across a whole domain: reputation degradation. This is the real thing.
- Decline across every domain simultaneously: it is not the domains. It is your list, your copy, or your targeting, and rotating to fresh domains will burn those too within three weeks.
For genuine domain reputation damage, you have two options. Rest and rehabilitate: stop campaign sending entirely, leave warmup running, wait three to four weeks, then resume at roughly 25% of prior volume and ramp again. This works for moderate damage and preserves the domain. Or retire and replace: at $2.80 per mailbox and a ~$12 domain, replacement is cheap, and severely damaged domains often do not fully recover. Retire when a domain has been blocklisted, when placement tests fail consistently after a full rest period, or when reply rates never return to baseline.
Either way, fix the root cause first. Replacing domains without changing what burned them is a subscription to burning domains.
Pre-launch checklist
- Secondary domains registered 2–4 weeks ahead, 301-redirecting to the main site
- SPF: single record, under 10 lookups
- DKIM: enabled and authentication started, verified by inspecting a received message header
- DMARC:
p=nonewith a workingruaaddress, with a plan to move top=quarantine - MX records present; test that the mailbox can receive
- Custom tracking subdomain configured, or tracking disabled
- Admin console access confirmed on your own tenant
- Warmup enabled in the sending tool, ramping from ~5/day
- Per-mailbox daily cap set to 20–40; follow-ups locked to the originating mailbox
- Sending windows constrained to business hours with randomized intervals
- List verified; bounce rate expected under 2–3%
- Opt-out line in copy;
List-Unsubscribeheader enabled - Google Postmaster Tools connected; weekly placement test scheduled
Frequently asked questions
How long does cold email domain warming take?
Two to four weeks per mailbox before it carries meaningful campaign volume, ramping from roughly 5 messages a day to 20–40. Warmup should then keep running permanently at a reduced maintenance level of 5–15 a day, not be switched off once campaigns start.
How many emails per day can one mailbox safely send?
20–40 cold emails per day per mailbox is the practical safe range, regardless of platform limits. Google Workspace technically allows 2,000 external messages a day per user and Microsoft 365 allows 10,000 recipients a day, but those are abuse ceilings. Sending anywhere near them on cold traffic will damage domain reputation long before you hit them.
Does Inboxlogy handle warmup?
No. Inboxlogy provides the infrastructure: authorized Google Workspace and Microsoft 365 mailboxes on dedicated US or EU IPs, with SPF, DKIM, and DMARC configured automatically, 100% ownership, full admin access, and an API. Warmup and inbox rotation run in the sending tool you connect those mailboxes to, such as Instantly, Smartlead, or ReachInbox.
Is inbox rotation enough on its own to protect deliverability?
No. Rotation distributes load so no single mailbox is overworked, which prevents one specific failure mode. It does nothing about list quality, spam complaints, or copy, and spreading a bad campaign across 40 mailboxes simply burns 40 mailboxes instead of one. Rotation is a volume-management tool, not a deliverability strategy.
Should I use subdomains or separate domains for cold email?
Separate registered domains. Subdomain reputation is not fully independent of the root domain at every provider, so a burned subdomain can affect the parent, which defeats the purpose of isolating cold outreach from your primary business email. Separate lookalike domains cost roughly $12 a year each and give you clean isolation.