N-gram Analyzer
Count the one, two, three and four-word phrases a text actually leans on — with stop words handled properly and no n-gram allowed to cross a full stop.
Nothing you type here is uploaded, stored or sent anywhere. It all runs in your browser.
Density is the wrong thing to look at
There is no keyword density figure that Google rewards, and there never was one. The percentages here exist so you can compare a phrase against the others in the same text, not so you can hit a target. If you find yourself editing copy to move a number on this page, stop — you are optimising for a metric that nobody on the other end is reading.
What n-grams are genuinely good for is two things, and both of them are about the writing rather than the ranking.
- Seeing the phrasing a page already leans on. Before you decide what a page targets, find out what it currently says. The three- and four-word view is the honest answer, and it is frequently not the phrase in the title tag.
- Spotting repetition you have gone blind to. Every writer has a construction they reach for without noticing. Seeing "the hard part is" four times in nine hundred words is the sort of thing you fix in a minute once you can see it, and never notice otherwise.
What the counting actually does
The text is split into sentences first, on full stops, question marks, exclamation marks, semicolons and line breaks. N-grams are generated inside each sentence and never across a boundary, which matters: without that rule a four-word count is full of phrases like "campaign the hard part" that nobody wrote. Abbreviations still fool the splitter — e.g. and Inc. end a sentence as far as this is concerned — which costs you a couple of phantom boundaries and is the standard trade.
Percentages are the count divided by the total number of n-grams of that size in the text, before any filtering. A text of 200 words contains 200 unigrams, 199 bigrams and so on inside a single sentence, fewer once sentences break it up, so the denominators differ between tabs. That is why a bigram at 1.2% is not directly comparable to a unigram at 1.2%.
Stop words: on for words, careful for phrases
Dropping stop words from single-word counts is obviously right — nobody needs to know that the is the commonest word in their article. For phrases it is subtler. This drops any phrase that begins or ends on a stop word, which kills "of the page" and "is the hard" while keeping "link building is the practice" intact if it repeats. Turn the option off when you are looking at sentence rhythm rather than topic.
To see the same text ranked by how unusual each term is rather than how often it appears, run it through the topic and keyword extractor instead — that weights against a baseline of ordinary English, which is a better answer to "what is this page about".
Questions people ask
What is an n-gram?
A run of n consecutive words. "Broken link building" is a 3-gram; the individual word "broken" is a 1-gram. Counting them is how you find the phrases a text repeats rather than the words it repeats, and phrases carry far more meaning than words do.
Which n should I look at?
Two and three. Single words tell you almost nothing once the stop words are gone, and four-word phrases in anything shorter than a thousand words usually repeat only where the writing is repetitive. Bigrams and trigrams are where the topic of a page shows up.
Why does a phrase I can see twice in my text not appear?
Three usual reasons: it falls below the minimum occurrences setting, it starts or ends on a stop word and the ignore option is on, or the two occurrences differ in some way the tool sees but you do not — a hyphen, a plural, a line break in the middle. Set the minimum to 1 and turn off stop words to find it.
Is a high percentage bad?
Not on its own. A page about one narrow thing will legitimately repeat that thing. What is worth reacting to is a phrase appearing far more than everything around it while adding nothing — that is usually a sign the copy was written to a keyword rather than to a reader, and it reads that way too.
Does it handle languages other than English?
The tokenising handles Latin, accented Latin and Cyrillic text, so counting works. The stop-word list is English only, so for other languages turn the stop-word option off and read the raw counts.
Related tools
Knowing what a page says is step one
The phrasing tells you what the page is about. Whether anyone sees it is a different problem, and that one is solved with links.