Deliverability6 min read

List-Unsubscribe Header: The Small Deliverability Win That Prevents Spam Complaints

How the List-Unsubscribe header reduces spam complaints, protects your sender reputation, and what to implement (mailto + one-click HTTPS) without breaking your flow.

R

React Emails Pro

February 27, 2026

If you send any kind of marketing email, there’s a tiny deliverability lever that’s oddly underused: the List-Unsubscribe header.

It doesn’t make your copy better. It doesn’t fix bad targeting. But it does one very practical thing: it gives mailbox providers (and users) an easy, “official” way to unsubscribe without hitting Report spam.

If your unsubscribe flow is annoying, users won’t complain to you. They’ll complain to Gmail.

What the List-Unsubscribe header is (in plain English)

The List-Unsubscribe header is metadata you add to your outbound email headers that says: “Here’s how to unsubscribe from this list.”

Supporting clients can show an in-UI unsubscribe link (for example, Gmail’s “Unsubscribe” next to the sender name). Clicking it is usually a 1–2-step flow.


Why you should care (deliverability math)

Inbox placement isn’t only about SPF/DKIM/DMARC. A huge signal is user behavior:

  • Positive: opens, reads, replies, “not spam”, moving to primary.
  • Negative: deletes without reading, “report spam”, blocks.

Most people don’t want to hurt you. They just want the emails to stop. If the easiest button is Report spam, that’s what they do.

It reduces spam complaints (the expensive kind)

A spam complaint is the worst possible “unsubscribe.” You lose a reader and you train the mailbox provider that your mail is annoying.

It protects your transactional stream

Even if you separate marketing and transactional traffic, reputations can still bleed together (shared domains, shared brand recognition, shared user behavior). Reducing complaints on your marketing mail helps your password resets and invoices land where they should.

Don’t add unsubscribe to truly transactional email (password resets, receipts). But do protect those streams by keeping marketing complaints low.

How to implement it (practical checklist)

There are two common header values. Best practice is to include both:

  1. Mailto option — lets the client send an unsubscribe email.
  2. HTTPS option — a one-click unsubscribe endpoint.

Header example

Conceptually, you’re sending something like:
List-Unsubscribe: <mailto:unsubscribe@yourdomain.com>, <https://yourdomain.com/unsubscribe?u=...>

If your ESP supports it (Resend, Postmark, SendGrid, etc.), look for a setting called List-Unsubscribe or “one-click unsubscribe”. If you’re sending yourself (SMTP/API), you’ll need to set the header explicitly.

The one-click requirement (don’t mess this up)

Some mailbox providers support “one-click unsubscribe” behavior that expects:

  • A POST request to your unsubscribe URL (not a GET link people share)
  • No login required
  • No extra confirmation page
  • A fast response (don’t queue it behind slow app logic)

Your unsubscribe endpoint should do the absolute minimum: mark the recipient as unsubscribed and return success.

Save the “tell us why you’re leaving” survey for the thank-you page. The unsubscribe itself must be frictionless.

Common mistakes (that create more complaints)

1) You only include a mailto link

The mailto option is better than nothing, but it’s slower and less reliable. Include an HTTPS one-click option too.

2) Your unsubscribe page looks like a phishing trap

Users are trained to be suspicious. Make your unsubscribe page obviously legit:

  • Use the same domain and brand as the email
  • Keep it minimal (no upsells)
  • Confirm the address unsubscribed (partially masked is fine)

3) You keep sending for 7 days “because batches”

If you send daily, a slow unsubscribe can generate multiple complaints. If you need batching, do it for analytics, not for the actual suppression list.


What to do next

  1. Add List-Unsubscribe (mailto + https) to your marketing stream.
  2. Make unsubscribe one-click and instant.
  3. Keep your transactional email squeaky clean — strong authentication, clear subject lines, and trustworthy layouts.

If you’re tightening up your transactional system too, start here:

And if you’d rather ship than debate, grab a production-ready template:
Transactional Email Templates for Next.js.

Production-ready templates for every flow

Pick from 9 template packs built with React Email. One-time purchase, lifetime updates, tested across every major email client.

Browse all templates