FIELD REPORT / OPTIMISATION PETE DEVKOTA
Optimisation

How to Clean Your Klaviyo List Without Killing Your Revenue

List cleaning done wrong tanks deliverability and costs you revenue. Here's the exact process to clean your Klaviyo list without the damage.

Pete Devkota

Founder, emailOptimize · 15 August 2025 · 5 min read

Table of contents

The impulse to bulk-delete disengaged contacts is understandable. Klaviyo bills by contact count, you’ve got 60,000 people on a list where 40,000 haven’t opened in a year, and the list feels bloated and expensive. But deleting contacts without a proper process, or suppressing too aggressively too fast, creates deliverability problems that cost far more than the platform savings. Done right, list cleaning improves deliverability, reduces Klaviyo costs, and can actually increase revenue per send. Done wrong, it tanks your sender reputation and erases legitimate revenue potential.

Here’s the correct process.


Why List Cleaning Matters Beyond Deliverability

The obvious benefit of a clean list is improved deliverability. Sending to engaged contacts improves your engagement metrics, which improves inbox placement, which improves open rates. That’s real and significant.

But there’s a revenue argument too. Dead weight on your list creates compounding costs:

  • Klaviyo charges by total active profile count, suppressed contacts don’t count, deleted contacts don’t count, but unengaged “active” contacts do
  • Poor deliverability from a dirty list means even your best campaigns reach fewer inboxes
  • A/B test results are polluted by large disengaged segments who distort open and click rate data
  • Revenue attribution looks worse per email because denominator (sends) is inflated by non-buyers who never engage

Brands that clean their lists quarterly typically see Klaviyo bills drop 20–35% and revenue per campaign increase 15–25%, because the same revenue is now attributed across a smaller, more accurate denominator.


Understanding Klaviyo’s Suppression System

Before cleaning anything, understand how Klaviyo handles contacts:

  • Suppressed contacts: Cannot receive email. Don’t count toward your billable contact limit. The profile still exists in Klaviyo, you can see their history, they can still be segmented for analytics, but they won’t receive campaigns or flows.
  • Hard bounces: Automatically suppressed by Klaviyo. No action required.
  • Unsubscribed contacts: Automatically suppressed when they click unsubscribe. Remain in the system for record-keeping.
  • Deleted contacts: Gone entirely. No history, no analytics, no option to re-add them later. This is permanent.

The default recommendation for almost every scenario is suppression, not deletion. Suppress disengaged contacts, not delete them. The only time hard deletion makes sense is for GDPR/CCPA deletion requests (legally required), obvious bots or junk addresses, or contacts imported in error.


The Right Segments to Suppress

Most brands only suppress unsubscribes. The deliverability win comes from suppressing contacts who never engaged in the first place.

Build these segments in Klaviyo (Audience > Lists & Segments > Create Segment) and suppress them in order:

Tier 1: Suppress immediately:

  • Contacts who have never opened or clicked any email AND have never placed an order AND have been on your list for more than 90 days
  • Role-based email addresses you can identify (these are difficult to filter at scale, but any you can identify via import history or bounce type should go)
  • Any emails with obvious invalid patterns (check your bounce reason data in Klaviyo, “invalid recipient” hard bounces that weren’t auto-suppressed)

Tier 2: Run through a sunset flow before suppressing:

  • Contacts who have not opened or clicked in 180+ days AND have never purchased
  • Contacts who have not opened or clicked in 365+ days regardless of purchase history

Tier 3: Consider carefully before suppressing:

  • Contacts who last purchased 6–12 months ago but have opened 1–2 emails since. These may be worth a dedicated win-back attempt before suppression
  • VIP customers (LTV > $X threshold) who’ve gone quiet. Check purchase history before suppressing anyone with meaningful revenue history

The Sunset Flow as a Cleaning Mechanism

