gizmobench

Keyword Density Checker

Paste a page and every word, pair and triple in it is counted, with the sum printed inside each row: the count, the denominator it was divided by, and the percentage those two make. A single word is divided by every word in the text and a phrase by the number of windows of its own length, so "coffee: 38 of 1,204 words, 3.16%" can be checked by hand. Common words can be left out of the list without moving the denominator, phrases are counted over every overlapping window, and one focus phrase can be checked by name. The counting runs in this tab, there is no sign-up, and there is no target density here, because no search engine publishes one.

countswaiting

No counts yet. The text on the left is what gets counted.

An empty box.

Counts and percentages, no scoreThe denominator is in every rowYour text stays in this browserNo account, no sign-up
Words
0
Top word
not yet
Density
not yet
Phrases
1, 2 and 3
Phrase length
Common words
Case

Nothing is counted yet. The message above says what happened and what to change.

Each percentage is the count divided by the number of windows of the same length in your text, rounded to two decimals: a single word against every word, a pair against every pair of neighbouring words, a triple against every triple.

  • Single wordscommon words left out
    coffee: 5 of 88 words, 5.68%
  • Two-word phrasessame text, pairs
    cold brew: 2 of 87 two-word windows, 2.30%
  • Common words keptsame text, nothing skipped
    the: 8 of 88 words, 9.09%

Common words are removed from the list, not from the text: the denominator stays every window in the text, so a percentage does not move when you flip that switch, only the rows do. With them removed, a window holding one of them is dropped rather than closed up, so no pair appears here that nobody wrote. Case folding is the only grouping on offer: cat and cats stay two words. A count too small to show at two decimals reads "under 0.01%" rather than 0.00%, so a real mention is never printed as none.

Up to 2,000,000 characters are counted in one pass, and a longer text says so rather than counting part of it. Your text and your settings are kept in this browser and nowhere else; a text over 60,000 characters is counted in full but not saved.

Why there is no target here. No search engine publishes a keyword density it wants, so a tool that prints a target is printing a number it made up. This page counts what you wrote and shows the sum it did: the count, the denominator and the percentage they make, for every row.
Accuracy. Exact counts of what you pasted, with the denominator printed beside every percentage so you can check it. It reports what the text contains and recommends no target density, because no such target exists.

Common questions

What is a good keyword density?
There is no target, and this page prints none. No search engine publishes a density it wants, so any tool that shows one green number is showing a figure it invented. What this page gives you is the measurement: how many times each word and phrase appears, what that count was divided by, and the percentage the two make. What to do with it is a judgement about the writing, not an arithmetic threshold.
What is the percentage divided by?
A single word is divided by every word in the text, so a word used 38 times in 1,204 words reads 3.16%. A two-word phrase is divided by the number of two-word windows, which is one fewer than the word count, and a three-word phrase by the number of three-word windows, which is two fewer. The denominator is printed in every row next to the percentage, as in "cold brew: 12 of 1,203 two-word windows, 1.00%", so you never have to guess which sum was done.
How are two and three word phrases counted?
Over every window of that length, including the overlapping ones. In "na na na na" there are three places a two-word phrase can start, and "na na" sits in all three, so it is counted three times out of three windows. That is the same rule at every length, which is what keeps a repeated phrase from being undercounted in one mode and overcounted in another.
Does removing common words change the percentages?
No. Common words such as the, of and to are taken out of the list, not out of the text, so the denominator stays every window in the text and a word's percentage is the same whether the switch is set to Remove or Keep. Only the rows change. With common words removed, a phrase window that holds one is dropped rather than closed up, so "a cup of hot coffee" never turns into the pair "cup coffee", which nobody wrote.
Can I check one phrase I care about?
Yes. Type it into Focus phrase, up to six words, and its own line appears with the count, the denominator for phrases of that length and the percentage. The focus phrase ignores the common-word switch, because you asked about that exact phrase: "cup of coffee" is still counted while "of" is being left out of the list beside it. It follows the Case setting, so the count always matches the list next to it.
Why does the same word appear twice, once with a capital?
Because Case is set to Keep, which counts the spelling you typed. Set Case to Fold and Coffee, COFFEE and coffee become one entry. Nothing else is grouped for you: cat and cats stay two words here, because the tool counts words rather than reading meaning. The one exception is punctuation, not spelling, since a curly apostrophe and a straight one are the same mark, so don't is one word whichever keyboard typed it.
Is my text uploaded anywhere?
No. The counting runs in this browser tab, so an unpublished draft or a client's page never leaves your machine, and no account is asked for. Texts up to 2,000,000 characters are counted in one pass, and a longer one says so instead of counting part of it in silence. Your settings and up to 60,000 characters of your text are kept in this browser so they are still here when you come back; Start over at the top of the page forgets them.
Can I get the counts out as a file or a table?
Copy writes the listed rows as CSV with five columns: the phrase, how many words it holds, the count, the denominator and the percentage, with the denominator column sitting next to the percentage column so a pasted spreadsheet still says what the figure was divided by. The list carries the top 500 entries and the line under the stage says how many different entries were found in total.

Exact counts of what you pasted, with the denominator printed beside every percentage so you can check it. It reports what the text contains and recommends no target density, because no such target exists.