Keyword Density Checker

Measure phrase density on any page or pasted content to see if you are over or under-using your target keywords.

We fetch the top 5 pages ranking on Google for the focus keyword and surface topics they cover that you do not.

About keyword density and what actually ranks

Keyword density is not a Google ranking factor. Google's John Mueller has said this repeatedly: simply repeating a word more often does not help your rankings. Density is a useful diagnostic for spotting overuse, but a number on its own does not tell you whether a page will rank.

What does work in 2026: semantic coverage. Cover the topic the way the top-ranking pages cover it. If the top 5 results all talk about waterproofing, soles, and brand comparisons, your page on running shoes probably should too. That is what the Missing topics panel above surfaces, with real monthly search volume per phrase so you can prioritize what is worth writing about.

How it works

The Keyword Density Checker measures the frequency and density of every word and phrase in your content (1- through 5-grams), then enriches every phrase with real monthly search volume from Google so you can prioritize what actually drives traffic.

Three input modes:

  • Check a live URL: we fetch your page through our proxy pool, parse the HTML, and analyze the body content. Best for auditing what's live.
  • Paste content: paste raw text, markdown, or HTML directly. Useful for draft content or content behind login.
  • Live editor: a rich-text editor that scores your content as you type, entirely client-side (no server round-trip per keystroke). Best for active writing.

Tokenizer: splits content on whitespace and punctuation, normalizes apostrophes (so don't tokenizes as dont), case-folds everything, and counts 1- through 5-word phrases. Optional stopword filtering drops ~150 common English filler words from 1-gram counts and strictly filters any multi-word phrase containing a stopword.

Volume enrichment: every surfaced phrase is sent to the Keywords Everywhere API (the same data source as our Search Volume Checker) for real monthly volume, CPC, and competition score. Zero-volume phrases get a muted dash; phrases with real demand surface to the top of the sort.

SERP comparison (optional): toggle on and we fetch the top-5 Google results for your focus keyword (paid third-party API), proxy-fetch each result's content, and diff their phrase frequencies against yours. Three panels surface: Missing topics (phrases competitors cover that you do not), Over-emphasized (phrases you mention more than competitors do), and AI Overview phrases (when the SERP has an AI Overview). Each SERP comparison consumes 1 unit from your daily SERP quota (10 on the Free plan).

Honest caveat: Google has stated publicly that keyword density is not a ranking factor. We surface it anyway because extreme outliers are a useful diagnostic for thin content, keyword stuffing, or topic drift; and the SERP coverage gap is what actually drives modern on-page optimization.

What the columns and panels mean
Phrase
The word or phrase (1- through 5-grams) being measured. Case-folded; apostrophes normalized.
Frequency
Raw count of how many times the phrase appears in your content.
Density
Frequency as a percentage of total words in the document. Density of 1.5% means the phrase makes up 1.5% of your word count.
Volume
Real monthly search volume for the phrase from Google Keyword Planner (via the Keywords Everywhere API). Phrases with volume = 0 are either too long-tail to have measurable demand, or so new Google has not aggregated data yet.
CPC
Cost-per-click in Google Ads for the phrase. Higher CPC usually signals commercial intent.
Competition
Google Ads competition score (Low / Medium / High). Loose proxy for organic SEO competition.
Missing topics panel (SERP comparison on)
Phrases that appear in the top-5 ranking competitor pages but not in your content. Sorted by volume desc, so the most-searched gaps surface first. This is the Surfer/Frase killer feature, free.
Over-emphasized panel
Phrases your content uses substantially more than the top-ranking competitors do. Candidates for trimming to avoid keyword stuffing.
AI Overview phrases panel
Phrases mentioned in Google's AI Overview for your focus keyword (when the SERP shows one). Modeling your content on these phrases can improve your odds of being cited by the AI Overview.
Frequently asked questions

What is keyword density and how is it calculated?

Keyword density is the percentage of times a word or phrase appears in a piece of content relative to the total word count. The formula is: (keyword occurrences / total words) × 100. A 1,000-word article that uses "running shoes" 10 times has a density of 1% for that phrase. This tool calculates density per 1-, 2-, 3-, 4-, and 5-word phrase across your content, with stopword filtering and apostrophe normalization.

Is keyword density still a Google ranking factor?

No. Google has stated publicly multiple times that keyword density is not a ranking factor. The signal stopped mattering in any meaningful way more than a decade ago, when search engines moved from term-frequency matching to semantic understanding. So why does this tool exist? Because keyword density is still a useful diagnostic: extreme outliers (way too high or way too low) often correlate with real on-page issues like thin content, keyword stuffing, or topic drift. We surface the density numbers but pair them with what actually matters today: real monthly search volume for every phrase, and a coverage gap analysis against the top-ranking pages on Google.

What is a good keyword density?

There is no objectively correct keyword density. The conventional advice of "1-2%" comes from early-2000s SEO and has no empirical basis in modern Google. A more useful guideline: write naturally, cover your topic comprehensively, and worry about density only if a phrase is appearing so often it feels forced (above ~3-4% for any single keyword is usually a red flag for keyword stuffing). This tool flags the over-emphasized phrases automatically so you can spot them at a glance.

How does the SERP comparison feature work?

When you toggle Compare with top Google results, we fetch the top-5 organic results from Google's SERP for your focus keyword (via a paid third-party SERP API), then proxy-fetch each result's actual page content. We then extract all 1-, 2-, and 3-word phrases from those competitor pages and diff them against your content. The output is three panels: Missing topics (phrases your competitors cover that you do not), Over-emphasized (phrases you cover more than your competitors do), and AI Overview phrases (phrases mentioned in Google's AI Overview for that query, if one exists). All of these are sorted by real monthly search volume so you can prioritize the gaps that actually drive traffic.

What's the difference between the URL, Paste, and Live editor modes?

  • Check a live URL: we fetch your published page through our proxy pool, parse the HTML, and analyze the body content. Best for auditing what's actually live.
  • Paste content: paste raw text, markdown, or HTML directly. Useful when you want to analyze a draft before publishing, or content that lives behind a paywall or login.
  • Live editor: a rich-text editor that scores your content in real time as you type. No server round-trip per keystroke; the tokenizer runs entirely in your browser. Best for actively writing and tuning a piece.

How do I lower or raise the density of a specific keyword?

If a phrase is over-emphasized (red badge), replace some occurrences with synonyms, pronouns, or related variations. If a phrase is missing entirely (showing in the Missing topics panel against your competitors), look for natural places in your existing structure to weave it in: subheadings, intro/outro, body paragraphs. Avoid stuffing the same phrase repeatedly; semantic variation is what modern search engines reward.

Why filter out stopwords?

Words like the, a, and, of, to, is, in are grammatically essential but carry no topical meaning. They appear in every English text with roughly the same frequency regardless of topic. Counting them would dominate the density table with noise. We filter ~150 common English stopwords from 1-gram counts by default; toggle them back on if you want the raw frequencies. For 2-grams and longer phrases we apply a strict filter that drops any phrase where ANY token is a stopword (so "the best" and "for you" are both filtered).

Does this work for non-English content?

The tokenizer and density math work for any language whose text uses whitespace as a word boundary (most Latin-script, Cyrillic, Greek, and many others). The stopword list shipped is English-only, so non-English analyses will surface many filler words in the 1-gram table that you would normally filter; use the SERP comparison feature anyway, which still works because it compares phrase frequencies regardless of stopword status. For languages without spaces (CJK), the tokenizer treats whole sentences as single tokens, which limits usefulness.