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.

Best Practices

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.

1

Navigate to Sender Authentication

In SendGrid, go to Settings → Sender Authentication → Authenticate Your Domain.

2

Select your DNS provider

Choose your DNS host from the dropdown. SendGrid provides instructions tailored to each provider.

3

Enter your domain

Enter the domain you'll send from. SendGrid generates CNAME records for you.

4

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.

5

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.

WeekApproximate Daily Volume from Dedicated IP
Week 150–200
Week 2200–500
Week 3500–1,000
Week 41,000–5,000
Weeks 5–8Gradual increase to full volume

Manual IP Warmup

If you prefer manual control:

  1. Start by sending only to your most engaged recipients
  2. Send consistent daily volume (don't skip days)
  3. Monitor bounce rates and complaint rates after each send
  4. Increase volume by roughly 50% each day, slowing down if metrics degrade
  5. 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 CauseHow to CheckFix
Authentication not set upRun a deliverability check on your domainComplete domain authentication in SendGrid
No DMARC recordCheck DNS for _dmarc recordPublish a DMARC record
IP not warmed upCheck volume history in SendGridEnable automatic warmup or follow manual schedule
High complaint rateCheck Google Postmaster ToolsImprove list quality, make unsubscribe easy
Poor contentReview email in spam filter testersReduce 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:

FeatureFree / EssentialsProPremier
Domain authenticationYesYesYes
Dedicated IPNoYes (1 included)Yes (multiple)
IP warmup automationNoYesYes
Email validationNoAdd-onIncluded
Deliverability insightsBasicAdvancedExpert 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.