Is one-click unsubscribe optional?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
Short answer: no, it's not optional. Not anymore. But the "how" matters as much as the "yes".
In 2024, Gmail and Yahoo Mail officially required one-click unsubscribe for bulk senders (anyone sending more than 5,000 emails per day to Gmail addresses). If you're sending at that volume and you're not compliant, you're already at risk of deliverability problems. That requirement uses something called a List-Unsubscribe header.
There are actually two different unsubscribe mechanisms you need to think about, and they're not the same thing.
The List-Unsubscribe header lives in the technical part of your email (the header metadata, not the body). When it's set up correctly with List-Unsubscribe-Post pointing to an endpoint, mailbox providers like Gmail and Yahoo can surface a one-click unsubscribe button right in their interface. No landing page, no confirmation step, just instant removal. That's what the 2024 requirement is about.
The body unsubscribe link is the visible link inside your email, usually sitting quietly at the bottom. This is what CAN-SPAM has required since 2003. It's also what GDPR calls "easy withdrawal of consent." It needs to be visible, it needs to work within 10 business days (CAN-SPAM), and hiding it in tiny grey text is not a strategy worth testing.
You genuinely need both. The header handles the mailbox provider side. The body link handles the legal side and the readers who process email directly rather than using the provider's UI.
What this looks like in your ESP
Most major platforms handle the List-Unsubscribe header automatically now. Mailchimp, Klaviyo, Brevo, HubSpot, and ActiveCampaign all include it by default when you use their standard sending infrastructure. You don't need to configure anything extra.
Still if you're sending through a developer-level platform like Twilio SendGrid, Mailgun, or Amazon SES, you'll need to add the header yourself. That means setting the List-Unsubscribe and List-Unsubscribe-Post headers on outgoing messages, pointing to an endpoint on your side that actually processes the removal. Your ESP's API documentation will have the exact syntax.
One thing to double-check regardless of platform: the one-click endpoint has to process the removal immediately and without any additional steps. A link that goes to a preferences page asking the recipient to confirm again doesn't count as one-click under Gmail and Yahoo's rules. (Yes, that distinction has caught people out.)
Not sure if your setup is working correctly? Check your email headers after sending a test message. The List-Unsubscribe-Post header should be present. You can read your headers with our free Email Header Analyzer. Or if your setup is more complicated and you'd rather talk it through, the SOS hotline is free.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.