A sunset flow is an automated re-engagement sequence that triggers when a contact hits a specific inactivity threshold. It’s the correct way to handle Tier 2 contacts, because it attempts to reactivate them before suppressing, which occasionally recovers revenue that hard suppression would have destroyed.

Klaviyo sunset flow setup:

  1. Create a segment: “Has not opened or clicked email in last 180 days AND has not placed an order in last 180 days”
  2. Create a flow with trigger: “Segment membership” → the above segment
  3. Add a 24-hour delay after trigger (to avoid triggering on the same day as a campaign)
  4. Email 1: Re-engagement ask, “Still want to hear from us?” (plain-text style, personal tone, clear value proposition)
  5. Wait 5 days
  6. Email 2: Exit warning, “We’re about to remove you from our list.” Include an easy one-click confirmation link
  7. Flow action: If no engagement after Email 2 → update profile property “Sunset = True” → suppress via Klaviyo’s suppression action or use a webhook to your suppression workflow

Key sunset flow settings:

  • Set flow filter: “Is in segment [180-day inactive] = true.” This prevents the flow from continuing if someone re-engages mid-sequence
  • Set Smart Sending OFF on the sunset flow. These contacts are specifically chosen because they haven’t engaged, and you don’t want Smart Sending to skip them
  • Do not include a discount in the sunset flow unless your average order value justifies it. The goal is to identify who actually wants to stay, not to bribe disengaged contacts back with margin

Engagement Thresholds: The Specific Numbers to Use

These are the thresholds we use when managing Klaviyo accounts. Adjust based on your send frequency:

WindowAction
0–90 days (any open or click)Active: send normally
90–180 days (no open or click)Monitor: included in campaigns but watch for further decay
180+ days (no open, click, or purchase)Sunset flow: attempt reactivation before suppressing
365+ days (no engagement at all)Suppress directly: skip the sunset flow
Never opened (joined 90+ days ago)Suppress directly: they were never going to convert

For high-frequency senders (daily or near-daily emails), compress these windows: use 60 days as the active threshold and 120 days as the sunset trigger. For low-frequency senders (2–4 emails per month), you can extend them slightly: 120 days active, 240 days sunset.


Common Mistakes That Tank Deliverability During Cleaning

Suppressing too many contacts too fast. If you suppress 40% of your list in one week, your send volume drops dramatically and your engagement rate spikes artificially. Mailbox providers notice volume changes. Do large-scale suppressions in batches over 2–4 weeks.

Deleting contacts instead of suppressing. You lose purchase history, attribution data, and the ability to honour opt-back-ins correctly. There is no deliverability advantage to deletion over suppression. Both remove contacts from sends.

Re-importing suppressed contacts. This is more common than it should be. When brands export and re-import contact lists, suppressed contacts can get re-activated if the import overrides existing status. Always check the “Update existing profiles” and “Re-subscribe unsubscribed profiles” settings on import. They should both be off unless you specifically intend to override.

Suppressing purchasers without checking recency. A customer who bought 7 months ago and hasn’t opened your last 30 emails is still a different asset than someone who subscribed and never engaged. Run win-back flows for lapsed purchasers separately. They have a meaningful probability of a second purchase. Don’t treat them the same as cold leads.

Cleaning right before a major campaign. Run your list cleaning process at least 3–4 weeks before Black Friday, a product launch, or any high-stakes send. Deliverability changes from cleaning take time to stabilise.


When to Hard-Delete a Contact

The list is short:

  • A contact explicitly requests deletion under GDPR or CCPA
  • The email address is clearly a test or spam submission (e.g., test@test.com)
  • A contact was imported by mistake and has no real history

For everything else, suppress. The slight storage overhead is worth the historical data and the risk management of knowing someone opted out rather than simply disappearing from your records.

A clean list isn’t a small list. It’s a list of contacts who actually want your emails. That’s the distinction that drives both deliverability improvement and revenue per send.

Need help with list hygiene? Book a free audit.


Sources

Share this post