ESP8 min read

SendGrid deliverability drop: the 10-minute diagnosis

SendGrid's UI tells you opens, clicks and bounces — but not which IP pool, nor where the mail actually lands. Here is a 10-minute diagnostic flow you can run for free.

SendGrid is the default transactional ESP for a generation of SaaS companies. It is fast, it has a good API, and its dashboards look professional. What its dashboards will not do is tell you where your mail is actually landing — because SendGrid, like every major ESP, has no visibility past the receiving server's 250 OK.

When your SendGrid account starts showing open-rate drops with no obvious cause, the diagnosis needs to come from outside the SendGrid dashboard. Here is the flow we use.

SendGrid's IP pool tiers

Before anything else, know which pool you are on. SendGrid has four broad tiers:

  • Free — shared pool, lowest reputation, used by trial and free-tier accounts. Expect 55–70% Gmail Inbox on a clean domain.
  • Essentials — shared pool, slightly better. Newsletter and small-campaign senders. Expect 65–75% Gmail Inbox.
  • Pro — you get a dedicated IP (or can request one), you pay meaningfully more, but the reputation is yours to build.
  • Premier — dedicated IP with managed warm-up and a named deliverability contact. For >500k emails / month.
Pool mismatch is the #1 cause of silent drops

A sender on the Essentials shared pool can have placement collapse overnight if another Essentials customer sends a bad campaign. Nothing in your SendGrid account changes, nothing in your DNS changes, and opens drop 40% the next morning.

How to identify which pool you are on

Send yourself a test message from SendGrid and open the full headers. Look at the Received: chain — the first hop will be an IP in one of SendGrid's ranges. Then look up that IP on SenderScore.org. A reputation between 80 and 100 is a dedicated or premium pool; 60–80 is Essentials; below 60 is the free pool.

Second check: in the SendGrid UI go to Settings → IP Addresses. If you see a single IP listed as assigned to your account, you have a dedicated IP. If the page shows a pool name ("ip-pool-us-east" etc.) — shared.

The four most common SendGrid placement issues

1. Shared-pool drift

Symptom: open rate drops 20–40% in a single day, no config changes. Diagnosis: run a placement test, compare today's Gmail/Outlook Inbox % against last week's. If every provider dropped together, it is pool reputation.

2. Tracking domain blocklisted

SendGrid rewrites every link through a tracking domain (the default is a subdomain of sendgrid.net, or your custom CNAME). If the tracking domain ends up in URIBL or SURBL, every message goes to Spam — even if your sending domain is clean. Check your tracking host on multirbl.valli.org and on Spamhaus DBL.

3. Link shortener issues

SendGrid's Click Tracking wraps links in JavaScript redirects through its own domain. Older tracking hosts accumulated blocklist history. If your account still points at the legacysendgrid.net tracking host, move to a custom CNAME-authenticated tracking subdomain today.

4. Default-domain DKIM signing

New SendGrid accounts sometimes send messages signed withem.sendgrid.net instead of your own domain. This breaks DMARC alignment and routes every Gmail message to Spam. Fix: complete the Domain Authentication wizard in Settings → Sender Authentication. Confirm the message headers show d=yourdomain.com after the change.

Running the free 10-minute diagnostic

  1. Minute 0–2: send one message from SendGrid through the placement-test seedbox list. Note the per-provider verdict.
  2. Minute 2–4: open the raw headers of the seed copy. Confirm spf=pass, dkim=pass with d=yourdomain.com, and dmarc=pass with alignment.
  3. Minute 4–6: pull the sending IP from the headers, check it on Spamhaus, SORBS, SpamCop, Barracuda. Check the tracking domain on URIBL / SURBL.
  4. Minute 6–8: cross-reference with Google Postmaster Tools. Look at Domain Reputation and IP Reputation for the last 7 days.
  5. Minute 8–10: compare today's placement against the previous test if you have one. A sudden drop isolates pool drift; a slow drift isolates list or content.
# Quick header inspection (saved .eml file)
grep -E "^(Received|Authentication-Results|DKIM-Signature|Received-SPF):" \
  message.eml | head -20

# What you want to see:
# Authentication-Results: spf=pass dkim=pass dmarc=pass
# DKIM-Signature: d=yourdomain.com (NOT em.sendgrid.net)
# Received: from *.sendgrid.net (1.2.3.4) ← note this IP

Fixes by issue

  • Pool drift: open a SendGrid ticket citing your account ID and the 7-day placement drop; they can move you between pools within Essentials. If it recurs, plan to upgrade.
  • Tracking domain blocklisted: rotate the CNAME to a new subdomain, re-authenticate, wait 72 hours for propagation.
  • Default signing: complete Domain Authentication. Re-send a test and verify d=yourdomain.com.
  • Content or list problem: if authentication is clean and blocklists are clear but Gmail still routes to Spam, the issue is engagement or content. Prune inactive recipients and cut link count.

When to move to Pro

Rough rule of thumb: if you send more than ~40k messages per month and your placement is unstable on Essentials, Pro pays for itself in recovered conversion. Below that volume, the dedicated IP takes too long to warm up and you are better off on a reputable shared pool.

Dedicated IP needs warm-up

A fresh dedicated IP on SendGrid Pro starts with zero reputation. You need 3–4 weeks of graduated volume (50 → 500 → 5000 per day) before Gmail treats it neutrally. Don't move to Pro the day before a big campaign.

GlockApps comparison

GlockApps integrates with SendGrid via API and can run scheduled placement tests automatically. It is the right tool if you run dozens of accounts or need audit trails. For a single SendGrid tenant debugging a live placement drop, the free flow above gets you the same diagnostic answers in ten minutes. Inbox Check covers the placement side at no cost; SenderScore and Google Postmaster Tools cover the reputation side.

Frequently asked questions

Why does SendGrid say "Delivered" when the email is in Spam?

"Delivered" in SendGrid means the receiving server returned a 250 OK — accepted for delivery. It does not mean Inbox placement. Spam folder routing happens inside the receiver's classifier, invisible to SendGrid.

Does SendGrid have a built-in placement test?

No. SendGrid has reputation tools and a spam-checker preview based on SpamAssassin, but no seedbox-based per-provider placement measurement.

How often does SendGrid's shared pool reputation change?

Meaningfully: on a weekly timescale. Sharp drops: within hours of a bad-neighbour incident. Which is why a placement test catches problems before your open-rate chart does.

Is a dedicated IP always better than shared on SendGrid?

Only above ~40k emails per month, consistently. Below that, your own sending volume is too low to maintain a dedicated IP's reputation — a well-managed shared pool actually performs better.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required