Skip to main content

Word Counter

Count words, characters, sentences, paragraphs and estimate reading time.

Reviewed by · Last reviewed

0
Words
0
Characters
0
No Spaces
0
Sentences
0
Paragraphs
0m
Reading Time

How to Use the Word Counter

  1. Click into the large textarea at the top of the page and paste or type your draft. The area resizes vertically, so drag the bottom-right corner if you need more room.
  2. Watch the stat cards update live. Below the textarea are six tiles: Words, Characters, No Spaces, Sentences, Paragraphs, and Reading Time. Every keystroke re-runs the counters in real time.
  3. Compare against a target. If you are writing to a Tweet limit (280), a meta description (155-160), or a 500-word blog intro, watch the relevant card and stop when you hit the mark.
  4. Edit in place. Unlike a desktop editor, there is no Save button; your text lives only in the textarea and vanishes when you close the tab. Copy the final draft back into your writing tool when done.
  5. Clear the box by selecting all (Ctrl+A or Cmd+A) and deleting, which resets every stat to zero.

What the Counter Actually Measures

The word count splits your text on any run of whitespace using the regex /\\s+/, so words are whatever non-whitespace token sits between spaces, tabs, or newlines. This matches Microsoft Word and Google Docs for plain Latin-alphabet prose. The character count reads text.length, which in JavaScript returns the number of UTF-16 code units, not user-perceived characters; sentences are counted by splitting on .!? runs and filtering empties; paragraphs are detected as blocks separated by blank lines (\\n\\s*\\n).

Reading time uses 200 words per minute, a widely cited average for adult silent reading in English. The result is rounded up with Math.ceil so a 30-word caption still reports 1 minute rather than zero. All of this runs inside a Preact component on your tab's main thread, with no fetch call, no analytics ping tied to the text, and no persistent storage. The text disappears from memory the moment you close the tab.

When and Why You'd Use It

  • Staying inside a blog editor's suggested 1,500-2,500 word sweet spot for long-form SEO content.
  • Trimming a LinkedIn post under the 3,000-character feed cutoff to avoid the "see more" click.
  • Shaping a university essay to a strict 2,000-word limit where 10 percent over or under loses marks.
  • Writing a YouTube video description that fits the 5,000-character field while hitting the 157-character preview.
  • Tuning an HTML meta description so the Google snippet does not truncate around 155-160 characters.
  • Checking that a Twitter/X thread's first post ends at 280 characters without spilling into a second tweet.

Pitfalls with Unicode, CJK, and RTL Scripts

  • Chinese, Japanese, and Korean (CJK) text does not use spaces between words, so the whitespace splitter treats entire sentences as one "word". For CJK, the character count is the meaningful metric; publishing guidelines are usually expressed in characters, not words.
  • Emoji and astral-plane characters such as U+1F600 (grinning face) are two UTF-16 code units, so "hello 😀".length reports 7, not 6. Twitter counts emoji as two characters for a similar reason.
  • Right-to-left scripts like Arabic and Hebrew count correctly because they still separate words with ASCII spaces; the renderer just flips the display order.
  • Curly quotes and em dashes count as single characters even when they were auto-converted from two ASCII characters, so the stat may drop after pasting from Word.
  • Hyphenated words like "state-of-the-art" count as one word because no whitespace separates the parts.
  • URLs and file paths count as one word too, even if they span 80 characters, which can skew averages for technical drafts.

Word Counts, Reading Speed, and Publishing Conventions

Curious how spaces, hyphens, and contractions are tokenized under the hood? See what counts as a word for a deeper breakdown of the rules.

"Word count" is not governed by any ISO or W3C standard; it is a publishing convention. The common definition, used by Word, Docs, and Grammarly, is non-whitespace tokens separated by whitespace. Academic style guides differ subtly: MLA counts hyphenated compounds as one word, Chicago tolerates either. Reading-speed benchmarks come from Brysbaert\'s 2019 meta-analysis, which places adult English silent reading at roughly 238 wpm for non-fiction; we round to 200 as a conservative estimate that works for dense text. Spoken pace is closer to 130-150 wpm, so a five-minute lightning talk targets about 700 words.

Alternatives Worth Knowing

Word and Google Docs have built-in counters (Review tab in Word, Tools - Word count in Docs) that read the same way and also expose "pages" and "lines" tied to font and margins. Scrivener and Ulysses add session targets and streaks, better suited to novelists than a one-shot browser tool. The Unix wc command is ideal for batch counting from a terminal. A browser tool like this one wins when the text is already in your clipboard and you care about social-media character caps that wc does not surface.

Frequently Asked Questions

Do hyphenated words count as one word in word count style guides?

Yes. The Chicago Manual of Style, AP, and MLA all count a hyphenated compound (well-being, state-of-the-art) as one word because no whitespace separates the parts. Microsoft Word and Google Docs follow the same rule. The hyphens do not split. For non-hyphenated open compounds (high school), the space genuinely separates two words, so they count as 2.

Do contractions count as one word in word count style guides?

Yes, in every major style guide. Contractions like don't, isn't, it's, we'd count as one word because no whitespace separates the letters. Microsoft Word, Google Docs, Grammarly, and academic counters all agree. The apostrophe does not split the word - even longer contractions like wouldn't've count as one.

Does an emoji count as a word in word count?

