Word Counter

Count words, characters, sentences, paragraphs and lines, estimate reading and speaking time, and list the most common words.

Overview

A word counter measures a piece of writing: how long it is, how it is broken up and roughly how long it takes to get through. The figures matter where a limit does, and each limit measures something different: an abstract is capped in words, a meta description in characters, a talk in minutes.

Web interface

Type or paste into the field. Every figure updates as you type: words, characters with and without spaces, sentences, paragraphs, lines, reading and speaking time, the average words per sentence and characters per word, the longest word and the five most common words. The dice in the field loads a random example text, Clear empties it. Copy, JSON and CSV take the figures with you; see Copy, JSON and CSV.

What counts as what

FigureCounted as
Wordsanything between runs of whitespace, so don't, state-of-the-art and example.com are one word each
Characterscode points, so an emoji is one
Characters without spacesthe same, without spaces, tabs and line breaks
Sentencesruns of text ending in ., ! or ? followed by a space, a line break or the end, or in , or
Paragraphsblocks separated by an empty line
Linesevery line break starts a line, so a text ending in one has an empty last line
Longest wordmeasured in letters and digits, shown without the punctuation around it
Most commonthe five most frequent words of three letters or more, ignoring case; figures are left out, and ties keep the order they first appeared in

For the example that opens with The quick brown fox jumps over the lazy dog., two paragraphs of four sentences on three lines, the tool gives 39 words, 210 characters, 171 without spaces, 4 sentences, 2 paragraphs and 3 lines. The longest word is keyboards with 9 characters, and the most common are the 5 times, then fox, dog and and twice each.

Sentences are counted by punctuation, not by meaning. An abbreviation such as e.g. ends a sentence when a space follows it; the dots in 3.14, example.com or an email address do not, because no space follows them.

Text is normalised before it is counted, so é is one character and the same word whether it was typed as one character or arrived as e and a separate accent, as in text copied from macOS file names. A combined emoji such as a family is several code points joined together and counts as several; other systems count it differently again.

Japanese, Chinese, Thai and a few other scripts put no spaces between words, so those runs are split by the browser's own word segmenter. Its dictionaries differ: for the Japanese example, Chrome and Safari count 8 words and Firefox 6. A browser without a segmenter counts each character of those scripts as a word.

Times and averages

FigureHow it is worked out
Reading timewords at 200 a minute, the usual figure for silent reading
Speaking timewords at 130 a minute, a measured speaking pace
Average words per sentencewords divided by sentences, to one decimal
Average characters per wordletters and digits divided by words, to one decimal, so hello, counts as five

A time under a minute is given in seconds, anything longer in whole minutes: the 39-word example reads in 12 seconds and is spoken in 18, a text of 1,000 words takes 5 minutes to read and 8 to speak. Both are averages applied to a word count and say nothing about how hard the text is.

Copy, JSON and CSV

Copy puts the figures on the clipboard as plain text, one per line, such as Words: 39. JSON downloads word-count.json, an object with the keys words, characters, charactersNoSpaces, sentences, paragraphs, lines, readingTime, speakingTime, averageWordsPerSentence, averageCharactersPerWord, longestWord and mostCommon, a list of word and count. CSV downloads word-count.csv with the columns metric and value, every field quoted. All three are switched off while the field is empty.

No API

There is no API for this tool. On the command line, wc -w counts words, split on whitespace alone, and wc -m counts characters.

Privacy

Nothing leaves the browser. The text is counted on the page, nothing is stored between visits, and the downloads are made on the page too.