Tool

Keyword density checker

Paste your text, type the phrases you want to work, and see how many times each one shows up, its density, how much of the text it takes up and whether it sits where it matters: in the title and in the opening. Free, no signup, and nothing leaves your machine.

Keyword density checker
-Words in the text
-Times (main keyword)
-Density (main keyword)
-Text share (main keyword)

Your target keywords

What the text works on its own

Ranking of the most repeated terms, with nothing declared by you. If your target keyword is missing here, the text is about something else.

One word

Two words

Three words

Nothing leaves your browser: the text is analysed on your own machine and is never sent, stored or logged anywhere. Matching ignores case and accents, and a phrase is matched word by word inside the same paragraph.

Who this page is for: writers and SEOs who already know which phrase they want to work and need to confirm the text actually works it. If your question is about length, reading time or which terms the text repeats without you declaring anything, the right page is the word counter, which answers "what does this text contain". Here the question is keyword-first: "does this text work THIS phrase, and in the right places?".

The percentage is not the answer, it is the question

Keyword density was born as a ranking factor and died as a ranking factor. In the years when search engines counted repetition there was an entire market of texts written to hit 2.5%, and the result was the decade of unreadable content that forced Google to change method. Relevance today is decided by entities, context and topical coverage, and no percentage buys a position.

What survives is useful in a different way. Density is still the fastest diagnosis of a very common problem: the text that talks about everything except what it should. When the target phrase is missing from the title, missing from the first hundred words and shows up twice, lost in the middle of the body, the percentage is not what is wrong. The text is not about that subject, and no counting adjustment fixes it.

That is why this tool shows four things per phrase instead of one. Occurrences tell you how many times. Density gives you the number that is comparable with any other tool on the market. Text share tells you how much of the text that phrase takes up, which is the only fair way to compare a one word term with a three word phrase. And placement tells you whether the phrase appears in the title, in the opening and spread across the body, which is where presence actually signals a subject.

How to use it

  1. Paste the title or H1 in the first field. It is analysed separately, because sitting in the title is worth more than any percentage in the body.
  2. Paste the body in the big box. Everything recalculates on every keystroke, with nothing to click.
  3. Type your target keywords, one per line. A single word or a full phrase both work. The first line becomes the main keyword shown in the four big numbers.
  4. Read the verdict column. It uses text share, not density: in range, underused, overused or not found.
  5. Use the automatic ranking at the bottom as a cross check. If the terms the text repeats most have nothing to do with what you declared, the text is about something else.

How it works: the maths and the rules

None of the maths is complicated. What separates one tool from another is the definition, so here it is, spelled out:

density = occurrences of the phrase ÷ total words
text share = (occurrences × words in the phrase) ÷ total words
verdict: share below 0.5% = underused
verdict: share between 0.5% and 3% = in range
verdict: share above 3% = overused
word = a run of letters or digits, with internal apostrophes and hyphens kept
matching = case folded, accent folded, word by word inside the same paragraph

Three rules deserve a note. Matching ignores case and accents, so "Conversion" and "conversión" count together, which is the right behaviour for anyone writing across languages. A phrase is matched as a sequence of words rather than as a chunk of text: "conversion rate" does not match inside "conversion rates", and it never crosses the end of a paragraph. And the title feeds only the placement column: it does not join the word total or the density, otherwise a long title would move the number of the body.

Worked example (reproduces the default result)

The sample text loaded above has 337 words in 5 paragraphs, under the title "How to improve the conversion rate of your landing page". Checking what the tool shows:

Now run the test that shows why the placement column exists. Delete the phrase "conversion rate" from the title field and leave everything else alone. Not a single number moves: same 3 occurrences, same 0.89% density, same 1.78% share. Only the "in the title" badge disappears. For a search engine that is probably the most expensive change on the whole screen, and it never shows up as a percentage.

How to read each number

Occurrences is the raw count, and the only figure that cannot mislead you. Use it to compare drafts of the same length and to spot concentrated repetition: three hits in one paragraph and none in the rest give the same density as three well spread hits, and they are not the same thing. The paragraph column exists precisely to separate those two cases.

Density is the market number. It is what every other tool reports and what most briefs ask for, so it is here to let you talk to the rest of the world. Just do not use it to judge a long phrase: 1% density on a four word phrase means 4% of the text is that phrase, which is already heavy repetition.

Text share is the honest number, and the one the verdict uses. It answers "how much of this text is made of this phrase?", which is why it treats a single term and a long phrase on the same scale. The 0.5% to 3% band does not come from any official search engine document, because that document does not exist: it comes from the range a well written text naturally lands in when it covers its subject without forcing.

