When to Delete a Contact Instead of Winning It Back
Cleaning a mailing list is a technical decision, not an emotional one. An address that has been silent for a year is not “a chance to win back” - it is a cost you pay with your domain reputation on every send. We run our own fleet of sending servers, so we see it from the other side: the list grows, engagement drops, and filters stop trusting the sender. Before you start planning a reactivation campaign, settle one thing: what state is the address actually in?
Dormant is not the same as dead
Addresses fall into three states and each one needs something different. An active address opens, clicks or replies. A dormant address accepts the message correctly, the recipient server confirms delivery, the contact just does not react in any way. A dead address bounces, reports spam or simply does not exist. Confusing the second with the third is the expensive mistake. You delete people who read, and keep addresses that hurt you.
“No open” on its own proves nothing. The tracking pixel gets blocked by the mail client, Apple Mail Privacy Protection fetches images on the user’s behalf and produces opens with no human involved, corporate gateways scan the content before delivery, and some recipients read in the preview pane where graphics never load. For several years now, open statistics have mostly measured configuration. Not interest. Deleting is easier once you know what an open rate hides.
Stronger signals? A click and a reply. A click requires a conscious action, a reply even more so. If you are building segmentation based on engagement, base it on those two events and leave opens as a supporting indicator.
The cost of keeping dead addresses is not storage space in the database. Space is cheap. Bounces, complaints and spam traps are what costs, because they weigh on the reputation of the domain and of the IP address the mail goes out from. And reputation translates directly into whether a valid recipient sees the message in the main inbox.
Hard grounds for deleting a contact
Some signals need no analysis at all. You see them in the logs and you delete the contact without discussion:
- Hard bounce - the recipient server rejects the address permanently, because the mailbox does not exist or the domain does not accept mail.
- Repeated soft bounce - several consecutive sends end with the same server response code.
- Spam report - the recipient used the button in their own inbox.
- Unsubscribe - whatever channel it came through.
- Role address - info@, biuro@, office@, kontakt@, sekretariat@.
- Typo in the domain - gmial.com, wp.pI, onet.pk and similar variants.
- Suspected spam trap - an old address with no interaction history at all, imported in bulk.
Delete a hard bounce after the first bounce, not the third. The recipient server said outright that the address does not exist. Sending again to a confirmed non-existence is the signal filters use to recognise a sender importing someone else’s lists.
A soft bounce needs a threshold. A full mailbox or a temporarily unavailable server are transient things, fine. But several sends in a row with an identical response code already means a permanent state, and that closes the case.
A spam complaint takes effect immediately and irreversibly. You delete the contact from every segment, not only the one the report came from.
Tip: never restore an address that once reported spam. Even if the client asks you personally. Role addresses land in several mailboxes at once and raise the risk that someone in that group hits the report button.
When deletion follows from the law, not the metrics
Metrics are one decision path. The other is plain obligation. GDPR imposes the principles of data minimisation and storage limitation: you keep data as long as you have a legal basis for it, and not a day longer. No basis means an obligation to delete - no matter how promising the segment looks.
In Poland there is also the electronic communications law. Article 398 of the PKE requires the recipient’s consent for marketing communication and covers companies and business addresses too. B2B is not a loophole. An employee’s address in a company domain is still the address of a specific person who had to give consent.
A contact from a purchased list or obtained by scraping has no consent, and you cannot manufacture one with a reactivation campaign. A message asking “do you still want to receive our newsletter” is itself a marketing message to a person who never asked for it. Legalisation by sending does not work.
The same goes for consent collected for a different purpose. An address given with an order, with a file download or in a contact form serves that particular matter. A newsletter needs separate, informed consent.
After deletion, leave a technical trace: a hash of the address on a suppression list. The same contact will then not come back with the next CSV import with field mapping or through integrations with the systems where you collect contacts, and you are not keeping personal data in plain form. An industry standard, worth implementing whatever you send with.
When winning a contact back is still worth it
Reactivation only makes sense when the preconditions are met. Consent confirmed and documented. Address syntax correct. History with no bounces. A contact from your own form, not from an agency file. One item missing from that list moves the address to deletion, not to a campaign.
Count time from the last interaction, not from the signup date. Someone who signed up three years ago and clicked last month is active. Someone who signed up six months ago and has done nothing since the first email is a candidate for reactivation.
Send the reactivation segment separately. Never together with the main campaign. Preferably from a separate subdomain, or at a point when the main channel’s reputation is stable, because sending to inactive contacts generates worse metrics and carries them over to the rest of the list.
Give yourself one reactivation window. A short series, a clear question about continued interest, a visible and large unsubscribe link. Instead of a yes-or-no choice, offer a preference center: lower frequency, different topics, a different contact channel. Some people do not want to leave at all. They want to get less.
No response to the whole series closes the case. Another attempt six months later costs reputation on a contact that has already answered you with silence. Let it go and delete.
List cleaning procedure step by step
Order matters here, because every stage reduces the send volume for the next one:
- Export the segment you want to review, together with the dates of the last interactions.
- Verify address syntax and the existence of MX records for the domains.
- Filter out role addresses and typos in popular domains.
- Mark reactivation candidates according to the criteria from the previous section.
- Run the reactivation campaign with a hard time limit.
- Remove everything that did not react, plus every hard technical signal.
- Put the removed addresses on the suppression list.
Delete in batches, not the whole list at once. A sudden drop in send volume is sometimes read by filters as a change in the sender’s profile, and that is a short path to more cautious treatment of the next messages. Spread the cleaning over several sending cycles.
And you gain the most at the entrance, not at the exit. Double opt-in cuts off most of the later problems: typos, other people’s addresses entered maliciously, bots filling in forms. The list grows more slowly, but it is clearly healthier.
Tip: before a large cleanup, save the state of the database. Not in order to restore deleted contacts, but to be able to reconstruct segments for analysis and check what you actually removed.
External address verifiers help with old lists and will catch some non-existent mailboxes. They will not replace consent. An address that is technically correct and legally invalid is still an address to remove.
What cleaning does to deliverability
Filters do not look at list size. They look at engagement and complaints. A list of a hundred thousand addresses with a reaction rate of a few percent looks worse than ten thousand addresses with real clicks, because the same volume generates more negative signals.
The volume drop after cleaning needs attention too. Come down smoothly. A sudden change in the sending profile is sometimes read as an anomaly, exactly the same as a sudden increase.
List hygiene will not replace the technical foundation. These things work independently and both have to be in place:
- SPF - a record covering every server that mail actually goes out from.
- DKIM - a signature on a domain that matches the From header.
- DMARC - a policy and reports, so you can see who is impersonating your domain.
- Return-Path - consistent with the rest of the configuration, on a domain under your control.
- PTR - a correct reverse record for every IP address in the sending setup.
From running our own fleet of sending servers we have one observation that saves a lot of nerves: blocks at the large filters lift after weeks of clean sending, not after filling in a report form. The form is sometimes needed, but the unblocking comes when the statistics improve. There are no shortcuts and nobody honest will promise you passage through the filters.
After cleaning, run a warmup. Start with the most active segment, build a positive history, then gradually widen the reach. We built that logic into an email marketing platform with its own fleet of sending servers, because without control over the infrastructure warmup is guesswork.
Summary: delete early, win back rarely
The whole rule fits in one sentence. No consent or a hard technical signal means deletion with no campaign. No response with correct, documented consent means one reactivation attempt and a decision once it ends.
A smaller list with real engagement reaches the inbox more often than a large inert one. That is not a compromise, it is reputation arithmetic: fewer sends to people who do not react means a better ratio of positive signals to negative ones.
Hygiene is a recurring process, not an operation. Bounce and complaint rules should run automatically after every send, and the review of inactive contacts should come back at a steady rhythm. Panic cleaning the day before a big campaign is the worst possible moment, because it combines a sudden volume drop with raised risk. The other end of the lifecycle deserves the same attention, starting with a welcome sequence worth keeping.
And one more thing, honestly: cleaning limits risk, but no procedure guarantees passage through the filters. Mailbox providers change the rules without notice, and the decision to drop a message into spam is theirs alone. What you can control is consent, configuration and list quality - and that is enough to stop shooting yourself in the foot.


