How to remove duplicate words
- Paste your text into the box above.
- Leave side by side ticked to hunt for accidental double words.
- Untick it to strip every repeat, which suits keyword and tag lists.
- Check the message for how many words were removed.
- Copy the cleaned text, or download it as a file.
What this tool handles
- Adjacent mode, which catches proofreading misses without changing your writing.
- Global mode, which reduces a list of terms to its unique members.
- Case-insensitive comparison, so "The the" is caught as readily as "the the".
- Punctuation-aware matching, so "cat" and "cat," are treated as the same word.
- Automatic tidying of the double spaces left behind by a removal.
- A count of exactly how many words were removed.
Two very different problems, one tool
Repeated words come in two flavours and they want opposite treatment.
The first is the accidental double word, "the the", "and and", "is is". These survive proofreading with remarkable reliability, because reading is pattern matching and your brain simply skips the second copy. They appear most often at line breaks, where the eye jumps, and after an edit that inserted a word without deleting the old one. Adjacent mode finds these and leaves the rest of your writing completely untouched.
The second is genuine repetition across a list: a keyword set, a tag field, a bag of search terms where each item should appear once. Global mode handles that, removing every occurrence after the first.
Use global mode with care on prose
This is worth stating plainly, because it is the one way to get a bad result here. English relies on repeating common words. Running global mode over a paragraph removes every "the" after the first one, every "and", every "is", and produces something unreadable.
Global mode is for lists, not sentences. Adjacent mode is the one you want on prose, and it is the default for exactly that reason.
Where each mode earns its place
- Adjacent: final proofread of an article, report, email or thesis.
- Adjacent: text produced by voice dictation, which stutters on hesitations.
- Global: SEO keyword lists and meta keyword fields.
- Global: tag fields, category lists and comma-separated terms.
- Global: reducing a bag of words to its vocabulary before analysis.
How words are compared
Punctuation attached to a word is ignored during comparison, so "dog." and "dog" match. That is what you want. A double word at the end of a sentence is still a double word. The surviving copy keeps its punctuation, so sentences do not lose their full stops.
Capitalisation is ignored by default, which catches the common case where a repeat straddles a line break and the second copy got capitalised. Turn it off if capitalisation is meaningful in your data, such as a list of case-sensitive identifiers.
What it will not catch
Only exact repeats are found. "Very very" is caught; "very extremely" is not, though it is arguably the same problem. Repeated phrases spanning several words are not detected either, and neither is a word repeated with a filler in between, such as "the actual the".
For a broader view of which words you lean on too heavily, the word frequency counter ranks every word in the document. A term appearing far more often than the rest is usually a crutch worth varying. For repeated lines rather than repeated words, use the duplicate line remover. Everything runs locally and nothing is uploaded.