Cleaning an email list in Klaviyo
To clean a Klaviyo list, let Klaviyo's own suppression handle what has already bounced, then verify the profiles it still mails and suppress the ones whose result says remove. Klaviyo suppresses hard bounces and repeated soft bounces automatically, and a spam complaint stops email marketing to that person. What it cannot do is find dead addresses before you send to them. The workflow is: export the profiles that can still receive email, verify the file, bring the results back as custom profile properties, suppress the bad ones, and keep engagement cleaning (the sunset flow) as a separate step.
What Klaviyo already does on its own
Klaviyo's help article Understanding suppressed email profiles lists the reasons a profile ends up suppressed: a hard bounce, seven consecutive soft bounces, a spam complaint, a manual suppression (shown as "User suppressed"), and a suppression carried over from a previous email service provider. Suppressed profiles are skipped in marketing sends even if you try to include them, and they do not count toward your email plan's active profile limit. Klaviyo also skips addresses it considers suspicious from hard bounce history across all of Klaviyo, even if they never bounced in your account.
Bounces
Per Understanding bounced emails in Klaviyo, any address that hard bounces is suppressed automatically. A soft bounce is treated as temporary: Klaviyo suppresses the address only after seven soft bounces in a row, it counts only soft bounces from the past two years, and one successful delivery resets the streak. Once a profile is suppressed for a hard bounce or for the soft bounce streak, it is also removed from every list it was on. The same article suggests you can suppress addresses that keep soft bouncing yourself before they reach seven.
Subscribing again does not lift these suppressions. The suppression article says deliverability suppressions, such as a hard bounce, survive subscribe actions to protect your sender reputation.
Spam complaints and unsubscribes
When someone marks your email as spam or unsubscribes globally, Klaviyo stops sending them email marketing. These profiles show the Unsubscribed consent status rather than a suppression reason, according to the same suppression article.
What verification adds
All of the above reacts to mail you already sent, and an address that keeps soft bouncing can take seven sends to be suppressed. Verification checks the addresses before the next send. It catches addresses that would bounce, and some that a bounce never reveals:
- addresses whose mailbox no longer exists (
no_mailbox, the kind that would come back as a 550 5.1.1 bounce); - throwaway addresses from disposable mail services;
- addresses that accept mail but should not be mailed, such as known spam traps and complainers, which are
validwith the actionremove; - domains that accept every address, so a single mailbox cannot be confirmed (catch-all).
It does not replace Klaviyo's suppression. Keep both.
Step 1: Export the profiles that can still receive email
There is no point paying to check profiles Klaviyo already suppresses. Build a segment whose condition is that the person can receive email marketing (the same condition Klaviyo's own segment examples start with), or use the list you plan to send to.
Then export it, following How to export a list or segment to a CSV file:
- Go to Audience > Lists & segments and open the list or segment.
- Open the Manage list or Manage segment menu and choose Export to CSV.
- Choose which properties to include. Email is all the check needs.
- Click Start Export. The file stays under Settings > Other > Downloads for 30 days.
Step 2: Verify the file
Upload the CSV as a bulk list in the dashboard and pick the email column if it was not detected. You do not need to clean the file first: duplicates are removed for you, and malformed addresses, duplicates and unknown results cost nothing (cost).
When the job is complete, download the results as CSV (download options). Keep your original columns so the Email column is still there. Three of our columns matter for Klaviyo:
| Column | What it holds |
|---|---|
ev_status | valid, invalid, catch_all, unknown or disposable |
ev_reason | why, for example no_mailbox, spamtrap or role_account |
ev_action | send, send_with_caution, remove or retry_later |
Base your decisions on ev_action, not on the status alone. A spam trap is valid, because the mailbox accepts mail, yet its action is remove (actions).
Step 3: Save the results as custom profile properties
Properties let you build segments and flow filters on the result. Follow How to import profile properties using a CSV upload:
- Make sure the first column of the file is headed Email.
- In Audience > Lists & segments, create a new list (Create > List) and click Upload contacts, or open an existing list and choose Manage list > Import contacts.
- Map
ev_status,ev_reasonandev_actionto new custom properties: open Select or create new, choose Create New Field, name it and pick the data type. Leave the other columns unmapped. - Do not select "Apply bulk consent". Klaviyo warns it can subscribe the imported contacts, including people who unsubscribed. Choose "Only import the consent in my file" and click Import.
Two cautions from that article. Contacts newly added to a list can enter its list-triggered flows, so import into a new list with no flows, or set the connected flows to Draft first. And a blank cell does not clear an existing value, so a later import only overwrites the properties it contains.
Step 4: Suppress the addresses to remove
Create a segment with the condition Properties about someone, pick ev_action and match the value remove (the same kind of condition Klaviyo's sunset flow article uses for its Unengaged property). That one segment holds the invalid and disposable addresses as well as the valid ones that should not be mailed. Then suppress its members, following How to manage email suppressions and delete profiles in bulk:
- Go to Audience > Lists & segments.
- Open the action menu next to the segment and select Suppress current members.
- If the dialog offers options, choose Suppress everyone. The other option, Suppress inactive profiles, keeps profiles that clicked or ordered within 182 days, which is not what you want for an address that should not be mailed at all.
- Confirm with Suppress profiles (or Bulk suppress).
The alternative is a file. Filter the result file to the rows whose ev_action is remove, delete every column except Email, then go to Audience > Profiles, click View suppressed profiles, open More actions and select Import suppressions.
Either way, suppression covers only the current members; profiles that join the segment later are not suppressed automatically. Klaviyo also has a 90-day rule: a profile that was manually suppressed and then unsuppressed cannot be manually suppressed again for 90 days.
Step 5: Handle the caution and retry rows
send_with_cautioncovers catch-all domains, role addresses and a fewvalidreasons such aslow_engagement. Keep them, but use a segment onev_actionto send to them less often, and watch bounces and complaints for that segment.retry_latermeans the check got no definite answer this time, for example because the receiving server was unavailable or deferred the check. Do not suppress these. Export them again in a few days and check once more.- Typos. An
invalidaddress with the reasonlikely_typomay come with a suggestion inev_did_you_mean. Do not swap in the suggestion without asking the person; suppress the old address and ask them for the right one through another channel if you have one.
Engagement cleaning is a separate job
Verification tells you whether mail can arrive, not whether anyone reads it. Klaviyo handles engagement with segments and a sunset flow, and its advice is to exclude rather than suppress at first.
Its list cleaning article suggests an unengaged segment: people who can receive email marketing, received at least 5 emails, and opened and clicked none in the last 90 days (30 days if you send daily or several times a week). Exclude that segment from most campaigns, and suppress only the "Never Engaged" segment, after a last attempt to win them back.
That last attempt is the sunset flow, described in How to create a sunset flow. It is triggered by profiles being added to a sunset segment, sends 1 to 3 emails asking people to unsubscribe if they are no longer interested, waits a few days, then sets a Boolean property such as Unengaged to true on everyone who neither opened nor clicked. Klaviyo has no flow action that suppresses email, so you finish with a segment on that property and Suppress current members, as in step 4. Our re-engagement and sunset policy guide covers how to choose the windows.
Suppress, do not delete
Klaviyo recommends keeping suppressed profiles. Its bulk deletion (Settings > Other > Profile maintenance) is permanent, and a deleted person can come back as a new profile, for example by filling in a sign-up form again, without the suppression that protected you. A suppressed profile stays in your account, so it cannot return that way. Suppressing or deleting profiles does not lower your plan by itself; the bulk article says you downgrade manually unless your account downgrades automatically.
Keep it clean
Check new addresses on your own forms before they reach Klaviyo (sign-up form validation), and verify the sendable list again before a large send. Never import bought lists: Klaviyo's anti-abuse article says buying lists violates its Terms of Service, and verification does not supply the missing consent (bought email lists).
Questions
Does Klaviyo remove bounced addresses by itself?
Yes, after the fact. It suppresses an address after one hard bounce or seven consecutive soft bounces within two years, and removes it from its lists. Verification lets you remove addresses that would bounce before you send.
Should I suppress or delete invalid profiles?
Suppress them. Klaviyo recommends it, suppressed profiles do not count toward the email plan's active profile limit, and a deleted address can return through a sign-up form without its suppression.
Try it
Upload your Klaviyo export for bulk email verification, or try one address in the free email checker.
Related
- Bulk lists: upload, cost and result columns.
- Statuses, reasons and actions.
- Glossary: suppression list.
- General list cleaning steps.
Related guides
- How to clean an email list
- Re-engagement campaigns and sunset policies
- How to clean a Mailchimp audience
- Cleaning a Brevo contact list
- Reduce your email bounce rate
- All guides
Sources
- Klaviyo: Understanding suppressed email profiles: suppression reasons, spam complaints and unsubscribes, suspicious addresses, plan counting, keeping vs. deleting.
- Klaviyo: Understanding bounced emails in Klaviyo: hard and soft bounce handling, the seven-bounce rule, removal from lists.
- Klaviyo: How to export a list or segment to a CSV file: export steps, roles, the Downloads page.
- Klaviyo: How to import profile properties using a CSV upload: property import, consent options, flow caution.
- Klaviyo: How to manage email suppressions and delete profiles in bulk: bulk suppression, suppression import, the 90-day rule, bulk deletion.
- Klaviyo: How to clean your email list to maintain good deliverability: unengaged and Never Engaged segments, exclude vs. suppress.
- Klaviyo: How to create a sunset flow: sunset segment, flow steps, the final property update.
- Klaviyo: Understanding Klaviyo's anti-abuse and campaign performance monitoring: purchased lists and its Terms of Service.
How we wrote this: drafted by the email-validation.org team with the help of AI writing tools, from our product documentation and the sources linked in the text.