When migrating to dedicated IP addresses in AWS SES, sending high volumes of email immediately from a "cold" IP will cause major ISPs (Google, Microsoft, Yahoo) to defer or spam-box your messages. ISPs evaluate new IPs with suspicion until a consistent pattern of legitimate traffic and high user engagement is established.
A structured **IP Warmup Strategy** gradually increases your sending volume over a 30-day schedule while building domain reputation.
---
## Dedicated IP vs. Shared IP Pools in AWS SES
- **Shared IP Pools**: Managed automatically by AWS. Recommended for volumes under 50,000 emails/month.
- **Dedicated IP Addresses ($24.95/mo per IP)**: Required for high-volume senders (>100,000 emails/month) who want full control over their IP reputation.
AWS SES offers an **Automatic IP Warmup** feature, but a custom managed schedule is superior for senders with variable campaign lists.
---
## 30-Day Managed IP Warmup Schedule Blueprint
Below is the recommended daily sending schedule per dedicated IP address:
| Phase | Days | Daily Max Volume | Priority Segment | Target ESP Focus |
| :--- | :--- | :--- | :--- | :--- |
| **Phase 1** | Days 1–4 | 500 – 2,000 | Password resets, OTPs | High-engagement users |
| **Phase 2** | Days 5–10 | 4,000 – 15,000 | Active daily logons | Verified active subscribers |
| **Phase 3** | Days 11–18 | 30,000 – 100,000 | Transactional + Weekly digest | Broad audience |
| **Phase 4** | Days 19–30 | 200,000 – 1,000,000+ | Unrestricted production | All segments |
---
## Essential Warmup Best Practices
### 1. Warm Up with Highest Engagement Traffic First
Do NOT send re-engagement campaigns or cold promotional lists during Phase 1 or 2. Only route your most engaged users (who open and click >40% of emails) to the warming IP.
### 2. Implement Strict Rate Limits
Configure your mail queue worker to strictly limit dispatches per hour according to the warmup schedule:
```php
// Rate limiter implementation
Redis::throttle('ip_warmup_rate')
->allow(500) // Max 500 emails
->every(3600) // Per 1 hour
->then(function () {
// Dispatch email
});
```
### 3. Monitor Delivery Deferrals Daily
Check CloudWatch or SMTP logs for `451 4.7.500` or `421 4.7.28` response codes from Gmail/Yahoo. If deferrals spike:
- Freeze daily volume increase for 3 days.
- Reduce sending volume by 50% until deferrals clear.
---
## Summary
Patience is the core requirement of a successful IP warmup. Following a disciplined 30-day incremental ramp-up guarantees that your dedicated AWS SES IP establishes top-tier sender trust with all major mailbox providers.