Spamdex All articles
Deliverability

One Message, Six Verdicts: Inside the UK's Filtering Postcode Lottery

Spamdex
One Message, Six Verdicts: Inside the UK's Filtering Postcode Lottery

Photo: Google, Public domain, via Wikimedia Commons

There's a specific kind of despair that comes from a campaign report that reads: Gmail 99.1%, Outlook 98.4%, BT 12%. Nothing wrong with the list. Nothing wrong with the authentication. Just one provider, quietly deciding your email is not worth a place in the inbox.

We've spent the last few months poking at this with a proper harness rather than vibes. Same message, same sending IP, same list of seeded mailboxes across the big UK consumer providers. The results were consistent enough to be useful and inconsistent enough to be maddening.

Why six providers give six verdicts

Filtering isn't a single switch. It's a stack of scoring engines, each weighing different things. Gmail leans hard on engagement history and a reputation graph built over years. Outlook.com is famously twitchy about sending IPs and URL reputation. BT, Sky, TalkTalk and Virgin Media run a mixture of in-house rules and third-party engines, layered with consumer protection defaults that assume the customer is not technical and would rather miss an email than see a scam.

That last assumption is the whole ballgame. A UK consumer ISP filtering on behalf of a 72-year-old in Stockport is optimising for a different error than Gmail filtering on behalf of a developer in Shoreditch. False positives cost them support calls. False negatives cost them a phishing headline. Guess which one they'd rather have.

Building a harness that survives contact with reality

You do not need a lab. You need discipline.

Seeded mailboxes. Set up real consumer accounts on each target provider — BT Internet, Sky, Virgin Media, TalkTalk, Outlook.com, Gmail. Not aliases, not forwarding rules, actual accounts with a normal browsing history, a few subscriptions, and no prior relationship with your brand. Cold inboxes are the honest test.

One variable at a time. Send identical campaigns, one week apart, changing exactly one thing between sends. If you change subject line, link domain and sending IP in the same run, you've learned nothing.

Check the folder, not just the delivery. A message 'delivered' to the spam folder is a different failure from a message dropped at SMTP. Log the response code, then log where the thing actually landed. Check Junk, Bulk, and any provider-specific quarantine area.

Give it 48 hours. Some engines score on arrival, others re-evaluate after a cohort of users ignore the message. A message that appears in the inbox at hour one can be pulled at hour thirty.

The signals we tested

We ran a matrix. Authentication states (SPF pass/fail, DKIM pass/fail, DMARC none/quarantine/reject, aligned versus unaligned). Link variants (established domain, brand-new domain, URL shortener, redirect chain, a link to a Google Doc). Content variants (image-only HTML, text-only, a balanced multipart, a version with a single exclamation mark in the subject). Volume and cadence variants. And one delicious control: the same message sent from a known-good IP with six months of clean engagement history behind it.

What each provider actually seemed to punish

BT Internet. The standout finding was intolerance for unaligned DMARC combined with a young sending domain. Even with SPF and DKIM both passing, a message whose From domain didn't align with the authenticated domain slid into Junk more often than not with BT. Fix alignment and BT stops being a problem faster than any other provider in the set.

Sky. Most sensitive to link reputation. A brand-new link domain, even a perfectly legitimate one, was enough to trigger a junking where the identical message with an aged domain sailed through. Sky also showed the strongest reaction to HTML that's mostly images with a thin text layer — the classic 'one big picture and a button' newsletter.

Virgin Media. Punished volume spikes hardest. A steady trickle of the same content did fine; tripling the daily send produced a wall. If you're on a shared IP and a neighbour has a bad week, Virgin is where you'll feel it first.

TalkTalk. Idiosyncratic. Complained least about content and most about sending history — new IPs, new domains, and anything that looked like a burst from an unfamiliar source. Slow, warm, boring sending worked. Everything clever did not.

Outlook.com. The most consistent across our runs, and the most brutal about URLs. A single link to a domain with no history was enough to junk an otherwise immaculate message. Microsoft also re-scored after a day in ways the others didn't, which is why your morning check lied to you.

Gmail. Rewarded engagement and punished nothing much else until volume got silly. The one thing that reliably hurt was a list with a large proportion of never-opened addresses. Gmail doesn't care that your SPF record is tidy; it cares that people open your mail.

The plain-English diagnosis

If a message dies at exactly one provider, it's almost never your content. It's one of four things: authentication alignment, link domain age, sending IP history, or engagement on that provider's cohort specifically. Work backwards from there.

A remediation checklist for the 'works everywhere except one ISP' problem

  1. Align your DMARC. From domain must match the domain that passes SPF or DKIM. Use a subdomain for third-party senders rather than borrowing the root.
  2. Age your links. Send from a domain that has been resolving, publishing content and receiving traffic for months, not minutes. Use your main domain for links, not a fresh shortener.
  3. Warm the IP properly. Ramp in blocks, target the most engaged recipients first, and don't jump from zero to sixty thousand overnight.
  4. Segment by provider. If BT is the holdout, send to your BT cohort in smaller, more frequent batches and watch open rates rather than delivery rates.
  5. Rein in the HTML. Text-to-image ratio above roughly 60:40 text, one clear call to action, no redirect chains, no tracking pixels that fail to load.
  6. Suppress the dead wood. Any address that hasn't opened in twelve months is a liability on every provider and a slow poison on Gmail.
  7. Log the SMTP response. 'It didn't arrive' and 'it went to Junk' need completely different fixes and get conflated constantly.

The bit nobody wants to hear

Consumers don't experience your sender reputation. They experience a missing invoice, a voucher that never arrived, a password reset that went to Junk. The filtering divide is invisible right up until it costs someone money — and by then the blame lands on the brand, not the ISP.

The good news is that the divide is mostly predictable. Providers aren't being capricious; they're optimising for their users with the tools they have. Learn what each one flinches at, fix the boring things first, and the postcode lottery starts looking a lot less random.

All Articles

Related Articles

Every Address Is Valid Until It Isn't: Auditing the Accept-All Signup Form

Every Address Is Valid Until It Isn't: Auditing the Accept-All Signup Form

Nobody Complains About a Spam Trap — That's Exactly the Problem

Nobody Complains About a Spam Trap — That's Exactly the Problem

Grey Mail Nation: Why 'Legitimate' Bulk Email Is Making UK Inboxes Numb

Grey Mail Nation: Why 'Legitimate' Bulk Email Is Making UK Inboxes Numb