Placement is what changes results with the least work. Title and opening are the two places where a phrase signals the subject both to the reader and to whatever indexes the page. A term present in those two, spread over three or four paragraphs, with a share around 1%, describes a text that works its subject without looking like it is trying.

Known limits

There is no stemming and no synonyms. "change" and "changes" are different terms, as are "page" and "pages". If your subject shows up in several forms, declare each one on its own line and add the results up, or accept that the number underestimates real coverage. It is the same reason a text that covers the topic well through synonyms can come back with a low share: the tool measures the exact phrase, not meaning.

The automatic ranking drops grams that start or end in a stop word, otherwise "of conversion" and "the page" would own the top of the table. The middle can still be a stop word, otherwise Portuguese and Spanish would show almost no phrases at all, since compound nouns there run through a preposition. In English the three word column often comes back empty even on long texts, and that is a result rather than a bug.

Subheadings are not detected as subheadings. Pasted as plain text, an H2 is just another line of the paragraph. If you want to measure the presence of a term in your subheadings, paste only those into the box and run a second analysis: it takes ten seconds and answers the question properly.

From measured text to tested text

Measuring the phrase is the start. What moves results is finding out which version of the text works better, and that is not settled by eye:

Frequently asked questions

What is the ideal keyword density?
There is no number a search engine rewards, and since the helpful content update chasing a percentage is riskier than ignoring it. The reference band this tool uses is 0.5% to 3% of text share, meaning the phrase takes up between half a percent and three percent of the words. Below that the subject is usually so diluted that even a reader cannot tell what the page is about; above it, the repetition is already annoying to read. Treat the band as a thermometer, not a target: a text that sits at 0.4% and covers the subject with synonyms beats one that hits 2% by forcing the exact phrase.
How do you calculate keyword density?
Divide the number of times the phrase appears by the total number of words and multiply by one hundred. A term appearing 3 times in 337 words has a density of 0.89%. This page also shows the text share, which multiplies the occurrences by the number of words in the phrase before dividing: 3 occurrences of a 2 word phrase take up 6 of those 337 words, or 1.78% of the text. Density is what you use to compare with other tools; text share is what you use to judge, because only it puts a one word term and a three word phrase on the same scale.
Is keyword density still a ranking factor?
Not as a direct one. Search engines stopped counting repetition as a relevance signal more than a decade ago, and today they work with entities, context and topical coverage. What survives is the diagnosis: if the phrase you want to rank for is missing from the title, missing from the opening and barely present in the body, the page is probably not about it. And excess is still punished, because forced repetition is one of the classic signals of content written for a machine.
How is this different from a word counter?
A word counter answers "what does this text contain": length, sentences, paragraphs, reading time and the terms it repeats most. Here the question is keyword-first: "does this text work THIS phrase?". You declare the target phrases and get, for each one, occurrences, density, text share, presence in the title, presence in the opening, the position of the first hit and how many paragraphs it reaches. The automatic ranking of 1, 2 and 3 word grams comes afterwards, as a cross check of what the text works without being told.
Does the tool count variations of the keyword?
It ignores case and accents, so "Conversion" and "conversion" count together. It does not stem: "page" and "pages", "change" and "changes" count as different terms. That is on purpose, because grouping forms would need a dictionary per language and would bring its own errors, but it means you should declare each variation you care about on its own line and add the results up. In practice this is the behaviour you want when checking an exact phrase.
Does the tool send my text to a server?
No. The whole analysis runs in JavaScript inside your browser, with no network call at all: the text never leaves your machine, is never stored and is never logged anywhere. That matters when the material is confidential, unpublished or belongs to a client. You can confirm it by opening the network tab and typing: not a single request fires while the numbers change.
Why does the automatic ranking show words without accents?
Because that is how they are compared. So that "Page", "page" and "página" group correctly, the tool folds everything to lowercase without accents before counting, and it displays the folded form to make the grouping visible. Your text is never altered, and the target keyword column shows each phrase exactly as you typed it.
What should I do when a term comes back as underused?
Before repeating the phrase, check three places: the title, the first paragraph and the subheadings. A term present in those three plus two or three times across the body already signals the subject without forcing anything. If the share is still low after that, the problem is usually scope: the text covers a broader subject than the phrase you picked, and the fix is to match the phrase to the text, or to split the text into two pages.
Embed this tool on your site

Paste this code wherever you want the checker to appear. The credit link below the box helps us and you are free to keep it.

Keep reading

To understand how the text you measured here behaves in search and in an AI answer, follow with CRO vs SEO, what changes in each, read the guide to generative engine optimization and learn to build quotable blocks in FAQ content for AI citation.

Related tools

See all tools →