Self-hosted email marketing with full source code. Pay once, own forever. Get AcelleMail — $74 →

Domain Warmup for Self-Hosted Email Sending

Domain reputation now matters more than IP reputation at Gmail. A 4-week domain warmup playbook covering authentication setup, traffic gradient, monitoring, and the new-domain pitfalls.

Two changes have made domain reputation the dominant ranking signal, eclipsing IP reputation as the load-bearing column for inbox placement: (a) Gmail's 2024 spam-classifier rewrite weights domain history substantially more than IP history for B2C senders; (b) Microsoft's SmartScreen + Apple's Hide-My-Email both grade by domain-level signals because the receiving user no longer sees the IP at all. The consequence: a fresh from-domain sent from a warmed IP still hits spam at Gmail until the domain itself accumulates engagement.

This article is the domain warmup playbook that runs in parallel to the IP warmup schedule — and increasingly, alongside or even instead of it on shared-IP-pool senders (Amazon SES, SendGrid, Postmark) where the IP warmup is centrally managed.

When you need domain warmup

Domain warmup is mandatory whenever you introduce a from-domain that has no recent sending history. Common scenarios:

  • A new top-level domain registered for a new product line ("marketing.example.com" newly used as a from-domain).
  • A subdomain spun up for a separate sending program ("updates.example.com" for product email vs. news.example.com for newsletters).
  • A domain bought from another owner. Even if it had high reputation in the past, ownership change resets the count for most ISPs (and bad reputation can persist if the previous owner spammed — check first).
  • Aging domains kept "in reserve" for compliance reasons that you're now bringing into active sending.

