What Counts as a Word?
"Count the words" sounds trivial until you consider edge cases. How do you handle:
- Hyphenated words? Is "well-known" one word or two?
- Contractions? Is "don't" one word or two?
- URLs? Is
https://example.com/pageone word or four? - Numbers? Is "1,000,000" one word?
- Whitespace-only separators? Em dashes, non-breaking spaces?
The dominant convention (used by Microsoft Word, Google Docs, and most word processors) treats a word as any sequence of characters between whitespace boundaries. Hyphens within words are treated as part of the word; hyphens surrounded by spaces are treated as separate tokens. URLs count as one word each.
Character Counting
There are two character counts that matter:
Characters with spaces. Total count of all characters including whitespace and punctuation. Relevant for Twitter/X (280 character limit), SMS (160 character limit), and database field constraints.
Characters without spaces. Only non-whitespace characters. Relevant for some form field limits and certain East Asian text contexts where words are not space-separated.
Byte count vs. character count. ASCII characters are 1 byte. Unicode characters can be 1–4 bytes in UTF-8. A 100-character string might be 100 bytes (all ASCII) or 400 bytes (all 4-byte Unicode). This matters for database storage and API limits that are specified in bytes.
Line and Paragraph Counting
Lines. Counted by newline characters (\n). A line with content followed by a blank line is 2 lines (including the blank). Useful for code (lines of code), poetry, and legal documents.
Paragraphs. A paragraph is conventionally a block of text separated from other blocks by one or more blank lines. More ambiguous than lines — different editors define it differently.
Sentences. Counting sentences requires detecting sentence boundaries: ., !, ?. Abbreviations (Dr., e.g., etc.) and decimal numbers create false positives. Most sentence counters are approximations.
Readability Scores
Readability formulas estimate how easy a text is to read, typically by combining word length and sentence length:
Flesch Reading Ease. Outputs a score from 0 (very difficult) to 100 (very easy). Scores above 70 are considered easy; below 30 are very difficult.
Flesch-Kincaid Grade Level. Outputs a US school grade level (e.g., grade 8 means a typical 13–14-year-old can read it). Calculated from average sentence length and average syllable count per word.
Gunning Fog Index. Estimates years of formal education needed to understand the text on first reading.
These formulas are heuristics based on English text. They do not measure actual comprehension difficulty, and they are meaningless for code, poetry, or non-English text.
When Text Metrics Matter
Content marketing. Blog posts aimed at a general audience should target a reading level that matches the audience. Technical documentation for developers can be more complex.
Legal and regulatory writing. Many jurisdictions require government documents and financial disclosures to meet minimum readability standards.
Social media. Platform character limits (Twitter, LinkedIn captions, SMS) make character count a hard constraint.
SEO. Meta descriptions should be under ~160 characters. Title tags under ~60 characters. These are practical guidelines based on display limits.
Try It
The Word Counter on Syntaxly counts words, characters, sentences, and paragraphs in real time as you type.