How to Count Words, Characters, and Reading Time Accurately
Quick Answer
A 'word' is a maximal run of non-whitespace characters in English text; CJK characters are often counted as one word each. Characters may include or exclude whitespace. Reading time β words / 200 (adult average) or words / 250 (fast). Use our Word Counter for instant, accurate counts in your browser.
Introduction
Word and character counting sounds trivial but has real edge cases: hyphenated words, CJK characters (which have no spaces), contractions, markdown syntax, and HTML tags. Different tools count differently, which matters when you are hitting a strict limit β a 280-character tweet, a 160-character meta description, or a 500-word essay. This guide defines the conventions and shows how to count consistently.
Step by Step
-
Define what counts as a word
In space-delimited scripts (English, French, German), a word is a maximal sequence of non-whitespace characters. 'state-of-the-art' is one word by this definition; some counters split on hyphens and count it as four. Pick a definition and document it. For CJK (Chinese, Japanese, Korean) text with no spaces, each character is typically counted as one word.
-
Define character counting modes
Characters-with-spaces includes every character including spaces and newlines. Characters-without-spaces excludes whitespace. For a tweet limit (280), Twitter counts code points (not bytes) and weights CJK and emoji higher β use the platform's own counter for exact limits. For a meta description (160), count characters including spaces.
-
Estimate reading time
Average adult reading speed is 200β250 words per minute (wpm). Reading time = words / wpm, rounded up. For 600 words at 200 wpm: 3 minutes. For technical content, use 150β200 wpm; for skimmable marketing copy, 250β300 wpm. Always show the formula so readers can adjust.
-
Count sentences and paragraphs
Sentences are typically split on ., !, ? followed by whitespace or end-of-text β but abbreviations (e.g., i.e., Dr.) cause false splits. Paragraphs are separated by one or more blank lines. Use these counts to compute average sentence length (aim for 15β20 words for readable prose) and paragraph density.
-
Hit platform-specific limits
Paste your draft into the Word Counter and watch the counts update live. Trim to fit: 280 for a tweet, 160 for a meta description, 500 for a college essay excerpt, 65 for an SEO title. The counter shows all of these at once so you can target the right limit.
Examples
A simple English sentence
Input: The quick brown fox jumps over the lazy dog.
Output: 9 words, 44 characters (with spaces), 35 characters (without spaces), 1 sentence, ~0.05 min reading time
Hyphenated and contracted words
Input: It's a state-of-the-art solution, isn't it?
Output: Counted as 7 words by whitespace split: It's | a | state-of-the-art | solution, | isn't | it? (some counters report 9 by splitting hyphens)
Chinese text (CJK, no spaces)
Input: δ½ ε₯½δΈηοΌθΏζ―δΈδΈͺζ΅θ―γ
Output: 10 characters; typically counted as 10 'words' for CJK, or 1 word by whitespace split β choose a CJK-aware counter for accurate results
Reading time for a 1200-word article
Input: 1200 words at 200 wpm
Output: 1200 / 200 = 6 minutes (average); 1200 / 250 = 4.8 β 5 minutes (fast reader)
Common Problems
- Hyphen and contraction inconsistency: 'state-of-the-art' is 1 word by whitespace, 4 by hyphen split. Document your rule β academic word counts usually split on hyphens, web counters usually do not.
- CJK miscounting: Chinese/Japanese text has no spaces, so a whitespace-based counter reports the whole paragraph as 1 word. Use a CJK-aware counter that treats each CJK character as a word, or counts them per the target platform's rule.
- Counting markdown/HTML syntax as words: '# Heading' counts as 2 words if you strip the #, 1 if you do not. Strip markup before counting for accurate prose word counts; keep it for raw character counts.
- Emoji and astral characters: 'π' is one code point but two UTF-16 code units (a surrogate pair). Count by code points (Array.from(str).length) not by str.length to match how users perceive characters.
Tips
- For SEO, count the rendered text (after stripping HTML and expanding entities) β search engines index the rendered text, not the source.
- Aim for an average sentence length of 15β20 words for general prose; above 25 becomes hard to read. The Word Counter shows average sentence length so you can spot run-ons.
- For reading-time estimates, disclose the wpm you used (e.g. '~3 min read at 200 wpm') so readers know the assumption β technical readers read slower, skimmers faster.
- Use our Case Converter to normalize text before counting if case differences are causing inconsistent results across tools.