Domains with active history (you've been sending from them for 6+ months) don't need warmup; existing reputation carries.

Pre-warmup authentication checklist

Before a single email leaves the new domain, confirm the four-record set:

# 1. SPF — single TXT record at the domain root, includes your sending source
dig +short TXT example.com | grep spf
# Expect: "v=spf1 include:amazonses.com ~all"  (or whatever sending source)

# 2. DKIM — TXT record at <selector>._domainkey.example.com, public key published
dig +short TXT acelle1._domainkey.example.com
# Expect: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."

# 3. DMARC — TXT record at _dmarc.example.com, policy at minimum p=none with rua
dig +short TXT _dmarc.example.com
# Expect: "v=DMARC1; p=none; rua=mailto:dmarc@example.com; aspf=r; adkim=r"

# 4. MX (if you receive replies) — points at your mail server
dig +short MX example.com

A single failure here invalidates warmup — every Gmail recipient will see "the sender of this message could not be verified" and treat the message as spam regardless of warmup state. Skip the warmup, fix authentication, restart from Day 1.

The Complete DNS Setup for Email Sending article covers each record in depth.

The 4-week domain warmup schedule

Different scale than IP warmup — domains warm faster because the engagement signal doesn't have to lift through an IP-reputation barrier. Use this for a new from-domain on a warmed IP (or a SES-shared-IP setup):

Week Day Daily volume Audience Acceptance check
1 1-3 50 Internal team + closest engaged segment Postmaster Tools "Authenticated Traffic" 100%
1 4-7 200 Top-quartile-engaged subscribers (90-day opens) Open rate ≥ 30%
2 8-10 500 Add second-quartile engaged Spam rate < 0.20%
2 11-14 1,500 Engaged 60-day segment Postmaster Domain Reputation = "Medium+"
3 15-21 5,000 Full engaged segment (180-day opens) Domain Reputation = "High" expected by Day 21
4 22-28 15,000 Broad list excluding never-opened Steady-state sending rate
5+ 29+ Full Full list per business rules

Critical: never co-warm a domain with a cold list. If your "engaged 90-day" segment is a subset of an active list you're already mailing from another from-domain, that's the right audience. If your only list is one that's been dormant for 6 months, you have two warmups stacked (domain + list re-engagement) and the failure rate is high — split them: re-engage the list from a warmed domain first, then transition to the new domain in a subsequent ramp.

AcelleMail configuration

Two pieces:

1. From-domain selection per campaign.

Admin → Sending Servers → Edit → "Default From Domain"
   = newly-warmed-domain.com

Admin → Customers → <customer> → Allowed Domains
   include: newly-warmed-domain.com (with DKIM identity verified)

2. Per-campaign volume capping. AcelleMail enforces a per-server quota that's daily-reset; combine with the warmup WarmupStrategy preset to gate volume. Use these settings during weeks 1-3:

Preset: Balanced
Growth strategy: Linear
Starting volume: 50 (Day 1) → bump weekly per the table above
Daily increment: 0 (you're managing the bumps manually for the first 4 weeks)
Max bounce rate (auto-pause): 0.05 (5%)
Max complaint rate (auto-pause): 0.003 (0.3%)
Pause on negative signals: on

When the strategy auto-pauses (bounce or complaint threshold hit), don't push past it manually. The pause is the safety system protecting domain reputation.

Monitoring during warmup

The dashboards to refresh daily:

  • Gmail Postmaster Tools — Domain Reputation graph specifically. Watch for "Low" appearances; any drop is a hard pause signal.
  • Microsoft SNDS — verify GREEN persists through the volume ramps.
  • AcelleMail bounce log — filter by from-domain. New-domain bounces tend to cluster: a sudden spike of 5.4.6 too many hops or 5.7.1 sender denied are reputation rejections, not list-hygiene problems.
  • Manual seed-list test (Glock Apps, MailTester) at the start of weeks 2 + 3 — confirms inbox placement at major ISPs.

New-domain pitfalls

Three traps that catch operators on every new-domain warmup:

Pitfall 1 — registrar parking redirect

A freshly-bought domain often serves a parking page on http://example.com/ until you point it at your real site. Gmail's automated systems crawl the from-domain's website to evaluate sender legitimacy. A parking page (especially one with adult content from the registrar's catch-all advertiser) sinks reputation before you've sent a single email. Always serve a real landing page at the domain root within 24 hours of buying it, before configuring any DNS for sending.

Pitfall 2 — lookalike-to-existing-brand domain

If your new domain visually echoes a known-spammed domain (e.g. you registered example-mail.com and example.com is a spam target), Gmail's classifier may prejudge it. Search your new domain on Spamhaus DBL and SURBL before warmup. If it's flagged, file a delisting petition + delay warmup until cleared.

Pitfall 3 — SPF flat-merge that exceeds 10 lookups

SPF has a hard limit of 10 DNS lookups per evaluation. New domains that include several sending sources (include:amazonses.com include:_spf.google.com include:sendgrid.net include:_spf.salesforce.com) easily exceed it. The result: SPF "permerror," every receiver treats it as authentication failure, every message goes to spam. Flatten the SPF record (tools: SPF Flattening Service) or use a single sending source per domain.

Domain reputation maintenance after warmup

Maintaining reputation post-warmup:

  • Volume consistency — same lessons as IP warmup. A domain sending 50k/day for a quarter then suddenly 250k/day on a holiday triggers spike-detection.
  • From-line consistencyNewsletter <hi@example.com> should not become John from Example <john@example.com> in mid-campaign without a reputation-rebuilding lead time.
  • Authentication consistency — DKIM key rotation should be pre-staged: publish the new selector 2 weeks before swapping. The old selector can stay live until cleared from any in-flight messages.
  • Engagement segmentation — same as IP-reputation maintenance, the engaged-half-of-list rule applies at the domain level too.

Related reading

FAQ

Can I warm a domain on a cold IP?

Technically yes, but you'll fight two reputation builds at once and the failure rate is high. Pick one — warm the domain on a known-good IP (your existing sending IP, or SES's shared pool), then transition to a new IP after the domain is High at Gmail.

What if I have multiple new domains to warm at once?

Stagger them. Don't introduce a new from-domain every week — Gmail's classifier flags rapid from-domain churn from the same IP. Two domains in 30 days is fine; five is not.

How much faster does shared-IP warmup go for the domain alone?

Roughly 2-3× faster than IP+domain combined warmup, because you're not building IP reputation. The 4-week schedule above is the right pacing for shared-IP scenarios; full IP+domain warmup is closer to 6-8 weeks for the same target volume.

What if the domain was previously used by the registrar's catch-all?

Most consumer registrars (GoDaddy, Namecheap) park unused domains. The parking IPs aren't sending email, so reputation isn't actively damaged — but if it shows up in any spam corpus, you start at "Low" not "Unknown." Audit Spamhaus DBL + Talos Intelligence before committing to use a previously-parked domain.

More in Sending & Deliverability