Email deliverability is one of those things where you can do everything right and still land in spam because a shared IP neighbour decided to blast a purchased list on Tuesday. It is weird. You are sending legitimate email to people who asked for it, and the whole thing still hinges on a dozen signals most people never look at.
So a deliverability audit is not a vibe check on your email design. It is a diagnostic across six areas, and the audit above walks all of them:
1. Domain authentication
SPF, DKIM and DMARC. These prove the email actually came from you. Missing any one of them is the single most common reason a sending setup fails, and it is also the easiest to fix, because it is a DNS task you do once and never touch again. If you want the full walkthrough, we wrote one on SPF, DKIM and DMARC.
The one people miss: sending from a branded domain rather than your platform's shared one. Share a domain, share a reputation. Fun.
2. List quality
Where did these addresses come from? If any part of the answer is "we imported a spreadsheet from a trade show in 2023", that is your problem and no amount of subject line testing fixes it. Purchased and scraped lists carry spam traps, and hitting enough of those craters your domain reputation in a way that takes months to undo.
This is also where list cleaning earns its keep. Every subscriber who never opens is quietly telling Gmail your mail is unwanted.
3. Sending practice
Volume consistency, ramp speed, and whether you send to engaged people before the full list. Going from 2,000 emails a month to 80,000 overnight looks exactly like what a compromised account looks like. Providers respond accordingly. If you are on a new domain, warm it up properly first.
4. Monitoring
Bounces suppressed automatically, complaints tracked, Google Postmaster Tools connected. Most accounts fail here not because the numbers are bad but because nobody is looking at them. You find out placement dropped when revenue drops, which is about six weeks too late.
5. Compliance and trust
A working unsubscribe, a real postal address, and a from name people recognise. Making unsubscribe hard does not keep subscribers. It converts them into spam complaints, which is strictly worse for you than a clean exit.
6. Content signals
Last, and genuinely least. Modern filters use engagement, not a banned word list. Spam trigger words mostly are not real. If someone tells you to avoid the word "free", ignore them and go fix your authentication instead.
Fix Them in This Order
The order matters more than the number of things you change. Most people fix five things at once, deliverability improves, and they have no idea which one did it. Then it breaks again and they are back to guessing.
- Critical authentication failures. Nothing else matters until SPF, DKIM and DMARC are correct. This is not negotiable and it is not hard.
- List quality. Suppress hard bounces, remove the people who have ignored you for six months, and stop importing things.
- Sending practice. Ramp gradually, send to engaged segments first, keep volume steady.
- Monitoring. So the next problem shows up as a number instead of a surprise.
- Everything else. Content, design, send times. Real, but a rounding error next to the four above.
What This Audit Does Not Do
Worth being straight about. This checks the inputs that decide inbox placement. It does not measure your actual placement, because that needs seed testing across providers plus your Google Postmaster Tools history, and that needs access to the account.
That is fine, though. Seed test results are close to meaningless while authentication is broken, so you would be fixing this list first anyway.
When to Run One
Quarterly if things are healthy. Immediately if any of these just happened:
- You changed email platforms (this is how that goes wrong)
- You added a new sending domain or subdomain
- Someone imported a list
- Bounce rate or complaint rate jumped
- Open rates dropped in a way that does not match what you sent
That last one is the tell most people miss. If your open rate falls and your content did not change, the content is not the problem.