← All tools

Keyword and Text Analyzer

Text statistics (characters, words, sentences) and how many times each keyword appears — exact and partial occurrences. Everything is computed in your browser.

Text statistics

Characters with spaces:

Characters without spaces:

Words in text:

Sentences:

Results by keyword

KeywordExact occurrencesPartial occurrences

What the analyzer does

The analyzer counts the characters, words and sentences in a text and shows how many times each keyword from your list appears in it. Use it to check an SEO text before publishing: does it include every keyword from the brief, and is any repeated too often? You can also check a copywriter's text against the page's keyword set or check its length.

How to use

You can copy keywords straight from a spreadsheet column: each cell becomes a separate line. The tool trims spaces at the start and end of each line and skips empty lines. A phrase of several words takes one line and counts as one keyword.

A check takes three steps:

  1. Paste the text into the “Text to analyze” field.
  2. Enter words or phrases in the “Keywords (one per line)” field.
  3. Click “Analyze”.

The statistics and the table appear below the button. After changing the text or keywords, click “Analyze” again: the result does not update by itself.

How to read the results

The result has two blocks. “Text statistics” describes the text as a whole, and “Results by keyword” shows each keyword separately. Keywords are matched regardless of case, so “Repair” and “repair” are the same to the tool.

Text statistics

“Characters with spaces” counts every character, line breaks included. “Characters without spaces” drops all spaces, tabs and line breaks. “Words in text” counts fragments between spaces, so a standalone dash also counts as a word.

“Sentences” is the number of groups of ., ! and ?. Three dots in a row give one sentence, while dots in abbreviations or in a number like 2.5 add extra ones. A last sentence with no punctuation at the end is not counted.

Results by keyword

The table has two number columns. Rows are sorted by exact occurrences, and by partial occurrences when those are equal.

A space in a phrase matches any number of spaces or a line break in the text. The row colour sums up both numbers.

A green row means there are exact occurrences. Yellow means the keyword appears only inside other words, like “repair” in “repairs”. Red means the keyword is not in the text.

Word boundaries here also work for Cyrillic and other scripts. The standard word boundary \b in JavaScript knows only Latin letters, digits and _, so it fails on Ukrainian text. Instead, the analyzer checks the neighbouring characters with the Unicode classes \p{L} (any letter) and \p{N} (any digit).

Limits

All counting happens in your browser, and the text and keywords are not sent anywhere. The analyzer matches letters and knows no grammar. If a word changes its stem, as in “mouse” and “mice”, there is not even a partial match. It does not account for synonyms either.

The tool does not show keyword density as a percentage. You can work it out yourself: divide the number of occurrences by “Words in text” and multiply by 100. Chasing a high density makes little sense, because Google's spam policies name filling a page with keywords to manipulate rankings (keyword stuffing) as a violation.

Sources

The word-matching rules follow the JavaScript documentation. The note on keyword stuffing comes from Google.

Built by , SEO Expert. Description updated in October 2026.