Keyword Density Checker
Two denominators, because one of them breaks on Chinese.
Runs locallyRuns entirely in your browser — open DevTools and check the Network tab
Top phrases by density
| # | Phrase | Count | Density (by character) | Density (by phrase) |
|---|
Nothing to show yet — type or paste some text.
Paste your page copy and see which words and phrases you actually lean on, measured both as a share of characters and as a share of phrase slots. Type a specific keyword to check just that one.
What density is, and what it is not
Keyword density is one number divided by another: how often a term appears, over how much text there is. It is genuinely useful as a mirror — it tells you what a page is actually about, which is often not what you intended when you were writing to a brief.
It is not a ranking factor with a target value. There is no threshold that triggers a reward, and the "ideal 2 to 3 per cent" that circulates in older SEO advice was never more than a rule of thumb. Density is worth watching for the opposite reason: an unusually high figure is a reliable symptom that a page reads badly, and that is a real problem regardless of how any search engine treats the number.
How the usual denominator breaks on Chinese
Nearly every density tool divides by the word count, and nearly every word count is produced by splitting on whitespace. Chinese has no spaces between words, so the split returns one enormous token for the whole passage. The denominator becomes one. The single "word" that is your entire text gets a density of 100 per cent, and every term you actually wanted to check gets zero — or the tool divides by zero and shows NaN.
This is not an edge case that affects a few pages. It is the default behaviour of the standard implementation for every page written in Chinese, Japanese or Korean, and because the output is a plausible-looking table of percentages, nobody notices that the percentages are meaningless.
The two figures on this page
Density by character divides the characters your term occupies by the total content characters — CJK characters plus Latin letters, excluding spaces and punctuation. It works identically for both scripts and is the figure to use when you want to know how much of the visible page a term takes up. A two-character Chinese term appearing ten times in a thousand-character article occupies two per cent of it, which is the answer a person would give.
Density by phrase divides occurrences by the number of phrase slots: word positions for Latin text, and n-gram windows for CJK. This is the closer analogue of the traditional word-based percentage, so it is the figure to quote when someone asks for keyword density in the conventional sense. The two numbers differ, and having both is the point — one denominator is about visible page real estate, the other about repetition rate.
Using it without wrecking your copy
Read the table for surprises rather than for a target. A term you never consciously used sitting near the top usually means a filler phrase has taken over; your actual subject missing from the top ten usually means the page talks around it instead of about it. Both are editorial findings you can act on, and neither requires you to hit a percentage.
If one phrase occupies more than about six per cent of the slots, we say so in the notes. At that level a human reader notices the repetition, which is the point at which it starts costing you — long before any algorithm is involved. The fix is never to delete instances mechanically; it is to write the sentence you meant.
Your draft copy is not uploaded
The analysis is string arithmetic in this tab. Nothing is transmitted, so unpublished landing pages, client copy under NDA and competitor material you are analysing all stay where they are.
That is not a small consideration for an SEO tool specifically. Page copy is usually checked before launch, which is exactly when it is confidential — and most density checkers are a form post to somebody else's server.
Frequently asked questions
What is the ideal keyword density?
There is not one. Density is a diagnostic, not a target. Use it to notice that a page is repetitive or that its real subject is missing from the top of the list.
Why do other tools report 100% or 0% for my Chinese page?
Because they divide by a whitespace-based word count, and Chinese has no spaces — so the whole passage counts as one word. Both denominators here are computed from characters and from n-gram windows instead.
Why are there two density columns?
One measures how much of the visible text the term occupies (by character), the other how often it appears relative to all phrase positions (by phrase). They answer different questions and the second is the conventional figure.
Are the Chinese phrases real words?
They are n-grams, so some are fragments of adjacent words. It is an estimate. For checking whether you over-repeat a specific term, type it into the keyword field — that is counted exactly.
Does my text leave the browser?
No. There is no upload and no request carrying your copy. You can verify it in the DevTools Network tab, or by disconnecting the network.