Word frequency counter
Ranks every word in your text by how often it appears and shows the top 100.
This word frequency counter takes any block of text and tells you which words appear most often. Paste an article, press the button, and the box is replaced by a ranked list: the count, a tab, then the word. It is the fastest way to see what a piece of writing actually repeats.
Count how many times one word appears
If you only care about a single word — how many times does "however" show up, how often did you write "just" — type it into the box above the buttons and press "Count the word above". You get the exact number without wading through a ranked list of everything. The count ignores case and matches whole words, so searching for "cat" does not also count "category".
Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.
How to use it
- Paste the text you want to analyse into the box.
- Press Count word frequency.
- Read the list — the most frequent word is at the top.
- Press Copy, or Download .txt to open the list in a spreadsheet.
What this tool does
The text is lowercased and split into words. A word is any run of letters, digits, apostrophes or hyphens, which means state-of-the-art stays one word and don't is not chopped in half. Every occurrence is counted, the list is sorted by count from high to low, and ties are broken alphabetically so the output is stable.
Each line of the result is count, tab, word. The tab is there on purpose: paste the list into Excel or Google Sheets and it lands in two clean columns with no import dialogue.
Only the top 100 words are shown. Past that point the tail is almost entirely words used once, which tells you very little and makes the list unreadable. Case is ignored, so The and the are the same entry. Numbers are counted as words. Punctuation attached to a word is stripped, so budget, and budget merge. Words in different languages are handled the same way — the splitter is Unicode-aware, so Cyrillic, Greek and accented Latin all work.
Examples
Input:
The report says the budget is fine. The budget is not fine. Read the report.
Output:
| Count | Word |
|---|---|
| 4 | the |
| 2 | budget |
| 2 | fine |
| 2 | is |
| 2 | report |
| 1 | not |
| 1 | read |
| 1 | says |
Function words dominate every English text, so the first several rows are usually the, a, and, to, of. Skip past them and read from the first noun down — that is where the actual subject of the text shows up.
A quick density check: if a 1000-word article shows 17 espresso, the keyword appears 17 times, which is 1.7 percent of the text. Most editors treat anything much above 2 to 3 percent as repetitive.
When you need it
- SEO. Checking keyword density on a page you have written, and spotting which related terms you never used at all.
- Editing. Filler words hide in plain sight. A list that shows
32 just,28 reallyand19 actuallymakes the problem impossible to ignore. - Copywriting. Comparing your landing page against a competitor page to see which vocabulary they lean on.
- Students and researchers. Quick content analysis of interview transcripts, survey answers or a set of reviews, without installing anything.
- Translators. Finding the terms that repeat most often in a document, so they get a consistent translation everywhere.
- Writers. Catching a crutch word you have used forty times in one chapter.
Doing it without this tool
Excel: split the text into one word per row with Data, Text to Columns using space as the delimiter, transpose it into a column, then build a PivotTable with the word as both row and value, set to Count. Ten minutes of clicking, and punctuation still has to be cleaned by hand.
Google Sheets: =QUERY(A:A,"select A, count(A) group by A order by count(A) desc",0) over a column of words does the ranking, but you still have to get one word per row first.
Word: there is no frequency feature. The usual workaround is Find and Replace on one word at a time, which reports how many replacements it made. Fine for checking a single term, useless for a whole document.
Command line: tr -cs "[:alpha:]" "\n" < file.txt | tr A-Z a-z | sort | uniq -c | sort -rn | head -100 gives essentially the same output in one line, if you have a shell handy.
Python: collections.Counter(re.findall(r"\w+", text.lower())).most_common(100).
How to read the results
The raw list is not the insight — the comparison is. Three habits make it useful.
Ignore the top rows. In English, roughly the first ten entries will be articles, prepositions and pronouns. They are the same for every text ever written and tell you nothing. Start reading where the first noun or verb appears.
Convert to a percentage. A count only means something relative to the length of the document. Divide by the total word count shown under the box: 8 occurrences in 300 words is 2.7 percent, which is heavy; 8 in 3000 words is 0.27 percent, which is barely there.
Compare two texts. Run your page, then run a competitor page, and put the two lists side by side in a spreadsheet. The interesting rows are not the ones you share — they are the terms that appear high on their list and are missing from yours entirely.
One caution: the tool counts word forms, not meanings. run, runs and running are three separate entries, so a term can be far more present than any single row suggests. Add the related forms together before deciding a text is repetitive.
Privacy: your text never leaves your browser
The counting runs in JavaScript on your device. No part of your document is uploaded, saved or logged, and nothing persists after you close the tab.
Frequency analysis is often run on material you cannot share: an unpublished manuscript, a client contract, interview transcripts, internal survey responses. Those are exactly the texts you should never paste into a service that processes them server-side. Here there is no upload step at all.
Related tools
Frequently asked questions
Any sequence of letters, digits, apostrophes or hyphens. So "state-of-the-art" counts as one word and "don't" stays intact.
Below that almost everything appears once, which adds length without adding information. The top 100 covers the useful part of any text.
No. "The" and "the" are merged into a single entry, which is what you want for frequency analysis.
No, they are shown so you see the full picture. Just read past the first few rows to reach the meaningful words.
Yes. Each line is count, tab, word, so pasting into a spreadsheet gives you two clean columns.
Yes. Word splitting is Unicode-aware, so Cyrillic, Greek, accented Latin and similar scripts are counted correctly.
Divide the count of your keyword by the total word count of the text. Seventeen occurrences in 1000 words is 1.7 percent.