A new sending domain has no reputation. Not a bad one. None at all.
Mailbox providers treat an unknown domain that suddenly sends four thousand cold emails about the way a bank treats a brand-new account wiring $40,000 overseas. They assume the worst and act on it. Warming is how you build that reputation on purpose, before volume starts to matter.
Thirty days is the figure everyone quotes. It is worth saying plainly that no mailbox provider publishes one: it is a convention that works, not a threshold anything actually checks. The schedule below is a sensible default, not a specification.
What domain warming actually is
Domain warming is a scheduled ramp of sending volume from a new domain, paired with recipients who are likely to engage, so inbox providers accumulate positive signals before they see meaningful volume. Opens, replies, no complaints.
Three things are being built at the same time: the domain's reputation, the sending IP's reputation, and your authentication track record.
The common mistake is treating warming as a waiting period. Thirty idle days build nothing. What builds reputation is engaged mail, sent consistently, at a volume that grows slowly.
Set authentication first
Warming an unauthenticated domain wastes the thirty days. Publish SPF, DKIM, and DMARC before the first send. A warmed domain that fails DMARC alignment still lands in spam, and you will have spent a month proving it.
_semaos.yourdomain.com TXT "semaos-domain-verification=<token>"
_dmarc.yourdomain.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com"
<token>._domainkey.yourdomain.com CNAME → <token>.dkim.amazonses.com (three of these)
mail.yourdomain.com MX 10 feedback-smtp.<region>.amazonses.com
mail.yourdomain.com TXT "v=spf1 include:amazonses.com ~all"
click.yourdomain.com CNAME → your click-tracking host
Start at p=none so you collect reports without blocking your own mail, then tighten to quarantine once the reports come back clean. On the shared SEMAOS domain all of this is already in place. A custom domain, on a paid plan or the trial, needs the ownership TXT record, the three DKIM CNAMEs and the mail. pair that handles bounces and SPF. SEMAOS shows the exact values and suggests the DMARC record, which you publish yourself. The last CNAME is optional and moves your click and open links onto your own domain. The product tour shows the verification screen.
The 30-day ramp
Volumes below are per mailbox, per day, and they are a starting point rather than a standard. If you are sending from three mailboxes, triple them. Never triple by shortening the ramp.
| Week | Sends / mailbox / day | Send to | Watch |
|---|---|---|---|
| Week 1 | 10–20 | Contacts who already know you, replies expected | Any bounce at all |
| Week 2 | 25–40 | Warmest segment of the real list | Open rate holding |
| Week 3 | 50–80 | Broader list, still opted-in | Complaints, spam placement |
| Week 4 | 100–150 | Full cold segments | Per-provider divergence |
Week one is the part people skip, and it is the part that does the most work. Mail to people who already know you gets opened and answered, and a reply is the strongest positive signal there is. You are not prospecting yet. You are building a record.
One caveat about reading this table as a calendar. The weeks are shorthand for the volume they deliver, and it is the volume that earns the reputation. A domain that reaches week four having sent a fraction of the numbers above has not completed anything, whatever the date says. Why day 21 is not the finish line is the longer version, including the arithmetic SEMAOS uses to enforce it.
Signals that mean stop
Pause the ramp and fix the list the moment any of these show up. They do not resolve on their own, and volume makes them worse.
- Hard bounce rate above 2%, the ceiling most senders work to. The list is stale or unverified.
- Complaint rate above 0.1%, which is the line in Google's sender guidelines. Targeting or copy is wrong, not the domain.
- Open rate falling week over week while volume climbs. You are being filtered.
- One provider diverging sharply from the others.
That last one is the most useful and the most ignored. Gmail and Microsoft make independent decisions. If Gmail placement holds while Outlook collapses, the problem is not your domain in general, it is something specific about how Microsoft reads your mail, and averaging the two hides it. Diagnosing a single provider is its own job.
Warming does not survive a gap. Two weeks of silence in the middle of a ramp leaves you where you were, not where the calendar says, so plan the thirty days around a period when someone is actually watching the numbers.
When the ramp stalls
Bounces or complaints are climbing. The list is the problem, and the signals above already say stop. On domain sends SEMAOS suppresses every hard bounce and complaint as it arrives, so no bad address gets a second try, and past a 5% hard-bounce rate it throttles new sends, then suspends the account at 10%. What that throttle does and how to get out of it is its own post.
Bounces are clean but nobody opens. The mail is arriving and nobody wants it. This is the one case where the content really is the suspect, so test the subject line and the send time before touching anything else.
Authentication fails at the receiver. Back to DNS. The usual culprit is a From domain that does not match the domain DKIM signs with, so DMARC alignment fails even though each record looks fine on its own.
Everything is clean and it still will not warm. Check whether the domain or its IP is on a public blacklist. A hit on a domain you just bought usually means the previous owner burned it, and buying a different one is nearly always cheaper than arguing your way through a delisting.
SEMAOS still caps the domain after three weeks. That is the volume half of the gate, not a reputation problem. A custom domain's daily cap is the lower of two ramps, one counted in days since verification and one counted in sends actually made, and a domain that has sent 700 emails or fewer stays at 100 a day whatever the calendar says. Every send the domain gets out counts toward the next step, bounced ones included, so the way through is to keep sending.
After the ramp
Providers keep judging every send after the ramp finishes, and a warmed domain rarely fails all at once. Engagement slips a little each week, nobody looks at the trend, and one day mail that used to reach the inbox is going somewhere else.
What you control from here is who gets mailed and how often. On every plan, SEMAOS scores every contact from 0 to 100 each night and sorts them into five heat tiers. The cadence below is our rule of thumb for using them, not a setting in the product.
| Tier | Score | How to send |
|---|---|---|
| Hot | 80 and up | Normal cadence. Try anything new here first |
| Warm | 60–79 | Normal cadence |
| Cool | 40–59 | Less often, weekly at most |
| Cold | 20–39 | Re-engagement only |
| Inactive | Under 20 | One last re-engagement attempt, then stop |
Mailing Inactive contacts as often as Hot ones is how a domain's averages sink. Those sends almost never get opened, and providers read a pile of unopened mail as mail nobody wanted.
Once a week, look at the share of the list sitting in Cold and Inactive and whether it is growing, and at open rate against the previous week. A sustained drop means filtering, exactly as it did during the ramp.
Two rules outlast warmup. Re-check SPF, DKIM, and DMARC whenever the sending setup changes. And add volume in steps over a week or two, never in one jump: a warmed domain that suddenly triples its sending looks a lot like a new one.
FAQ
How long does domain warming take?
About 30 days is the common convention rather than a published standard, and no mailbox provider states a number. Domains sending only to opted-in, highly engaged lists often reach full volume sooner. Domains that trip a filter early should expect longer.
Can I warm several mailboxes at once?
Yes, and it is the right way to add volume. Each mailbox follows the same per-mailbox ramp in parallel. Three warmed mailboxes at 100/day beat one mailbox pushed to three times that, which looks like exactly the behavior filters are built to catch.
Do I need a separate domain for cold outreach?
A subdomain or separate domain keeps cold-outreach reputation away from your primary business mail. If a cold campaign goes badly, your invoices and support replies still deliver.
What happens if I skip warming?
Some mail lands, then placement degrades sharply, usually within the first few thousand sends. Recovering a burned domain takes longer than warming a fresh one would have.
Why is my domain still capped after three weeks?
In SEMAOS a custom domain's daily cap is the lower of two ramps, one counted in days since verification and one counted in sends actually made. A domain that has sent 700 emails or fewer stays at 100 a day even after day 21, so the fix is to keep sending, not to wait.