Why SendGrid Emails Go to Spam and How to Fix It
SendGrid emails usually go to spam because authentication, alignment, list quality or sending pattern is wrong, not because SendGrid is broken. If you keep increasing volume before fixing the cause, mailbox providers usually filter harder. This guide gives you the checks, DNS fixes, SendGrid settings, warm-up rules and proof steps.
If you are setting up from scratch, keep the SendGrid warm-up guide open beside this fix. Before changing records, check the sending domain with the free SPF checker, DKIM checker and DMARC checker.
Why are SendGrid emails going to spam?
Start with the symptom. Spam placement is rarely one isolated failure. It is usually a stack of small problems that receiving providers score together.
| Symptom | Likely cause | 5-minute check | Fix |
|---|---|---|---|
| Gmail accepts the email but places it in Spam | Weak domain reputation, high complaints, poor alignment or link tracking mismatch | Check Google Postmaster Tools and inspect Authentication-Results in Gmail | Fix SPF, DKIM, DMARC and branded links, then reduce volume |
| Yahoo sends to Spam or rejects mail | SPF, DKIM or DMARC not passing and aligned | Send to a Yahoo inbox and view full headers | Authenticate the domain in SendGrid and publish DMARC |
| SendGrid shows delivered, but users do not see mail | Delivered means accepted, not inboxed | Check a controlled test inbox manually | Measure Inbox, Promotions and Spam placement separately |
| New dedicated IP performs worse | IP has no reputation yet | Check whether the IP is new and volume jumped quickly | Warm the IP and domain gradually |
| Only tracked-link emails go to Spam | Unbranded click tracking domain | Hover links and compare domains | Set up branded link tracking in SendGrid |
| Replies land, but campaigns do not | List or message problem | Compare recipients, links and unsubscribe handling | Clean the list and simplify the message |
| Bounces or blocks rise suddenly | Bad list, old contacts or provider throttling | Check SendGrid Activity and suppressions | Stop that segment, remove bad addresses and restart lower |
| Mail from one subdomain fails | DNS record missing on that subdomain | Query SPF, DKIM and DMARC for the visible From domain | Authenticate the exact sending domain |
SendGrid Activity is useful, but it is not an inbox placement report. A delivered event means the recipient server accepted the message. It does not mean the message reached the primary inbox.
Which numbers matter?
Use numbers to decide whether you have a setup problem, a reputation problem or a volume problem. Where a provider does not publish a number, do not invent one. Use the provider’s current documentation and your own logs.
| Item | Number or setting | Why it matters |
|---|---|---|
| Google spam complaint rate | Keep under 0.1%; never reach 0.3% | Google names these thresholds in sender guidance |
| Yahoo spam complaint rate | Keep under 0.3% | Yahoo lists this as a sender best-practice threshold |
| Microsoft consumer bulk threshold | Over 5,000 emails/day | SPF, DKIM and DMARC alignment requirements apply at that level |
| New domain warm-up | Typically 2–3 weeks | New domains need sending history before larger campaigns |
| Existing domain warm-up | Typically 7+ days | Enough time to see stable spam and reply signals |
| Cold email per mailbox | Typically 30–50/day | Add mailboxes instead of forcing volume through one identity |
| Warm-up during campaigns | 10–15/day per mailbox | Keeps normal mailbox activity alongside outbound |
| BobWork warm-up ramp | 3/day, +2/day, capped at 30/day | Cap is editable per mailbox up to 100 |
For primary guidance, read Google email sender guidelines, Yahoo sender best practices and Microsoft’s current sender requirements when you send at that scale.
Is SendGrid authentication passing?
Authentication is the first place to look because it is objective. Either the record exists and passes, or it does not.
Authenticate the SendGrid domain
In SendGrid, go to Settings → Sender Authentication → Authenticate Your Domain. Choose your DNS host, enter the domain or subdomain you will send from, and let SendGrid generate the DNS records.
SendGrid usually gives you CNAME records for domain authentication. The exact hostnames and targets are generated inside your account. Do not copy values from another domain or a blog post.
Publish the records at your DNS host. If you use Cloudflare, set these authentication records to DNS only, not proxied. A proxied mail authentication CNAME can break verification.
Then return to SendGrid and click Verify. SendGrid documents the flow in its domain authentication guide.
Single Sender Verification is not the same fix. It verifies one sending address, but it does not give your domain the same authentication foundation as full domain authentication.
Check SPF correctly
SPF authorises the service that sends mail for your domain. With SendGrid, the practical point is simple: the visible sending domain must authorise SendGrid through the records SendGrid asks you to publish.
Do not create multiple SPF TXT records at the root. A domain should have one SPF record beginning with v=spf1. If you already use Google Workspace, Zoho, Microsoft or another sender, merge includes into one record.
Also watch the SPF 10-DNS-lookup limit. Too many include mechanisms can cause SPF permerror, which looks like authentication failure to receivers. If you hit that, use the SPF lookup limit guide before adding another include.
Check DKIM selectors
DKIM signs mail with a key controlled by your domain. SendGrid domain authentication normally creates DKIM through CNAME records. Common selectors include s1 and s2, but your account can generate different values.
Open a test email in Gmail, choose Show original, and check DKIM. You want DKIM to pass with the same organisational domain as your From address, or an aligned domain under relaxed alignment.
If DKIM fails, check three things first. The record host may have been pasted with the full domain twice. The CNAME may be proxied. Or you may be sending from a different domain than the one you authenticated.
Publish DMARC
DMARC tells receivers what to do when SPF or DKIM fails alignment. For a repair phase, start with monitoring.
| DNS name | Type | Value |
|---|---|---|
| _dmarc.example.com | TXT | v=DMARC1; p=none; rua=mailto:dmarc@example.com |
Replace example.com and the reporting mailbox. Once legitimate mail passes, you can move to a stricter policy. Do not jump to p=reject while you are still unsure whether all senders are authenticated.
Google and Yahoo expect DMARC for bulk senders. Yahoo requires DMARC at least p=none and passing, with From domain alignment through SPF or DKIM.
Which SendGrid settings should you fix?
DNS can pass while the sending setup still looks suspicious. The next checks are inside SendGrid and the message itself.
Use the right SMTP credentials
If an app sends through SendGrid SMTP, use SendGrid’s documented SMTP settings. The host is smtp.sendgrid.net. The username is apikey, and the password is your SendGrid API key. Use TLS on a supported port, commonly 587.
SendGrid lists SMTP integration details in its SMTP service documentation. Avoid using a personal mailbox password or an unrelated SMTP host for the same From domain.
Brand your tracking links
Unbranded tracking links create a domain mismatch. The visible From domain says one thing, but links and redirects point somewhere else. That can hurt trust, especially on newer domains.
In SendGrid, use branded link tracking for the same domain family you send from. The exact DNS record is generated by SendGrid. It is usually a CNAME under a branded tracking subdomain.
If you do not need click tracking, turn it off while diagnosing. A plain link to your own domain is easier to evaluate than a chain of redirects.
Match your From identity
Use a From address on the authenticated domain. Avoid sending from sales@example.com through an authenticated domain like mail.otherdomain.com unless alignment is deliberate and tested.
The envelope sender, DKIM signing domain and visible From domain do not need to be identical in every case. But they need to align under provider rules. When fixing spam placement, simpler is better.
Use a stable From name as well. Changing the From name, subdomain and template at the same time makes reputation harder to read.
Add unsubscribe handling
If you send marketing or bulk mail, include a working unsubscribe link. For Gmail and Yahoo bulk expectations, one-click unsubscribe applies to subscribed promotional mail.
Cold email still needs a clear opt-out process. BobWork Outbound adds a List-Unsubscribe header and link for its own campaigns. If you send directly through SendGrid, configure this in your sending app or template.
Honour unsubscribes quickly. Yahoo’s published best practices say to honour them within 2 days.
Is the list causing spam placement?
Authentication gets you through the door. List quality and content decide whether recipients trust the mail.
Stop bad segments first
If a segment produces bounces, spam complaints or no engagement, stop it before you fix anything else. Continuing to send while debugging pollutes the reputation data.
Export recent SendGrid Activity and look at blocks, bounces, spam reports and invalid emails. Then check SendGrid suppressions. Suppressed contacts should not be re-uploaded to another campaign tool.
Never use purchased or scraped lists for permission-based marketing. For cold outreach, keep targeting narrow and relevant. Generic high-volume blasts create the same negative signals even when DNS is perfect.
Simplify the email
For a repair test, send plain text or near-plain text. Use one clear link at most. Avoid URL shorteners, heavy HTML, image-only messages, attachments and misleading subject lines.
Spam filters do not use one magic word list. They evaluate the whole message and sender history. But a lightweight message gives you a cleaner test because it removes tracking, layout and link risk.
If transactional mail goes to spam, separate it from promotional campaigns. Use different categories, templates and ideally a different subdomain. Password resets should not share reputation with cold acquisition sequences.
Watch replies and complaints
Mailbox providers trust human behaviour. Replies, saves and normal conversation help. Complaints, deletes without reading and spam moves hurt.
Do not ask your team to mark spam as not spam on personal accounts at scale. That is not a repair strategy. Use controlled test inboxes to diagnose, then fix the cause.
For Gmail-heavy sending, set up Google Postmaster Tools. It can show domain reputation, spam rate and authentication status when there is enough mail volume for Google to report data.
When does warm-up help SendGrid?
Warm-up is useful when reputation is missing or stale. It is not a substitute for authentication, consent or list quality.
Use warm-up when the sending domain is new, the SendGrid dedicated IP is new, the mailbox identity has not sent before, or you are restarting after a long quiet period. Warm-up creates a gradual pattern instead of a sudden spike.
Do not use warm-up as a cover for broken DNS. If SPF, DKIM or DMARC fails, fix that first. Do not use warm-up to push bad lists, misleading offers or high-volume campaigns through a domain that is already receiving complaints.
| Situation | Warm-up use | First safe step |
|---|---|---|
| New domain | Yes | 2–3 weeks of low, steady sending before campaigns |
| Existing domain, new SendGrid setup | Yes | 7+ days while DNS and headers stay stable |
| Dedicated IP with no history | Yes | Gradual IP warm-up before larger sends |
| Shared SendGrid pool | Sometimes | Focus first on domain authentication and list quality |
| High spam complaints | Not first | Pause bad segments and clean the list before ramping |
| DKIM failing | No | Fix DNS before any volume increase |
BobWork Email Warm-up supports SendGrid by sending through your SendGrid SMTP credentials and checking received mail through an IMAP inbox. The free pool does this step automatically in a shared warm-up network, or you can switch to a private pool per account if you prefer.
The engine starts at 3 emails per day, adds 2 per day, and caps at 30 per day by default. Weekends run at 30%. Warm-up mail found in Spam is moved to Inbox, marked read, labelled Warm-up and archived after 24 hours. Only warm-up mail carrying the engine’s hidden header is touched.
For a broader decision, read does email warm-up work and domain warm-up vs mailbox warm-up.
What should you do now?
Work in this order. Objective fixes come first. Reputation work comes after setup is correct.
| Step | Action | How to verify |
|---|---|---|
| 1 | Send a test to Gmail and view Show original | SPF, DKIM and DMARC show pass where expected |
| 2 | Open SendGrid → Settings → Sender Authentication | The sending domain is verified, not only a single sender |
| 3 | Check SPF | One SPF record exists and it does not exceed 10 lookups |
| 4 | Check DKIM | SendGrid selectors resolve and match the sending domain |
| 5 | Check DMARC | _dmarc has at least p=none during diagnosis |
| 6 | Disable or brand click tracking | Links use your domain, or tracking is off for the test |
| 7 | Pause weak segments | SendGrid Activity shows no new sends to bad segments |
| 8 | Review suppressions | Bounced, unsubscribed and spam-report contacts stay suppressed |
| 9 | Send a plain repair test | One short message, one link maximum, no attachments |
| 10 | Restart at lower volume | Spam placement and complaints stay stable for 7 days |
| 11 | Warm up if reputation is new | Daily volume rises gradually, not in one jump |
| 12 | Monitor provider dashboards | Google, Yahoo and SendGrid data agree with inbox tests |
If your domain appears on a public blacklist, do not panic. Many listings do not affect every mailbox provider. Check the listing, identify the cause, and request delisting only after the underlying issue is fixed.
Confirm the fix worked
Do not confirm with one successful test. Spam filtering is probabilistic. You need a short run of clean sending.
Use three evidence sources. First, inspect message headers from Gmail, Yahoo and any important recipient domain. Authentication should pass consistently. Second, check SendGrid Activity for bounces, blocks and spam reports. Third, manually check controlled inboxes for Inbox, Promotions and Spam placement.
For Gmail, watch Google Postmaster Tools if you send enough volume for dashboards to populate. Keep the spam complaint rate under 0.1%, and never at 0.3%. Also watch domain reputation and authentication panels.
For Yahoo, keep SPF and DKIM passing, DMARC at least p=none, alignment working, one-click unsubscribe where required, and spam rate under 0.3%. Yahoo also expects unsubscribes to be honoured within 2 days.
For Microsoft consumer mailboxes, the published high-volume threshold is over 5,000 emails per day. At that level, SPF, DKIM and DMARC with alignment are required. Microsoft does not publish a numeric complaint threshold in the provided sender rule summary, so monitor blocks, replies and complaints rather than guessing one.
A clean repair window is typically seven days for an existing domain. For a new domain or new dedicated IP, give it two to three weeks. Keep real outreach around 30–50 emails per mailbox per day, and add mailboxes or domains instead of forcing more volume through one identity.
If you want a controlled ramp, connect SendGrid to BobWork Email Warm-up. It is free for up to 10 mailboxes on new accounts, with no credit card and no time limit. Use it after DNS is correct, not before. No warm-up tool can guarantee delivery, so keep watching real inbox placement.
Frequently asked questions
Why are my SendGrid emails going to spam?
The common causes are missing domain authentication, failed SPF or DKIM alignment, weak DMARC, unbranded tracking links, poor list quality, sudden volume increases, or a new domain with no sending history. Start with DNS because mailbox providers can filter unauthenticated mail before content matters.
Does SendGrid guarantee inbox placement?
No. SendGrid can send and authenticate mail, but inbox placement is decided by receiving providers such as Gmail, Yahoo and Microsoft. Your domain reputation, complaint rate, list quality, message content and sending pattern all affect placement.
Do I need SPF and DKIM for SendGrid?
Yes. For serious sending, authenticate your domain in SendGrid and publish the DNS records it gives you. Yahoo requires SPF and DKIM for bulk senders. Google requires authentication and expects aligned sending for bulk mail.
Should I use a dedicated SendGrid IP?
Use a dedicated IP only when you have enough steady volume to build and maintain its reputation. Low or irregular senders often do better staying on a managed shared pool. If you use a dedicated IP, ramp volume gradually.
Can warm-up fix SendGrid spam placement?
Warm-up helps when the domain, mailbox or dedicated IP is new, or when volume has been inactive and then restarts. It will not fix broken DNS, bad lists, purchased contacts, misleading content, missing unsubscribe links or high complaints.
How long should a SendGrid fix take?
DNS fixes can verify within minutes, but reputation changes take longer. For a new domain, expect two to three weeks of controlled sending. For an existing domain with a small issue, seven days of clean sending is a typical minimum check window.
Can I warm up SendGrid with BobWork?
Yes. BobWork Email Warm-up supports SendGrid by using SendGrid SMTP credentials for sending and a receiving inbox over IMAP. It uses a shared warm-up network by default, with an optional private pool per account. Outlook is not supported yet.
Records fixed? Rebuild the reputation
Warm-up is the part you cannot do by hand for two weeks. The free pool sends, replies and rescues from Spam for you.