Last updated
What Does the Word Counter Measure?
The Word Counter provides comprehensive text statistics: word count, character count (with and without spaces), sentence count, paragraph count, reading time, and keyword frequency. It handles all Unicode text correctly and applies consistent counting rules for accurate results.
Word Count Rules
What counts as one word:
hello → 1 word
well-known → 1 word (hyphenated = one word)
don't → 1 word (contraction = one word)
C++ → 1 word (programming term)
2024 → 1 word (numbers count)
U.S.A. → 1 word (abbreviation)
e-mail → 1 word (hyphenated)
What does NOT count:
(empty lines) → 0 words
--- → 0 words (separator)
... → 0 words (ellipsis only)
Character Count Variants
Input: "Hello, World! (2024)"
Total characters (with spaces): 20
H-e-l-l-o-,-space-W-o-r-l-d-!-space-(-2-0-2-4-)
Characters without spaces: 18
H-e-l-l-o-,-W-o-r-l-d-!-(-2-0-2-4-)
Characters without punctuation: 14
H-e-l-l-o-space-W-o-r-l-d-space-2-0-2-4
Letters only: 10
H-e-l-l-o-W-o-r-l-d
Use cases:
Twitter/X: 280 characters (with spaces)
SMS: 160 characters (with spaces)
Meta title: 60 characters (with spaces)
Meta description: 160 characters (with spaces)
Reading Time Estimation
Formula: reading_time = word_count / words_per_minute
Reading speeds:
Slow reader: 150 wpm
Average adult: 238 wpm (used as default)
Fast reader: 400 wpm
Speed reader: 700+ wpm
Examples:
Blog post (500 words):
Average: 500 / 238 = 2.1 min → "2 min read"
Article (1,200 words):
Average: 1200 / 238 = 5.0 min → "5 min read"
Long-form (3,000 words):
Average: 3000 / 238 = 12.6 min → "13 min read"
Book chapter (5,000 words):
Average: 5000 / 238 = 21.0 min → "21 min read"
Research: Displaying reading time increases article click-through
rates because readers can make an informed decision.
Sentence Count
Input: "Dr. Smith went to Washington D.C. He arrived at 3 p.m.
The meeting was great! Was it? Yes, it was."
Sentence count: 5
Sentence boundaries detected:
1. "Dr. Smith went to Washington D.C."
(periods in "Dr." and "D.C." are NOT sentence endings)
2. "He arrived at 3 p.m."
(period in "p.m." is NOT a sentence ending)
3. "The meeting was great!"
4. "Was it?"
5. "Yes, it was."
Average sentence length: 6.8 words
Keyword Frequency Analysis
Input: "JavaScript is a programming language. JavaScript is used
for web development. Web development with JavaScript is popular."
Top keywords (stop words removed):
Rank Word Count Frequency
---- ---- ----- ---------
1 javascript 3 27.3%
2 development 2 18.2%
3 web 2 18.2%
4 programming 1 9.1%
5 language 1 9.1%
6 popular 1 9.1%
7 used 1 9.1%
Stop words filtered out:
is, a, for, with (common words with no SEO value)
Use for SEO: keyword density of 27.3% for "javascript"
is high — consider varying with synonyms.
Platform Word/Character Limits
Platform Limit Type
-------- ----- ----
Twitter/X 280 characters
LinkedIn post 3,000 characters
Instagram caption 2,200 characters
Facebook post 63,206 characters
YouTube title 100 characters
YouTube description 5,000 characters
Meta title 60 characters (SEO)
Meta description 160 characters (SEO)
Google Ads headline 30 characters
Google Ads description 90 characters
Amazon title 200 characters
eBay title 80 characters
Academic:
Abstract: 150–250 words (typical)
Short essay: 500–800 words
Standard essay: 1,000–2,000 words
Research paper: 3,000–8,000 words
Thesis: 10,000–100,000 words
Word Counter in Code
// JavaScript — comprehensive text statistics
function analyzeText(text) {
const words = text.trim().split(/\s+/).filter(w => w.length > 0);
const sentences = text.split(/[.!?]+/).filter(s => s.trim().length > 0);
const paragraphs = text.split(/\n\s*\n/).filter(p => p.trim().length > 0);
return {
words: words.length,
characters: text.length,
charactersNoSpaces: text.replace(/\s/g, '').length,
sentences: sentences.length,
paragraphs: paragraphs.length,
readingTime: Math.ceil(words.length / 238), // minutes
avgWordsPerSentence: (words.length / sentences.length).toFixed(1)
};
}
const stats = analyzeText("Hello world. This is a test.");
// { words: 6, characters: 28, sentences: 2, readingTime: 1, ... }
// Python
import re
def word_count(text):
words = re.findall(r'\b\w+\b', text)
return len(words)
def reading_time(text, wpm=238):
words = word_count(text)
minutes = words / wpm
return f"{round(minutes)} min read"
Common Use Cases
- Writers checking word count for assignment or submission requirements
- Bloggers estimating reading time to display on articles
- SEO professionals checking keyword density
- Content managers ensuring posts meet platform character limits
- Students verifying essay length before submission
- Copywriters staying within ad character limits
Full Statistics Example
Input text:
"The quick brown fox jumps over the lazy dog.
This sentence has five words.
A new paragraph begins here with some additional content
to demonstrate the paragraph counting feature."
Statistics:
Words: 34
Characters (with spaces): 178
Characters (no spaces): 148
Characters (no punct): 143
Sentences: 3
Paragraphs: 2
Lines: 4
Reading time:
Average reader (238 wpm): ~9 seconds
Slow reader (150 wpm): ~14 seconds
Fast reader (400 wpm): ~5 seconds