Free tool · On-page SEO
To check keyword density, count how often a phrase appears and divide by the total number of words. Paste your text below for one, two and three word phrase frequency with the raw count beside every percentage. There is no target density to hit, and the report says so rather than inventing one.
Free, and your text never leaves your browser. The placement map for a published page needs a free sign-in.
Counted in your browser. Your text is not sent to us.
AEO depth layer
The term placement map is computed from your own page and costs nothing to run. We ask for a free account because the expensive tools on this shelf stay free, and because it lets us tell you when your result changes. No card, no trial clock.
Signing in saves the details you entered above so we can follow up about your results. See our privacy policy for what we keep and why. The Keyword Density Checker result you already have stays free either way. Privacy policy.
None of these come from a published search-engine guideline, because there are none to cite for keyword density. Every threshold below is our judgement, stated so you can disagree with it.
| Rule | Value | Why |
|---|---|---|
| Denominator | all words | Including stop words. Dividing by the filtered count is why two tools report different densities for identical text, and neither tells you. |
| Over-repetition flag | above 5% | Not a penalty threshold; no published one exists. It is the point at which repetition starts to read badly to a person. |
| Minimum to judge | 200 words | Below this a word appearing twice can be 9%, so the flag would fire on ordinary prose and be worth ignoring. |
| Stop-word filtering | whole phrase only | A phrase is dropped only when every word in it is a stop word, so "return on investment" and "best time to post" survive. |
| Digits | kept | "gpt 4", "2026 guide" and "web 3" are real search terms. Stripping digits turns them into their letters. |
| Placement matching | word boundary | "monitor" does not count as "monitoring", matching the rule the h1 checker documents. Two tools disagreeing about a match is worse than either choice. |
Where the usual checkers are equal, the table says so.
| Capability | This tool | Typical free checker |
|---|---|---|
| One, two and three word phrases | Yes | Yes |
| Stop-word filtering | Yes | Yes |
| Runs without sending your text anywhere | Yes | Usually posts it |
| States the denominator | Yes | No |
| Raw count shown beside the percentage | Yes | Percentage only |
| Withholds a judgement on short samples | Yes | Reports 9% regardless |
| Keeps digits in terms | Yes | Often strips them |
| Keeps phrases that contain a stop word | Yes | Drops them |
| Gives you a target density to hit | No, deliberately | Yes, invented |
| Placement map on a live page | Yes, with a free account | No |
The row worth dwelling on is the second from last. A target density is the one feature every competitor has and the one we will not build, because there is no number to give you and pretending otherwise is the whole problem with the category.
Frequency answers how often you said something. Placement answers whether you said it anywhere that counts, which is the more useful question and the one a word count cannot reach. These are the six slots it checks.
| Slot | Why it matters |
|---|---|
| Title tag | What competes in a result listing. A term absent here is a term the page is not really claiming. |
| H1 | The strongest on-page statement of subject, and what a reader checks first to see they landed in the right place. |
| A subheading | Subheadings are the units an answer engine quotes, so a term that appears in one is a term attached to a specific claim. |
| First 100 words | If the subject is not stated in the opening, a reader and an engine both have to guess what the page is for. |
| URL | Durable, visible in a result listing, and the one slot you cannot easily change later. |
| Image alt text | The slot almost everyone forgets. It is also the accessible description, so writing it well is not only an SEO act. |
A term in two of six slots is usually a better fix than the same term repeated ten more times in the body. Once the placement is right, the h1 checker reports how much your heading and title actually agree, the readability checker reads whether each paragraph can be quoted on its own, and the AI visibility checker asks whether the engines name you for the question at all.
Step 1
The most useful number here is not the top of the frequency table, it is whether your target phrase appears at all. Enter it first so the report can answer that directly.
Step 2
A count of 3 in 900 words tells you something. The 0.3% next to it tells you nothing, because there is no target to compare it against.
Step 3
Genuine keyword stuffing is rare and obvious. A page that never quite states its own subject is common and invisible, and it is the failure this report is actually good at finding.
Step 4
Frequency tells you how often you said something. The placement map tells you whether you said it in the title, the h1, a subheading, the opening or the URL, which is the question worth asking.
When you outgrow this tool
The frequency count is free and complete on its own, and runs entirely in your browser. Linkeddit is what you use before you write, when the question is which phrase is worth targeting rather than how often you used the one you picked.
FAQ
What the metric is worth, why every tool gives a different number, and what to look at instead.
There isn't one, and any tool that gives you a target percentage is inventing it. Keyword density has not been a meaningful ranking input for many years, and the 1 to 3% figures still circulating are folklore from an era when it was. Write the phrase where it belongs, as often as reads naturally, and stop counting. What this tool is for is catching the two real problems: a page that never states its subject, and repetition bad enough that a person notices.
No. Search engines moved to matching meaning rather than counting terms long ago, and stuffing a phrase has been actively counterproductive for longer than that. The reason this tool exists anyway is that the frequency table is a fast way to see what a page is actually about, which is often not what its author believes it is about.
Mostly because of the denominator. Some divide by every word on the page and some divide by the words remaining after stop words are removed, which produces very different percentages for identical text. Neither is wrong, but a tool that does not tell you which it used is reporting a number you cannot compare to anything. This one divides by every word and says so, and shows the raw count so you can recompute it however you like.
Enough that a reader can tell what the page is about, which usually means the title, the h1, somewhere in the opening, and then wherever it comes up naturally. That is a placement question rather than a frequency one. A term appearing twice in the right places beats the same term appearing twenty times in the body and nowhere structural.
Because it would be noise. Below 200 words a single word appearing twice can be nine percent of the text, so an over-repetition flag would fire on ordinary prose and you would rightly learn to ignore it. The frequency counts are still shown; only the 5% judgement is withheld, and the tool says which is happening.
The placement map. It fetches a published page and reports where your target term appears across six slots: the title tag, the h1, a subheading, the first hundred words, the URL and the image alt text. That last one is the slot almost every tool ignores. Matching is on word boundaries, so "monitor" does not count as "monitoring", which is the same rule the h1 checker uses. It costs nothing to run and no model is involved.
It tells you the denominator, shows the count next to every percentage, refuses to judge a sample too short to judge, and says on its own page that the metric is not a ranking factor. Most of the category does the opposite: a confident percentage, an invented target range, and a green tick when you hit it. It also keeps digits in its tokens, so terms like "gpt 4" survive rather than being counted as "gpt".
Every tool on the shelf is free, with no card and no trial. Most need no account at all. See all free tools.
Check up to 25 descriptions at once and find the duplicates, which is the one problem you cannot see a page at a time.
See where a title and description get cut on desktop and mobile, measured in your own browser rather than estimated from a character count.
Flesch scores with every count they are derived from, long sentences listed, and passive voice shown as clauses you can overrule.
Thirty-five checks worth a hundred points, with every weight and every threshold printed before you enter a URL.