By the whitespace-splitting convention used by Microsoft Word, Google Docs, and this tool, an emoji surrounded by spaces counts as one word. Style guides do not usually address emoji because they predate emoji in formal writing. For character counts, emoji typically take 2 UTF-16 code units, so character-based limits (Twitter 280) charge 2 per emoji.

Does word count include punctuation as separate words?

No. Standard word counters and style guides do not count punctuation as words. "Hello, world!" has 2 words, not 4. Punctuation attached to a word (commas, periods, semicolons) does not split it. Standalone punctuation between spaces would technically split as a token by the whitespace rule, but no style guide treats it as a real word.

Does an em dash count as separate words in word count?

It depends on whether the em dash has spaces around it. With spaces around it, the dash separates tokens, so the surrounding text counts as separate words. Without spaces (this-is-a-compound or this—is—joined), the whitespace splitter treats the joined text as one word. Most style guides recommend spaces around em dashes for readability.

Does this counter match the one built into Microsoft Word or Google Docs?

For plain English prose with ASCII spaces, yes - all three use whitespace-separated tokens as words and produce the same number on most drafts. They diverge on edge cases: Word counts footnote markers and headings while some online counters do not, and Docs sometimes treats consecutive punctuation differently. For the typical 500-5000 word draft, counts agree within one or two tokens.

How accurate is the reading time estimate at the bottom?

The 200 words-per-minute baseline is intentionally conservative. Brysbaert (2019) found adult silent reading averages 238 wpm for non-fiction and 260 for fiction, while academic reading drops to 120-180 wpm. Using 200 keeps the estimate readable for most audiences without underselling dense material. For blog-post "X min read" badges you can safely round; for scripted speech, divide words by 140 instead.

Why does a line of Chinese characters show "1 word"?

The counter splits on whitespace, and well-formed Chinese, Japanese, and Korean text has no spaces between words. Each character is itself a morpheme, so Chinese editors count characters, not words. The Characters and No Spaces tiles give the meaningful number for CJK. Segmenting CJK into "words" requires a dictionary-based algorithm like Jieba, which a lightweight browser tool does not ship.

Do emoji count as one character or two?

The Characters tile uses JavaScript's <code>String.length</code>, which returns UTF-16 code units. Emoji outside the Basic Multilingual Plane - almost every modern emoji, including faces, flags, and ZWJ sequences - occupy two code units, so the counter reports 2 per emoji. A country flag like the French flag is actually two regional indicator emoji joined together, so it counts as 4. Twitter weights emoji similarly when enforcing its 280 limit.

Does my text leave the browser?

No. The textarea state lives in a Preact <code>useState</code> hook on your own tab. Stats are derived from that state on every keystroke through string operations and regex. Nothing is transmitted to our servers, and the tool does not persist text in localStorage, cookies, or IndexedDB. Closing the tab evaporates the draft; refresh also wipes it unless your browser's form restore kicks in.

What word count should a blog post, tweet, or academic essay aim for?

SEO studies (HubSpot, Backlinko, Semrush) suggest 1,500-2,500 words for competitive ranking, though reader engagement peaks nearer 1,000. Twitter/X caps free posts at 280 characters; Instagram captions allow 2,200 but favor the first 125 before truncation. Academic essays follow the rubric: a "standard" 2,000-word essay usually allows plus-or-minus 10 percent, and hard-capped theses include appendices separately. Always check the brief; word count conventions vary by publisher.

Is the sentence count reliable for non-English text?

Partly. The detector splits on <code>.!?</code>, which covers English, Spanish, French, German, and most Latin-script languages. It misses Chinese and Japanese full stops (the ideographic <code>\u3002</code>), Arabic question marks (<code>\u061F</code>), and Armenian punctuation. Abbreviations with periods like "Dr." or "e.g." also inflate the count. Treat the number as a rough guide for English drafts, not a linguistic analysis.

Why does the character count change when I paste from Word but the visible text looks identical?

Word auto-corrects straight quotes, apostrophes, and double-hyphens into curly quotes and em dashes. <code>"</code> becomes <code>\u201C</code>, <code>'</code> becomes <code>\u2019</code>, <code>--</code> becomes <code>\u2014</code>. Each smart quote or dash is one character where the original may have been two ASCII characters. Non-breaking spaces from Word (<code>\u00A0</code>) also sneak in and count as characters but not as whitespace splitters.

Can I paste text straight from a PDF and trust the count?

Usually, but watch for soft hyphens and broken line hyphenation. PDFs often insert a hyphen at line ends that becomes a literal character in your clipboard, so a hyphenated "inform-ation" counts as one long word. Some PDFs also paste with ligatures (fi, fl) as single characters instead of two. Run a find-replace to clean these before trusting the number for a publication target.

Does the counter include hidden characters such as zero-width joiners?

Yes. Zero-width joiners (<code>\u200D</code>), zero-width spaces (<code>\u200B</code>), and left-to-right marks (<code>\u200E</code>) all occupy code units, so they bump the character count even though the text looks identical. If your number seems off by a few, paste the content into a hex-dump or inspect-character tool. Translators and localizers run into this constantly.

How are paragraphs detected?

A paragraph is a block separated from the next by at least one blank line - formally, two consecutive newlines with optional whitespace between them, matched by <code>/\n\s*\n/</code>. Hard line breaks inside a block (Shift+Enter in a rich editor) do not start a new paragraph, and bullet lists where each item is one newline apart collapse into a single paragraph.

Learn more

More Text Tools