SendGrid SPF, DKIM, and Deliverability: Setup and Troubleshooting Guide
Set up SPF and DKIM for SendGrid, troubleshoot common deliverability issues, and learn how to warm up a SendGrid IP for maximum inbox placement.
SendGrid is one of the most widely used email platforms for both transactional and marketing email. But like any ESP, deliverability depends on your configuration. A SendGrid account with incorrect authentication, poor list hygiene, or no IP warmup will struggle just as much as any other platform.
Here's how to set up SendGrid properly and troubleshoot the most common issues.
Setting Up Authentication
Domain Authentication (Sender Authentication)
SendGrid's domain authentication process configures both SPF and DKIM in a single flow.
Navigate to Sender Authentication
In SendGrid, go to Settings → Sender Authentication → Authenticate Your Domain.
Select your DNS provider
Choose your DNS host from the dropdown. SendGrid provides instructions tailored to each provider.
Enter your domain
Enter the domain you'll send from. SendGrid generates CNAME records for you.
Add DNS records
SendGrid provides three CNAME records:
- Two for DKIM signing (s1._domainkey and s2._domainkey)
- One for link branding/tracking
Add all three to your DNS exactly as provided.
Verify in SendGrid
Click Verify. SendGrid checks that the DNS records are in place and properly configured.
SPF Record
When you authenticate your domain in SendGrid, SPF alignment is handled through the CNAME records rather than a traditional SPF include. However, if you need to add SendGrid to your SPF record directly (for example, when using the API without domain authentication), the include is:
include:sendgrid.net
Your SPF record should look like:
v=spf1 include:_spf.google.com include:sendgrid.net ~all
Check your SPF record to verify it's valid and passing.
DKIM
SendGrid automatically signs emails with DKIM once domain authentication is complete. SendGrid uses 2,048-bit DKIM keys by default, which meets current best practices.
If DKIM is failing after authentication, check:
- CNAME records were added correctly (no typos)
- DNS provider isn't flattening or proxying the CNAME (common with Cloudflare)
- The records have propagated (allow up to 48 hours)
DMARC
SendGrid authentication sets up SPF and DKIM alignment, but you still need a DMARC record on your domain:
v=spf1 ... ~all
Plus a DMARC TXT record at _dmarc.yourdomain.com:
v=DMARC1; p=quarantine; rua=mailto:[email protected]
SendGrid recommends at least p=quarantine for best deliverability.
Verify your SendGrid setup
Run a free deliverability check on your domain. Confirm that SPF, DKIM, and DMARC are all passing for your SendGrid configuration.
SendGrid IP Warmup
If you have a dedicated IP in SendGrid, warming it up properly is critical.
Automatic IP Warmup
SendGrid offers automatic IP warmup. When enabled, SendGrid gradually increases the volume sent from your new IP, routing excess volume through their shared IP pool during the warmup period.
| Week | Approximate Daily Volume from Dedicated IP |
|---|---|
| Week 1 | 50–200 |
| Week 2 | 200–500 |
| Week 3 | 500–1,000 |
| Week 4 | 1,000–5,000 |
| Weeks 5–8 | Gradual increase to full volume |
Manual IP Warmup
If you prefer manual control:
- Start by sending only to your most engaged recipients
- Send consistent daily volume (don't skip days)
- Monitor bounce rates and complaint rates after each send
- Increase volume by roughly 50% each day, slowing down if metrics degrade
- Full warmup typically takes 4–6 weeks depending on your total volume
Warmup Best Practices
- Send to engaged users first — Recipients who opened or clicked recently generate positive engagement signals
- Don't send to old lists — A list that hasn't been mailed in months will generate bounces and complaints
- Monitor Google Postmaster Tools — Watch your IP and domain reputation during warmup
- Pause if needed — If bounce rates exceed 3% or complaints exceed 0.1%, reduce volume and investigate
Common SendGrid Deliverability Issues
Emails Going to Spam
| Possible Cause | How to Check | Fix |
|---|---|---|
| Authentication not set up | Run a deliverability check on your domain | Complete domain authentication in SendGrid |
| No DMARC record | Check DNS for _dmarc record | Publish a DMARC record |
| IP not warmed up | Check volume history in SendGrid | Enable automatic warmup or follow manual schedule |
| High complaint rate | Check Google Postmaster Tools | Improve list quality, make unsubscribe easy |
| Poor content | Review email in spam filter testers | Reduce promotional language, improve text-to-image ratio |
High Bounce Rates
SendGrid categorizes bounces:
- Blocks — The receiving server rejected the message (authentication, reputation, or content)
- Bounces — The address is invalid (hard bounce) or temporarily unavailable (soft bounce)
- Invalid — SendGrid detected the address is invalid before attempting delivery
Review your suppression list in SendGrid → Suppressions. Don't re-import addresses that are on the suppression list.
Throttling and Rate Limiting
If you're sending high volume to a single domain (e.g., a large send to Gmail), you may encounter throttling. SendGrid handles retry logic automatically, but you can help by:
- Spreading sends over several hours instead of sending all at once
- Using SendGrid's send scheduling to time-distribute messages
- Ensuring your DNS is responding quickly (slow DNS can cause delivery delays)
SendGrid Plans and Deliverability
SendGrid's deliverability features vary by plan:
| Feature | Free / Essentials | Pro | Premier |
|---|---|---|---|
| Domain authentication | Yes | Yes | Yes |
| Dedicated IP | No | Yes (1 included) | Yes (multiple) |
| IP warmup automation | No | Yes | Yes |
| Email validation | No | Add-on | Included |
| Deliverability insights | Basic | Advanced | Expert support |
For most senders, the Pro plan with a dedicated IP provides the best deliverability control. The free plan shares IPs with many other senders, which can affect your delivery if others on the same IP behave poorly.
Monitoring in SendGrid
Track these metrics in SendGrid's Activity Feed and Statistics:
- Delivery rate — Percentage of emails accepted by the receiving server
- Open rate — Engagement signal (affected by Apple Mail Privacy Protection)
- Bounce rate — Should be below 2% per send
- Spam reports — Should be below 0.1% per send
- Block rate — Messages rejected by receiving servers
Set up SendGrid's event webhooks to capture real-time delivery data for your own monitoring systems.