The page is fetched for you and loaded into the editor, where you can review or edit it before trusting the numbers.
Preview shortened for very long texts — the analysis always covers the full text.
Presets only adjust the guide bands used for status labels — they never change the counts.
Words
Unique words
Reading time
Readability
Avg sentence
| Keyword | Count | Density | Title | H1 | First 100 words | Status |
|---|
Status is a guide, not a Google rule. There is no ideal density, so write for readers first.
| Keyword | First third | Middle third | Final third |
|---|
Each strip divides the text into 20 equal parts; a brighter block means more occurrences of that keyword start in that part.
Densities for your target keywords, counted with the same options on both texts.
| Keyword | Yours | Other |
|---|
Versions are stored only in this browser (localStorage) and are never uploaded. Click a version to restore its text, keywords and options.
Everything stays in your browser. Your text is never uploaded — analysis runs entirely on this device.
See how often each keyword appears in a block of text.
100% free · No sign-up · No daily limits · No watermarks
Analyze many target keywords at once: paste text or page HTML, fetch a public URL, or upload a .txt, .md or .html file. Review counts, densities, Title / H1 / first-100-words placement, phrase tables, distribution and readability, then export the report as CSV, text, Markdown, JSON or PDF.
A keyword occurring three times in 100 counted words has a simple occurrence-to-word density of 3%. A two-word phrase occurring 7 times in 320 counted words has a density of 7 ÷ 320 = 2.19%. Phrase length, punctuation and the tool’s matching rules can affect comparisons.
The checker extracts the visible body text from pasted HTML — scripts and styles are ignored, and the page title is checked separately rather than counted — splits it into words made of letters and numbers, and counts every 1, 2 and 3 word phrase. Density is occurrences ÷ counted words × 100. Options can ignore common stop words per language, match case exactly, or also count words inside HTML tags (the page title, meta description and alt / title / placeholder / aria-label values) as extra text after the body. Readability is the Flesch Reading Ease score, 206.835 − 1.015 × (words ÷ sentences) − 84.6 × (syllables ÷ words), and reading time assumes about 200 words per minute.
Paste your content (or fetch a URL or upload a file), add your target keywords, and read the count and density in the target table. Review the context of each use too; a percentage alone cannot show whether the writing is helpful.
There is no guaranteed ideal percentage. Use the term where it helps readers understand the subject, and use related concepts naturally rather than forcing repetitions.
Yes — use the URL input. The page is fetched and loaded into the editor, so you can review exactly what was analyzed. If the site blocks fetching, paste its visible text or page HTML instead. Do not assume an empty result means the page contains no keywords.
They may count punctuation, phrases, navigation and word forms differently. This checker counts letter-and-number words in the visible body text; use the same input and settings when comparing revisions.
Yes — copy a readable report, or download CSV, text, Markdown or JSON, or print a PDF report. Keep a copy alongside your draft to compare changes.
It also counts words found in the page title, the meta description and alt, title, placeholder and aria-label attribute values, as extra text after the body. It is off by default, matching what a reader sees.
What is missing, broken, or could be better on this tool? Tell us — we read every suggestion.
✅ Thanks — your suggestion has been received. Suggestions like yours shape what we build next.