List cleaner
Remove duplicatesfrom any list.
Your list never leaves this tab — not even your spreadsheet. Everything runs in JavaScript on your own machine, and files you drop in are read by your browser rather than uploaded. Nothing is stored, and closing the tab erases it. That matters here: the lists people de-duplicate are usually email addresses, customer names, invoice numbers and SKUs.
No account · No upload · No tracePaste your list however it arrives — or drop in a CSV, text file or Excel spreadsheet. We work out the separators, let you choose which column decides a duplicate, and can match the way a human would: the same email with a different +tag, the same URL with tracking parameters, the same phone number formatted differently. Then we show you exactly what was removed.
Ticked columns are compared. Whole rows are kept — with every column selected, only rows that are identical throughout are removed.
Built For Lists That Arrive Messy
Most duplicate removers make you tell them how your list is separated. Real lists rarely cooperate — a column pasted out of Excel comes through as line breaks, someone appends “and also: a, b, c” on the end, and now it is both at once. So separators are detected rather than chosen: line breaks always split, and a comma, semicolon, tab or pipe only counts as a separator if it actually appears in what you pasted. A list of sentences that happens to contain commas is not shredded by a rule that never applied to it.
Quoted values are respected, which is what lets a raw CSV column paste correctly —
"Smith, John" stays one person rather than becoming two. When duplicates are
merged, the first occurrence is the one kept, so a list you ordered by hand
survives the round trip. And because the matching options change what counts as a match,
the report below the result shows the exact forms that collapsed together — so you
can see that Apple and apple merged, and decide whether you
meant them to.
Spreadsheets keep their shape. Drop in a CSV or Excel file and you don't get every cell mashed into one flat list — you get your table, with a tick box per column. Choose the columns that decide a duplicate and the whole row is kept or dropped together, which is the same thing Excel's own Remove Duplicates does. Every column is ticked by default, so out of the box it only removes rows that are identical throughout; narrow it to one column when you want one row per email address.
Matching that understands the data. Exact comparison quietly misses things people
consider identical. [email protected] and [email protected] are
the same inbox. https://site.com/?utm_source=x and site.com are
the same page. +1 (555) 123-4567 and 555-123-4567 are
the same phone. Pick the matching mode and those collapse correctly — and each rule
is deliberately narrow, so the Gmail dot rule is applied only to Gmail rather than to every
domain, where it would merge two genuinely different mailboxes.
Remove Duplicates FAQ
Is my list uploaded anywhere?
No. Everything runs in JavaScript inside this tab — you can confirm it by opening your browser's network tab and clicking the button, where you'll see no request go out. This tool is client-side by design rather than by convenience, because de-duplication is exactly where people paste customer lists, email addresses and invoice numbers.
Which separators does it understand?
Line breaks, commas, semicolons, tabs and pipes — and any mix of them in the same list. You don't select one; each is used only if it's actually present in what you pasted. The summary tells you which ones were applied, so you can always see how your list was split.
Which copy does it keep — the first or the last?
The first. In practice the earlier entry is the original and the later ones are the accidental repeats, and keeping the first also preserves the order you pasted. If you'd rather have it alphabetical, use the Order dropdown — that sorts the result without changing which copy was kept.
What does "Ignore case" actually change?
With it off, Apple and apple are two different items. With it on, they merge and the first spelling you pasted is the one kept. Because that can merge things you meant to keep apart, the "What was removed" panel lists every form that collapsed together, so the decision is visible rather than silent.
Does it handle a CSV column with commas inside the values?
Yes. Text wrapped in single or double quotes is treated as one item, so "Smith, John" survives intact and the quotes are stripped from the output. If you need the quotes back, pick the Quoted CSV output format.
How large a list can it handle?
Comfortably into the hundreds of thousands of items. Matching uses a hash lookup rather than comparing every item against every other one, so doubling the list roughly doubles the time instead of quadrupling it. The practical limit is your browser's paste size, not the de-duplication.
Can I use a file or a spreadsheet instead of pasting?
Yes — drop a .txt, .csv, .tsv or Excel file (.xlsx, .xls) anywhere on the input box, or use Choose file. Nothing is uploaded: your browser reads the file locally, including spreadsheets. Excel files with more than one sheet use the first sheet, and you'll be told which one.
How does it handle a spreadsheet with several columns?
It keeps your table intact and gives you a tick box per column. The ticked columns decide what counts as a duplicate, and whole rows are kept or removed together — exactly like Excel's own Remove Duplicates. Every column starts ticked, which only removes rows identical the whole way across. Untick down to a single column when you want, say, one row per email address.
What do the "Match by" modes actually do?
Email ignores case, +tags, and dots inside Gmail addresses. Web address ignores http/https, www., trailing slashes, #fragments and tracking parameters like utm_source. Phone number compares digits only and ignores the country code. Loose text ignores case, punctuation and repeated spacing. Each rule is kept narrow on purpose — the Gmail dot rule, for instance, is applied only to Gmail, because on a company domain j.smith@ and jsmith@ can be two different people.
Is loading an Excel file going to slow the page down?
Only if you use one. The spreadsheet reader is a few hundred kilobytes, so it isn't downloaded when the page loads — it's fetched the first time you actually pick an .xlsx file. If you paste text, you never download it at all.
What else can you check?
These tools all work on the same connection and address data — pick whichever question you actually have.