Gmail sends mail to spam for reasons that fall into four tiers, and they are not equally urgent. Work them in order. Rewriting subject lines while your spam rate sits at 0.5% is the most common waste of effort in this subject.
Tier 1: the deterministic gates
These produce rejections and spam placement regardless of anything else, and each one is pass/fail:
- SPF and DKIM passing, DMARC published and aligned to the visible From domain.
p=noneis enough to satisfy the requirement. - Valid forward-confirmed reverse DNS on the sending IP: the PTR names a hostname whose A record returns the same IP.
- TLS on the connection.
- One-click unsubscribe —
List-UnsubscribeplusList-Unsubscribe-Post— on bulk commercial mail, honoured within two days. A footer link alone does not satisfy this.
Verify with a message you actually sent. Open it in a non-Gmail mailbox, read the raw source, and confirm:
spf=pass smtp.mailfrom=yourdomain.com; dkim=pass header.i=@yourdomain.com; dmarc=pass header.from=yourdomain.com
A pass on a bounce subdomain with a From header on a different domain is an alignment failure, which is the failure mode people miss.
Tier 2: the one number Gmail gives you
User-reported spam rate. Google's bulk-sender threshold is 0.30%; treat 0.10% as your ceiling. Watch it daily in Postmaster Tools v2.
If it spikes, find the send that caused it and suppress that segment. Do not try to dilute it with volume — it is a ratio, and a climbing curve is itself a negative signal. Because the rate is per domain, one careless segment contaminates everything the domain sends, which is the whole argument for using a subdomain for outreach.
Alongside spam rate, v2 reports authentication pass rates, delivery errors and compliance status, plus a Deliverability analysis report added in June 2026. It does not report a reputation grade: those dashboards retired with v1, which stopped serving senders on 30 September 2025 and was gone by the end of 2025.
Tier 3: list quality and volume shape
- Do not send to addresses you have not verified. Bounces to a sender with thin history are weighted hard.
- Suppress on the first permanent failure, and never retry a
5xx. Distinguish it from a4xx, which is throttling and whose recipients are still valid. - Ramp gradually and hold a floor. An unknown domain that jumps an order of magnitude looks like a compromised account — which is exactly what the filter is built to catch.
- Spread sends through the day rather than firing a morning batch.
- Warm up a new domain or mailbox before it carries a campaign, because the only signals Gmail trusts for a stranger are human ones: replies first, folder rescues second, opens barely at all.
Tier 4: the message itself
Only once the first three tiers are healthy:
- Plain text or near-plain HTML for outreach. No multi-column template, hero image or styled button.
- One link at most, on a domain that hosts real content. No public URL shorteners.
- No open-tracking pixel on cold first-touch mail; it adds a remote image and a tracking domain with its own reputation.
- A two-line text signature instead of a logo, social icons and legal boilerplate.
- A subject line a colleague would plausibly write.
- A consistent From name, send to send, so recipients recognise you and do not click junk.
Know which folder you are actually in
Before you conclude you have a spam problem, confirm it. Gmail's Promotions tab carries the `INBOX` label, so a message in Promotions is labelled INBOX and CATEGORY_PROMOTIONS together. Label-based checks count that as an inbox hit. Conversely, people often read a Promotions landing as "spam" when it is a categorisation issue with a completely different fix.
Use several Gmail seed mailboxes, read the full label set, and keep the per-seed results. One seed is a coin flip, because filtering varies per recipient.
What not to do
- Do not ask recipients to drag you to Primary at scale. It works once, it is not a strategy, and the request itself reads as promotional.
- Do not scrub "spam words". Gmail is not matching a keyword list.
- Do not raise volume to dilute a complaint rate.
- Do not warm up by mailing your own team. Internal mail often skips filtering entirely.
- Do not add a plain unsubscribe line and call it one-click. The header is the requirement.
- Do not change five things at once. You will not know which one worked, and one of them may have hurt.
How MailPilot helps
MailPilot checks SPF, DKIM and DMARC alignment on the domains your mailboxes send from, warms Gmail and Google Workspace mailboxes over OAuth — or SMTP/IMAP senders including SendGrid, Amazon SES, Mailgun and Postmark — with real replies at a ramp that stays unremarkable, and measures placement per provider with a seed-inbox network that reports Gmail's tabs separately. Per-mailbox reputation is tracked daily, so a slide toward the spam folder shows up before a campaign does.
Ready to reach the inbox every time?
Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.
Start free trial