text tool

Keyword density checker

Paste a draft or a page's HTML and every repeated one, two and three word phrase is ranked with its count and its share of the words, with stopwords such as the and of left out. Add a focus keyword to see its density and whether it appears in the title, the meta description, an H1 and the opening 100 words.

Loading the tool…

How it works

  1. 1

    Paste a draft or a page's HTML

    Paste into the big box. HTML is recognised by its tags, and the title, description and H1 appear under Read from the HTML.

  2. 2

    Or fetch the page

    Type the full address and press Fetch the page. If the site blocks it, the notice tells you to view the source and paste it instead.

  3. 3

    Add a focus keyword

    Type the phrase you want the page to rank for. Its count, density and four placement checks appear above the tables.

  4. 4

    Read the phrase tables

    Switch between One word, Two words and Three words. Untick the stopword box to see the, and, of counted too, or download every phrase as CSV.

How density is worked out here

Density is the number of times a phrase appears divided by the total number of words in the text, times 100. A phrase of two words that appears 6 times in 400 words has a density of 1.5%. The same total is used for one, two and three word phrases, so their percentages can be compared on one scale. Words are read the way a person reads them: apostrophes and hyphens inside a word keep it whole, numbers count as words, and capital letters are ignored, so Grooming and grooming are one entry.

Why stopwords are left out

In almost any English text the most frequent words are the, and, of, to and a, which says nothing about the topic. With the stopword box ticked, a single word on that list is skipped, and a two or three word phrase is skipped when it starts or ends with one. A phrase with a stopword in the middle, such as dog grooming in Fremantle split into grooming in Fremantle, is kept because the middle word is part of how people search. Untick the box to see every word, which is useful for spotting a filler word you lean on.

There is no correct keyword density

Older advice named a target such as 1 to 3%, but no search engine has ever published one. Google's spam policies describe keyword stuffing as filling a page with keywords or numbers in an attempt to manipulate rankings, often in lists or out of context, and treat it as a violation. Its guidance on title links says the same of titles: a few descriptive words help, the same phrase repeated does not. So use the tables to find problems rather than to hit a number: a phrase far above the rest that reads as repetitive, or a main topic that barely appears at all.

Pasting HTML, and when fetching works

When you paste a page's source, scripts, styles, menus marked hidden and form controls are removed before counting, so the density reflects what a visitor reads. The title, meta description and H1 headings are pulled out separately, because those are the places a focus keyword matters most. Fetching by address is a convenience that only works when the site sends a header allowing other pages to read it, which is the mechanism called CORS. Most sites do not send it, so the reliable route is to open the page, view its source, copy all of it and paste it here.

Limits worth knowing

The checker counts exact words, so it does not know that plan, plans and planning are related, or that a synonym covers the same topic. Text added to a page by JavaScript after it loads is not in the source and is not counted. Very short drafts give jumpy percentages, so under 300 words the page suggests reading the counts instead. Nothing is uploaded and nothing is stored, ever.

Limits

  • A URL is fetched only if the page allows it in your browser (CORS); otherwise paste the text. Most sites do not allow it, and the page says so when the request is blocked.
  • Fetching sends a request for that address from your browser to that site. Nothing you have pasted is sent with it.
  • Visible text is read from the HTML source, so words a page adds with JavaScript after it loads are not counted.
  • Stopwords are a fixed English list of 125 words, so other languages keep their own common words in the tables.

What it does not do

  • It does not tell you a target density. No search engine publishes one, and the page explains why.
  • It does not count words that only appear in image files, alt text or meta keywords.
  • It does not group plurals or word forms, so plan and plans are separate rows.
  • It does not store your text, your keyword or any address you fetch.

Questions people ask

What keyword density should I aim for?

There is no published target, and writing to a percentage tends to produce awkward copy. Write for the reader first, then check two things here: that the main topic phrase appears in the title, the H1 and the opening paragraph, and that no phrase is repeated so often that it reads as padding. If one phrase sits far above everything else in the table, read those sentences aloud.

Why can this tool not fetch most websites?

Browsers stop one website's page from reading another website's content unless that site explicitly allows it, a rule called cross origin resource sharing. Most sites do not allow it, so the request fails before any text arrives. A server based checker avoids this by fetching for you, which means your page goes through someone else's machine. Pasting the source keeps everything in your browser.

How do I get a page's HTML source to paste?

Open the page in your browser, then right click an empty area and choose View Page Source. The shortcut is Ctrl+U on Windows and Linux, Option+Cmd+U in Chrome on a Mac and Cmd+U in Firefox on a Mac. Select everything in the source view, copy it, and paste it into the box. Safari needs its developer features turned on in its settings first.

Does the keyword in the meta description affect rankings?

Google's documentation describes the meta description as one source for the snippet shown under a result, and says nothing about it as a ranking factor. It matters for clicks: a description that contains the searched words can have them shown in bold, which helps someone choose your result. That is why the focus keyword check includes it alongside the title and the H1.

Why are plan and plans counted separately?

The checker matches exact words after lowering the case. Merging word forms needs a stemmer, which guesses at word roots and sometimes merges words that mean different things. Counting exact forms keeps every number checkable against your text. If you want them together, add the counts for each form, or check both with the focus keyword box one at a time.

Draft the page copy as a document

Take what you made here into documents.

Create a document with OneCraft

More tools like this

Sources

Written and checked by the OneCraft team. Last checked .