# Keyword Density Checker - Word Frequency and Top Phrases, Free

Page: https://hirantha.me/tools/keyword-density-checker
Part of: Hirantha Sandaruwan Lakshan free tools (https://hirantha.me/tools)
Updated: 2026-10-13

Count how often each word and each two or three word phrase appears in your text, with percentages, a stop-word filter and a CSV copy. Nothing is uploaded.

This is a free tool that runs in the browser: open the page to use it. File tools process files on the visitor's own device; files are never uploaded or stored. No account, sign-up, payment or watermark.

Paste an article or a page of copy and see which words and phrases it leans on. The tool counts every word, shows each word's count and its share of all the words, and lists the most used two-word and three-word phrases. You can hide common words such as the and of, set a minimum count, sort any column and copy the table as CSV. It works for English, Sinhala, Tamil and other scripts, and the text never leaves your browser.

Splitting into words. The text is first normalised so that composed and decomposed accents count as the same letters. Then it is cut into words with the Unicode word boundary rules (UAX #29), through the browser's Intl.Segmenter. A word such as don't stays whole, and Sinhala and Tamil text is split at real word edges, with each letter's vowel signs staying attached. A browser without Intl.Segmenter falls back to a simpler rule: a word is a run of letters, marks and digits, optionally joined by an apostrophe. A number such as 2,000 counts as one word.

The percentage. Total words is every word in the text, stop words included. The percentage for a word is its count divided by the total words, times 100. A phrase works the same way: the number of times its words appear next to each other, in that order, divided by the total number of words. The count of a phrase is not multiplied by its length. Phrases never run across the end of a sentence (. ! ? ; : the ellipsis mark, or the danda used in Hindi) or across a blank line.

Stop words. With the stop-word switch on, single words from a list of 184 common English function words (articles, pronouns, prepositions, linking words, auxiliary verbs and contractions) are left out of the single-word table, and phrases that start or end with one are left out of the phrase tables. A stop word in the middle, as in state of the art, is kept. The percentages still use all the words, so they do not change when you flip the switch. The list is our own and is shown in full below the tool and on this page.

What the numbers are for. There is no ideal keyword density. Google's spam policies describe keyword stuffing as filling a page with keywords in an attempt to manipulate rankings, and one of its examples is repeating the same words or phrases so often that it sounds unnatural. That page gives no percentage to aim for, in either direction. Use the table to catch a word or phrase you repeat out of habit, and to see whether the words you meant to cover appear at all. Then read the text aloud: if it sounds natural, the numbers do not matter.

The 184 English stop words used when the filter is on (our own list of common function words):
| Group | Words | How many |
| --- | --- | --- |
| Articles and determiners | a, an, the, this, that, these, those, such, each, every, some, any, no, other, another, both, all, more, most, few, own, same | 22 |
| Pronouns | i, me, my, myself, we, us, our, ours, ourselves, you, your, yours, yourself, yourselves, he, him, his, himself, she, her, hers, herself, it, its, itself, they, them, their, theirs, themselves, who, whom, whose, which, what | 35 |
| Prepositions | of, in, on, at, by, for, with, about, against, between, into, through, during, before, after, above, below, to, from, up, down, out, off, over, under, again, further, as, until, while, within, without, across, around, among, per, via | 37 |
| Conjunctions and linking words | and, but, or, nor, so, yet, if, because, than, then, once, here, there, when, where, why, how, only, very, just, too, also, not, now, even, still, however, therefore | 28 |
| Auxiliary and common verbs | am, is, are, was, were, be, been, being, have, has, had, having, do, does, did, doing, will, would, shall, should, can, could, may, might, must, get, gets, got | 28 |
| Contractions | i'm, i've, i'll, i'd, you're, you've, you'll, you'd, he's, she's, it's, we're, we've, we'll, they're, they've, they'll, that's, there's, let's, isn't, aren't, wasn't, weren't, don't, doesn't, didn't, can't, won't, wouldn't, couldn't, shouldn't, haven't, hasn't | 34 |

Q: What is a good keyword density?
A: There is no number to aim for. Google's spam policies treat repeating words so often that the text sounds unnatural as keyword stuffing, and they give no safe percentage. Write for the reader, then use the table to check for overuse and for important words that are missing.

Q: How is keyword density calculated?
A: Count how many times the word or phrase appears, divide by the total number of words in the text and multiply by 100. In the sample, tea appears 10 times in 92 words: 10 / 92 x 100 = 10.87%. Some tools multiply a phrase's count by its length. This one does not, so a two-word phrase and a one-word term are comparable.

Q: Does it work for Sinhala and Tamil?
A: Yes. Words are split with the Unicode word rules, so each Sinhala or Tamil word is counted once, with its vowel signs attached. The stop-word filter only knows English, so very common words in those languages will appear in the table.

Q: Are plurals and other word forms counted together?
A: No. Tea and teas are different words, and so are run and running. Words are matched as written, apart from capital letters, which you can choose to ignore, and accents written in composed or decomposed form, which are treated as the same.

Q: How much text can it handle?
A: A test text of 200,000 words, about 1.7 million characters, was split and counted in under a second on our test computer. A phone takes longer. The tool reads at most 5,000,000 characters and tells you if your text is longer than that.

Q: Why do phrases stop at the end of a sentence?
A: Two words on either side of a full stop are not a phrase a reader would say. Phrases therefore never run across . ! ? ; : or a blank line. A comma does not break a phrase.

Q: Is my text uploaded or saved?
A: No. The counting is done by code running in your browser tab. Nothing is sent to a server and nothing is stored when you close the page.

Sources: Spam policies for Google web search (keyword stuffing), Google Search Central (https://developers.google.com/search/docs/essentials/spam-policies); Unicode Standard Annex #29: Unicode Text Segmentation (word boundaries) (https://unicode.org/reports/tr29/); Intl.Segmenter, MDN Web Docs (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter)

Related tools:

- [Word & character counter](https://hirantha.me/tools/word-counter.md): Live word, character, sentence, and reading-time counts as you type.
- [Case converter](https://hirantha.me/tools/case-converter.md): Convert text to uppercase, lowercase, title case, or camelCase.
- [Readability score calculator](https://hirantha.me/tools/readability-calculator.md): Score English text with Flesch Reading Ease, Flesch-Kincaid grade, Gunning Fog, SMOG, Coleman-Liau and ARI, with every count and formula shown.
- [URL slug generator](https://hirantha.me/tools/slug-generator.md): Turn any title into a clean URL slug: lowercase, hyphens, no accents or punctuation. Options for stop words, a length limit, other scripts and one slug per line.
