Text or URL • 1–3 word phrases • Exportable

Keyword Density Checker

Analyze keyword frequency and density. Choose 1-grams, 2-grams, or 3-grams, filter stopwords, and export your report.

Option A: paste text
Option B: fetch from URL (basic text extraction)
Tip: URL mode is best-effort extraction; results vary by site.

Results

Keyword Count Density
Run an analysis to see results here.
Density is calculated over the shown n-gram universe (after optional stopword filtering).

Quick interpretation

Overuse looks spammy; underuse may be irrelevant. Balance matters.

  • Count how often a term appears
  • Density share of total n-grams analyzed
  • N-grams help catch phrases, not just single words
Keyword frequency

Keyword density checker: find repeated words and phrases

Measure how often keywords appear in your content. Use 1–3 word phrases to detect repetition patterns and keep text natural.

How to use

  • Paste your text or fetch a page by URL.
  • Select 1–3 word n-grams.
  • Toggle stopwords for clearer insights.
  • Export or copy the table to a spreadsheet.

Tips

  • Use 2–3 word phrases to spot unnatural repetition.
  • If URL results look noisy, the extractor may include menus/footers.
  • Don’t chase an exact percent — aim for readability and topic coverage.

FAQ

What is keyword density, and how is it calculated here?

Keyword density is the share of a term (or phrase) inside the analyzed n-gram set. This tool calculates density as:

density (%) = count / total_shown_ngrams × 100

“Total shown n-grams” means the n-grams that remain after optional stopword filtering. If you change n-gram size or stopwords mode, densities will change because the universe changes.

What are n-grams (1–3 words) and when should I use each?

1-grams are single words (good for spotting repeated terms). 2-grams and 3-grams are phrases (better for detecting repetitive wording and intent-focused queries).

  • Use 1-gram to find overused words (and check stopwords impact).
  • Use 2-gram to see common pairs like “best tools”.
  • Use 3-gram to catch repeated phrases that look unnatural.
What does “Stopwords: on/off” do?

With stopwords on, common filler words (like the, and, to) are filtered to make the report more meaningful.

For 1-grams, a stopword is removed if the word itself is a stopword. For 2–3 grams, the tool removes an n-gram only if all words in that phrase are stopwords. This keeps useful phrases like “the best” visible if it includes at least one non-stopword.

Why can URL-based analysis look “noisy” compared to my article text?

URL mode uses basic HTML-to-text extraction. Many pages include navigation, footer links, cookie banners, related-post widgets, and sidebar content — and those words may be included in the extracted text.

If the results look off, fetch the URL, then manually delete non-article parts in the textarea and rerun the analysis. For the cleanest signal, paste the article body directly.

Does a “perfect” keyword density exist for SEO?

No. There is no universal “best” percentage. Use this tool to detect extremes (obvious repetition or missing topic coverage), not to hit a magic number.

A good workflow is: check 2–3 word phrases for unnatural repetition, then rewrite for clarity and coverage. If readability improves, density usually becomes reasonable automatically.

Why do densities change when I adjust filters or sorting?

Sorting does not change values, but filters can change what you’re looking at:

  • Min count and search only change which rows are shown.
  • Stopwords and n-grams change the underlying n-gram set, so counts and densities are recalculated.

For consistent comparisons, keep the same n-gram size and stopword setting.

Is the export based on the full analysis or on the currently filtered table?

The export uses the rows currently stored from the latest analysis run. In your UI, that’s effectively the current view rows after analysis (and after your filters/search if the view was updated).

If you want a “full list,” set Min count to 1, clear the search field, and export again.

Does the tool treat “SEO” and “seo” as different keywords?

No. The analysis is case-insensitive: everything is lowercased before counting. Punctuation is normalized to spaces, so “SEO-tools” and “SEO tools” are treated consistently.

This makes the report stable for real-world content, where casing and punctuation vary.