Word Counter
Paste your text and watch the numbers update as you type. Useful for assignments with a word limit, meta descriptions with a character limit, or working out how long a script will take to read out loud.
Most frequent words
Nothing to show yet — the list fills in as you type.
| Most frequent words | Count | Share |
|---|
Common words such as the, and and of are left out, because they are frequent in every text and tell you nothing.
How to use it
Paste or type your text
Everything is counted locally as you type — there is no submit button and nothing is transmitted. A long document is fine; counting is debounced slightly so the page stays responsive while you paste.
Read the panel above the keywords
Words, characters with and without spaces, sentences, paragraphs, lines, plus reading and speaking time. If your text contains Chinese, Japanese or Korean, a separate character count appears for those languages, because the word count alone will not mean much there.
Check it against a real limit
Pick a target from the dropdown — a post, a meta description, a page title, an SMS — and the panel shows how much room is left or how far over you are. This is the fastest way to find out that your meta description is 190 characters when the useful range is about 155.
Look at the frequent words
The table at the bottom shows the ten words you used most, with counts and shares. Common function words are filtered out, because the, and and of are frequent in every text and tell you nothing about yours.
Why “word count” has no single answer
Ask five tools to count the words in the same paragraph and you can get five different numbers. This is not a bug in any of them; it is a definition problem, and knowing where the disagreement comes from stops you from panicking when your word processor and your submission form disagree.
The disagreements come from hyphenated words, whether numbers count, whether “don’t” is one word or two, whether file paths and URLs count as words, and how the tool treats markdown or HTML markup sitting in the text. Every tool draws these lines slightly differently. Microsoft Word treats an em-dash-joined pair as one word; Google Docs splits on some punctuation Word does not; a script that splits on whitespace will count “state-of-the-art” as one and “state of the art” as four.
What matters is the number your deadline is measured against. If you are submitting to a form that enforces a word limit, that form’s count is the one that decides. Use this tool for drafting and for catching gross overruns, then check the final number in the system you are actually submitting to.
Chinese, Japanese and Korean are counted differently — and they have to be
This is the single biggest source of wrong numbers in word counters, and most of them get it wrong in the same way. English separates words with spaces, so splitting on whitespace works. Chinese, Japanese and Korean do not put spaces between words at all. A counter that splits on whitespace sees a whole paragraph of Chinese as one enormous “word”, which is not approximately right — it is meaningless.
This tool segments text with the browser’s built-in `Intl.Segmenter`, which applies actual word-boundary rules for the language rather than guessing from spaces. Chinese text comes back as real words. It also counts CJK characters separately and shows that number as its own row, because for Chinese the character count is usually the number that matters: a 800-字 essay in Chinese is measured in characters, not in words.
The two numbers are not alternatives to each other — they answer different questions. If your limit is “800 words” in the English sense, use the word count. If your limit is “800 字”, use the character count. When a Chinese platform says 字数, it means characters.
Reading time is calculated per script for the same reason: Chinese is read at roughly 400–500 characters per minute, English at roughly 200–250 words per minute. Averaging the two together would give you a meaningless figure for both.
Reading time is an estimate, and it should be labelled as one
The numbers used here — about 220 words per minute for silent English reading, about 450 characters per minute for Chinese, roughly 150 words per minute for reading aloud — come from the middle of the ranges reported in reading research. They are reasonable defaults, not measurements of your text.
Real speed depends on far more than word count. A page of dense legal clauses or unfamiliar technical terms can take three times as long as the same number of words in a familiar narrative. Tables, code and formulae are read differently again, and this counter treats them as ordinary text. Screen size matters too: people read more slowly on a phone than at a desk.
So treat the figure as a sanity check rather than a fact. If you are writing a script for a five-minute slot, a reading time of 4.7 minutes means you are cutting it close and should trim; a time of 2.1 minutes means you have room. For a blog post, the number is useful mostly for telling you whether you have written something substantial or something thin.
What keyword density does and does not tell you
The frequent-words table is a mirror: it shows what your text is actually about, which is occasionally not what you thought. People are regularly surprised to find that the word they consider the topic appears twice while a throwaway phrase appears eleven times.
What it does not do is measure SEO quality, and it is worth being blunt about this because the opposite claim is everywhere. Keyword density has not been a meaningful ranking factor for many years; search engines work on meaning and context, not on repetition counts. Writing to hit a target percentage is a good way to make text worse without making it rank better, and obvious repetition is the kind of thing that hurts rather than helps.
The genuinely useful readings are these. Terms appearing once that should be recurring usually means you drifted off topic, or that you used three different words for the same concept and readers will not connect them. A term appearing far more often than the topic deserves suggests you are over-explaining something incidental. And a very long tail of one-off words suggests the text is trying to cover too much.
One caveat about the numbers themselves: the table filters out a list of common function words in English, which is why the, and and of do not appear at the top. That filter is English-only, so in other languages you will see the local equivalents of those words appear. The share column is calculated against the words that survived the filter, not against your total word count, so it means “of the words shown, this portion” rather than “this portion of your text”.
Practical uses beyond hitting a word limit
A few things this is genuinely handy for, based on what the numbers are good at.
- Meta descriptions: pick the 160-character target and keep the description under it, because search engines truncate past roughly that point and a half-sentence looks careless in results.
- Page titles: the 60-character target is the range Google typically displays. Longer titles are not penalised, they are simply cut off, which is usually not what you want mid-word.
- Scripts and talks: use speaking time rather than reading time. It is the difference between a talk that finishes early and one that gets cut off by the chair.
- Abstracts and summaries with a hard character cap: the limit dropdown counts characters as soon as your text contains CJK, so it matches what a submission portal will enforce rather than what a word processor reports.
- Trimming a piece that is far too long: look at the paragraph count and the most frequent words together. A 14-paragraph piece about one topic usually has three paragraphs that repeat each other, and the frequent-words table is a decent hint at which.
Last updated:
Frequently asked questions
Is my text uploaded anywhere?
No. The counting is JavaScript running in the page you already loaded, so your text stays in the tab. That matters more than usual here, because drafting text is often private — contracts, applications, unpublished writing. Nothing is stored and nothing is sent.
Why does the word count differ from Microsoft Word or Google Docs?
Because they define a word slightly differently — around hyphens, numbers, apostrophes and symbols. Word typically counts “state-of-the-art” as one word where a whitespace splitter also counts it as one but treats “state of the art” as four. If a submission form enforces a limit, that form’s number is the authoritative one; use this for drafting and check the final count where you submit.
Why is there a separate character count for Chinese text?
Because Chinese, Japanese and Korean do not use spaces between words, so a word count alone does not describe the length. Counting by whitespace would report an entire paragraph as one word. This tool segments CJK text properly and reports the character count separately, since 字数 in Chinese means characters.
How accurate is the reading time?
It is an estimate based on typical reading speeds — roughly 220 words per minute for English and 450 characters per minute for Chinese. Dense technical or legal text takes considerably longer, and reading on a phone is slower than on a desktop. Treat it as a rough check, not a measurement.
Is the keyword density figure useful for SEO?
Not as a target to write towards. Density has not been a meaningful ranking signal for years, and padding text to hit a percentage makes it worse to read without making it rank better. The table is useful for noticing drift and repetition, which is a writing question rather than a ranking one.
Does it count words inside markdown or HTML?
It counts everything in the box as plain text, so syntax characters are treated like ordinary characters and “## Heading” counts the hashes. If you are counting draft markdown, paste the rendered text instead for a number that matches what a reader will see.
Is there a size limit on the text I can paste?
No fixed limit from this tool — the work happens on your machine. Very large texts, in the hundreds of thousands of characters, will make the keyword analysis take a moment, but the counting itself stays responsive because updates are debounced while you type.