Keyword Density Checker
See which words and exact phrases dominate your draft, track chosen targets, and spot accidental repetition—without chasing a made-up SEO score.
Analyze your text
Paste the main copy only. Menus, footers, and other boilerplate can distort a page-level comparison.
Your draft stays here. Analysis runs locally in this browser. The tool does not send, save, or fetch your text.
| # | Word or phrase | Count | Density | Share of matching windows |
|---|---|---|---|---|
| Paste text and choose Analyze text. | ||||
Density = occurrences ÷ total words × 100. Window share = occurrences ÷ possible consecutive phrases of that length × 100. Exact phrases may overlap; punctuation separates words but does not break adjacency.
What keyword density can—and cannot—tell you
Keyword density is a descriptive measurement of repetition. It can reveal a phrase you forgot to mention, boilerplate that overwhelms the main copy, or wording that appears so often it distracts a reader. It is not a ranking prediction, a quality score, or proof that a search engine understands the page.
There is no universal “ideal” percentage. Read the repeated wording in context. If a phrase sounds unnatural, rewrite it for clarity instead of trying to hit a numeric target.
How to use the checker
- Paste the body copy you actually want to assess. For fair comparisons, use the same content boundaries each time.
- Add one or more target phrases if you want exact-match counts. Variants and synonyms are intentionally counted separately.
- Review one-word results for dominant vocabulary, then two- and three-word results for repeated framing.
- Use the count and first-position details to inspect the writing itself. Keep repetition only when it helps the reader.
How the analysis works
Word detection and matching
The checker uses Unicode letter-and-number matching for space-delimited scripts and applies the browser’s locale-aware word segmenter only to contiguous runs of scripts that need dictionary-style boundaries. This keeps Latin apostrophe and hyphen handling unchanged when unrelated Chinese, Japanese, Thai, or other text is added. Matching is case-insensitive and uses normalized text. Exact phrase counts require the same consecutive word sequence; stemming, singular/plural expansion, and semantic similarity are not guessed.
Stop words and exclusions
Hiding common English words affects only which rows appear in the frequency table. It never changes the total-word denominator and never joins words that were separated by a removed term. Custom exclusions work the same way and accept individual words only; a multiword entry is rejected instead of silently hiding each component. Target phrase cards are always reported, even if they contain a hidden word.
Limits worth knowing
- The 200,000-character limit keeps analysis responsive on typical devices.
- Word boundaries vary by language and browser. Scripts without spaces may be segmented differently across engines.
- The checker analyzes pasted plain text, not HTML structure, links, headings, metadata, images, intent, or topical completeness.
- Reading time uses a simple 200-words-per-minute estimate and is not a performance metric.
Privacy
Your text is processed entirely in the current browser tab. This page does not upload drafts, fetch URLs, create reports on a server, or retain the text after you reset or leave the page.