How to warm up a new AWS SES account without landing in spam
Starting fresh with AWS SES is exciting — until your first campaign lands in the Gmail Promotions tab at best, and spam at worst. The culprit is almost always skipping the warm-up. Here's the exact 30-day schedule.
Why warm-up matters
When you send from a brand-new IP or domain, inbox providers have zero reputation data on you. They err on the side of caution. If you blast 50,000 emails on day one, a meaningful percentage goes to spam, your bounce rate spikes, and you can trigger AWS's automatic account review — which can mean a 24-hour sending pause or full suspension.
Warm-up is the process of slowly increasing your send volume so that Gmail, Outlook, and Yahoo build a positive reputation history on your domain and sending IP before you hit full speed.
30-day warmup schedule
| Day | Max volume | Segment to use | Target open rate |
|---|---|---|---|
| 1 | 200 | Most engaged (opened last 30 days) | >40% |
| 2 | 500 | Most engaged | >40% |
| 3 | 1,000 | Most engaged | >35% |
| 4 | 2,000 | Engaged (last 60 days) | >30% |
| 5 | 3,000 | Engaged (last 60 days) | >30% |
| 7 | 5,000 | Engaged (last 60 days) | >28% |
| 9 | 8,000 | Engaged (last 90 days) | >25% |
| 11 | 12,000 | Engaged (last 90 days) | >25% |
| 13 | 18,000 | Active subscribers | >22% |
| 15 | 25,000 | Active subscribers | >22% |
| 18 | 35,000 | Active subscribers | >20% |
| 21 | 50,000 | Full list | >18% |
| 24 | 70,000 | Full list | >18% |
| 27 | 90,000 | Full list | >18% |
| 30 | 100,000+ | Full list — you are warm | >18% |
Key metrics to watch daily
- Bounce rate: must stay below 2%. Above 5%, AWS will pause your account automatically.
- Complaint rate: must stay below 0.1% (1 spam report per 1,000 emails). AWS alerts you at 0.08%.
- Delivery rate: should be above 98%. Lower means inbox providers are deferring.
- Open rate: track daily against your baseline. A sudden drop signals inbox placement issues.
Set up suppression before day one
Configure the SES account-level suppression list to automatically suppress any email address that bounces or generates a complaint. This is a one-time setup in the SES console under Configuration → Suppression list.
# Via AWS CLI — run this before your first send aws sesv2 put-account-suppression-attributes \ --suppressed-reasons BOUNCE COMPLAINT \ --region us-east-1
Shared IP warmup vs. dedicated IP warmup
Shared IPs (the default in SES) already have established reputation from other AWS senders. Your warmup benefits from this existing trust. The schedule above is for shared IPs.
Dedicated IPs start cold. If you are warming a dedicated IP, multiply every number in the schedule by 0.5 — go even slower. A dedicated IP sending 50,000 on day 15 (when shared IP warmup allows it) will likely see heavy spam placement. Dedicated IPs only make sense above 200k daily sends.
The mistakes that get accounts suspended
- Sending to purchased or scraped lists — complaint rates will be 10–30x normal
- Not setting up SNS bounce/complaint notifications before the first send
- Importing a cold list from another ESP and sending at full volume immediately
- Sending campaigns with broken or missing unsubscribe links (Gmail now enforces one-click unsub)
- Using the same domain for marketing and transactional email — they cross-contaminate reputation
What if AWS pauses your account?
You will receive an email from AWS Trust & Safety. Reply within 24 hours with: (1) an explanation of your list source and opt-in method, (2) your current bounce/complaint rates, (3) your plan to prevent recurrence. AWS responds within 1–3 business days. Being proactive and specific dramatically increases reinstatement odds.
The bottom line: 4 weeks of discipline buys you years of clean deliverability. Skipping warmup is the most common reason healthy lists suddenly stop converting.
Frequently asked questions
How long does AWS SES account warmup take? +
For a clean, highly-engaged list, a conservative warmup takes 28–35 days to reach 100,000+ daily emails safely. If you are only sending to 10,000 subscribers, you can reach full volume in 14 days. Rushing the process is the single most common cause of account pauses and inbox placement issues.
Do I need to warm up if I am migrating from Mailchimp? +
Yes, always. Even if your list is clean and engaged, your new sending domain and IP have no established reputation with inbox providers. The warmup process is about building that reputation data, not about the quality of your list. Existing Mailchimp senders who skip warmup regularly experience 20-30% inbox placement drops in the first week.
What happens if AWS pauses my account during warmup? +
You will receive an email from AWS Trust and Safety. Reply within 24 hours with: your list source, your opt-in process, current bounce and complaint rates, and your remediation plan. Be specific and factual. AWS reinstates most legitimate accounts within 1–3 business days. Do not open a new account — this makes the situation worse.
Should I use a dedicated IP or shared IP for warmup? +
Start on shared IPs unless you are sending more than 200,000 emails per day. Shared IPs have pre-existing positive reputation which actually helps during warmup. Dedicated IPs start with zero reputation — warming them up takes longer and requires even more discipline. Add dedicated IPs only after you have stable, high-volume sending on shared IPs.
What engagement rate should my warmup segment have? +
Use subscribers who opened or clicked in the last 60–90 days. Aim for an expected open rate of at least 25% in your warmup segment. High early engagement signals tell inbox providers that recipients want your email, which builds reputation faster and protects you if a small percentage of cold addresses bounce.
Can I send to my full list on day 1 if I use p=reject DMARC? +
No. DMARC policy has no effect on warmup. The warmup is about IP and domain reputation with inbox providers, not authentication. Even with perfect authentication (p=reject, passing DKIM, passing SPF), a new sending IP blasting 50,000 emails on day one will see significant spam placement.
