Home › Guides › Why Two Word Counters Disagree

Why Two Word Counters Disagree

Paste the same paragraph into two counters and you will often get two numbers. Neither is broken; they are answering different questions, and the question is almost never written down. This page defines six counting rules, runs them over six texts that cover the awkward cases, and says which number to trust for which contract.

There is no single definition of “word”

The default rule — and the one this site uses — is a run of non-whitespace characters. It is fast, language-independent and reproducible, and it fails on precisely the things that make text interesting: hyphenated compounds, em dashes standing alone, URLs, email addresses, markdown syntax, and any East Asian language, which does not use spaces between words at all. Every disagreement between two counters is one of those cases surfacing.

The six rules

The measurements

Each row is a text; each column is a rule applied to it. Generated locally on Node v24.19.0, so you can reproduce every figure from the source at the bottom of the page.

Sample textWhitespace runsWord-like tokensCJK-awareMarkdown strippedChars (no spaces)Sentences
plain prose18181819772
hyphens + em dash15131521872
markdown14151413811
mixed CJK96329551
urls + emoji71678893
numbers + units13181314615

Reading the gaps

Hyphens and dashes. In the second sample the whitespace rule counts a compound like e-commerce as one word, which most style guides agree with — but an em dash surrounded by spaces counts as a word on its own, which no word processor does. That single artefact is responsible for a surprising share of “Word says 248, the website says 251” mismatches.

Markup. The markdown sample is the clearest illustration: headings, bold markers, link syntax and backticks are all non-whitespace runs, so a raw counter inflates the count. The last column shows the same text after punctuation stripping. If you draft in markdown and submit to a word limit, you are being measured on the stripped version and editing against the raw one.

URLs and addresses. A long URL is one word under the whitespace rule and roughly nothing under a rule that requires letters or digits in a token. For a listing or a bio with a character limit, the URL is measured in characters, and there the difference between 40 and 60 is the difference between fitting and not fitting.

Numerals and units. In the last sample, 1,250 is one token, $14.99 is one token, and 27.4% is one token. A rule that requires letters in a “word” discards all three, which is exactly what you must not do on a page whose value is the numbers.

Where “word” is the wrong unit entirely

Chinese, Japanese and Thai do not delimit words with spaces. Counting whitespace runs on Japanese prose gives a number that is closer to a count of phrase fragments than of words, and the mixed sample above shows the effect: the same sentence scores differently under the whitespace rule and under a rule that counts each CJK character individually. Korean and Thai sit in the same family of problems. If a limit is specified in characters for a CJK language, treat it as characters, and if a translation job is quoted per word, expect the vendor to count CJK by character and convert — that conversion rate is a commercial term, not a technical constant, and it is worth asking about before you sign.

Which number to trust, by contract

What the counter on this site does, exactly

So you can check it against your own expectations, these are the rules as they appear in the page’s own script: words are (text.trim().match(/\S+/g) || []).length; characters are the raw string length including spaces and line breaks; characters without spaces remove every whitespace run; sentences are runs ending in a period, question mark or exclamation mark; paragraphs are blocks separated by a blank line; reading time is words divided by 225 per minute, rounded to a human-readable unit.

That is a whitespace-run counter with no markdown awareness and no CJK segmentation. It is the right default for Latin-script prose and the wrong tool for a Japanese manuscript or a markdown file with heavy formatting — and now you know which column of the table above to read instead.

Reproduce it yourself

Every figure on this page came from six lines of JavaScript, which you can paste into a browser console and run against your own text:

const words = t => (t.trim().match(/\S+/g) || []).length;
const nospace = t => t.replace(/\s/g, '').length;
const sentences = t => (t.match(/[^.!?]+[.!?]+/g) || []).length;
const cjk = t => (t.match(/[\u3040-\u30ff\u4e00-\u9fff]/gu) || []).length;

If a counter disagrees with these four lines, the difference is a definition, and definitions are negotiable in a way that bugs are not.

Frequently asked questions

Why is my count one or two higher than Word’s?

Most likely an em dash, an ellipsis written as three periods, or a footnote marker separated from its word by a thin space. Word attaches some of those to neighbours; a whitespace rule does not.

Do contractions count as one word?

Yes under every rule here: don’t is a single non-whitespace run. Some academic counting conventions expand contractions for billing, which is a contract term rather than a parsing fact.

Should I count the words in my headings?

If the limit is on body text, no; if it is a total, yes. The counters on this page do not distinguish them, so the honest answer is to state which you used.

Why does the reading time change when I add a table?

It should not, and it does not here — the estimate is purely word-count driven. Real reading time over a table is dominated by parsing the numbers, which no word counter can see.

Related tools

Word Counter

Words, characters, sentences, paragraphs and estimated reading time as you type. Free browser-based tool on this site. Runs locally, nothing is uploaded.

Word Frequency Counter

A ranked frequency list with stop-word removal — the fastest way to see what your text is actually made of.

Character Counter

With and without spaces, plus letter frequency, for hard character limits.

Case Converter

Eight letter cases, including the title-case rules that change how a headline reads.

Written and maintained by CHENYUWEN. First published 2026-10-30. If something here is wrong, tell us - corrections are dated on the page.