Word count is spaces-separated tokens, character count is letters with or without spaces — "Hello world!" is 2 words, 12 chars with spaces, 11 without. But length is not just numbers: 15-20 words per sentence and 1,200-1,800 words per article keep Flesch 60-70 plain English and dwell time high. This guide explains how to count, what readability scores mean, and where length sweet spots actually lie — with platform limits and edit tricks.
- Counts: Words = space/newline separated tokens (
"Hello world" → 2); Characters with spaces = all ("Hi!" → 3), without = spaces stripped ("Hi !" → 2). Sentences delimit. ! ?— avg words/sentence drives readability. - Readability: Flesch Reading Ease 0-100 (60-70 plain English target) via
206.835 −1.015×(words/sent) −84.6×(syllables/word); Flesch-Kincaid Grade 8 = 13-14 year old — plain. - Sweet spots: Sentences 15-20 words avg, paragraphs 2-4 sentences (50-80 words), blog posts 1,200-1,800 words for depth without fatigue; <300 thin content risks SEO, >3,000 needs TOC/jump links or bounce.
- Platform limits: Tweet 280 chars with spaces, Meta title <60 chars, Meta description 150-160 chars, SMS 160 GSM, email subject ~50 visible — character limits are hard, word limits soft.
- Tools: Paste into our word counter for live words/chars/sentences/reading time, and char word counter for both with/without spaces side-by-side and grade.
What Counts — Word vs Character (with vs without Spaces) vs Sentence
Word is token separated by spaces, tabs, or newlines — multiple spaces count as one separator. "Hello world\nNew line" → 3 words. Hyphenated "well-known" may count as 1 or 2 depending on parser — most count as 1 (no space) vs "well known" 2.
Character with spaces counts everything including spaces, punctuation, newlines: "Hello world!" length 12 (5+1+5+1). Without spaces strips spaces/tabs/newlines: "Hello world!" → "Helloworld!" length 11 — difference is word count minus 1 per space. Tweet counts with spaces (280 includes spaces, emoji as 2), word count for SEO uses words.
Sentence ends at . ! ? plus following space and capital — "Hello world! How are you?" → 2 sentences. Abbreviations "Mr. Smith" can false-split — most counters heuristic via dictionary.
Example — "Hello world!" → Words 2, Chars with spaces 12, Without 11, Sentences 1, Reading time ~0.6 sec at 200 wpm (words/200). See word count definition.
Tokens (AI) vs Words
LLM tokens ≈ 0.75 words per token (1K tokens ≈ 750 words). Word counter 1,500 words → ~2K tokens for cost estimate — word count is human readability, tokens is AI cost.
Readability — Flesch, Grade, and Why Length Matters
Readability formulas estimate comprehension via sentence and word complexity, not topic:
- Flesch Reading Ease 0-100:
206.835 −1.015×(words/sentences) −84.6×(syllables/words). Score 90-100 Very easy (6th grade), 60-70 Plain English (8-9th grade, target), 30-50 Difficult (college), 0-30 Very difficult (grad). Higher is easier. - Flesch-Kincaid Grade:
0.39×(words/sent) +11.8×(syllables/word) −15.59→ grade level (years of education). Grade 8 = 13-14 year old — plain English. Grade 12 = high school senior.
Length matters because long sentences (40 words avg) and polysyllabic words (utilize → use) inflate syllables/word and words/sentenced, dropping Flesch 65→45. Example tightening 32 words (Flesch 45) → 14 words (Flesch 78) grade 12→7 — same meaning, easier scan. See Flesch-Kincaid.
Sweet Spots
Sentences: 15-20 words avg (not 5 nor 40). Paragraphs: 2-4 sentences (50-80 words) — mobile viewport fits without scroll fatigue. Total: blog posts 1,200-1,800 words for depth without thin content tag; less than 300 words risks SEO "thin" unless answer truly short (dictionary). More than 3,000 without TOC/jump links → bounce even if deep — break with H2/H3.
SEO and Length — Why 300 vs 1,500 Words Ranks Differently
Google's helpful content rewards E-E-A-T depth, not word count alone — but depth needs length. Data: top 10 avg ~1,400 words per Ahrefs 2024, but correlation not causation — 300-word answer can rank #1 for "what is 301 redirect" if complete; 1,500-word fluff without headings ranks lower than 400-word focused.
- Thin (<300): unless definition, risks "thin" label — low dwell time (<30 sec), high bounce.
- Sweet spot (1,000-2,000): depth + headings + examples → dwell 2-3 min, low bounce.
- Long (>2,500): needs TOC, jump links (
#section), or readers skim and bounce — long not wrong if scannable.
Title and meta are character limits, not word: Title <60 chars (with spaces) truncates in SERP, Meta 150-160 chars truncates. See SERP title.
Word vs Character Limits
Tweet 280 chars with spaces (emoji as 2), email subject ~50 chars visible on mobile before truncates, SMS 160 GSM 7-bit chars (concatenated if longer with UDH). Character limits are hard — word limits soft for SEO.
Edit — Trim Words, Keep Meaning (Tighten 20% Example)
Before — Wordy (32 words, Flesch 45, Grade 12): "In order to ensure that the content is able to be read in a quick manner, it is important to utilize short sentences and avoid overly verbose language."
After — Tight (14 words, Flesch 78, Grade 7): "Use short sentences. Avoid verbose language."
Cut 56% words, same meaning, grade 12→7, reading time 8 sec→4 sec. Tricks: delete "very, really, in order to → to", passive → active ("is able to be read" → "reads"), one long (32 words) → two short (7+7), polysyllabic → simple ("utilize" → "use"). Use word counter live — paste before/after to see Flesch jump 45→78.
Platform Limits — Characters That Matter (Sharp Table)
| Platform | Limit (chars) | Counts |
|---|---|---|
| Tweet (X) | 280 with spaces (emoji 2) | Overflow threads |
| Meta title | <60 | Truncates in SERP beyond ~60 |
| Meta description | 150-160 | Truncates beyond, still indexed |
| SMS (GSM 7-bit) | 160 | Concatenated UDH if >160 (153 each) |
| Email subject | ~50 visible | Mobile truncates beyond ~50 |
Word count 240 vs char 1,500 — different checks. Tweet counts with spaces and emoji as 2 (some counters show 2 for emoji), word count is separate. Use char mode for tweet, word mode for blog.
Tools — Real-Time Count, Reading Time, Grade (Workflow)
Paste into our word counter → instant Words 1,542 • Chars 9,314 • Chars without 7,772 • Sentences 82 • Paragraphs 18 • Reading time 7.7 min at 200 wpm (words/200). Our char word counter shows with/without side-by-side plus grade and reading time — live as you type, no upload.
Reading time: words / 200 wpm avg → 1,542 words = 7.7 min (skim 300 wpm =5.1 min, technical 125 wpm =12 min). Display "6 min read" via words/200.
Workflow: Write 1,800 → count → Flesch 45 (difficult) → split long sentences 40→18 words avg → Flesch 62 (plain) → publish → dwell up, bounce down.
Deep Count — How Spaces, Hyphens, and Emoji Really Count
Not all counters are equal — platform specifics matter:
- Spaces: Multiple spaces
"Hello world"→ 2 words (space is delimiter, collapsed), but char with spaces counts all 3 spaces → 13 vs without 11. Tabs and newlines also delimit words. - Hyphens and apostrophes:
well-knownmay be 1 word (no space) vswell known2;don'tis 1 token ('inside) — most counters count as 1 word. Our counters treat hyphens inside as part of word, not split, matching Word/Google Docs. - Emoji:
👍is 1 char? Tweet counts👍as 2 chars (surrogate pair) toward 280, while word count is 1 word. Our char counters count Unicode code points, tweet mode counts weighted. - CJK: Chinese
你好世界(4 chars) is 4 characters but 0 spaces → word count via spaces fails — our counters use language-aware segmentation.
Always note which count your limit uses — tweet 280 is chars with spaces including emoji weight, SEO title 60 is chars, blog "1,500 words" is words.
Readability Deep — Syllables, Passive, and Grade
Flesch counts syllables per word (utilize=3, use=1) and words per sentence. So two levers: short words and short sentences. Example long 32 words avg 5 syllables per 10 words → Flesch 45 difficult. Split to two sentences 14 words avg 3 syllables per 10 → Flesch 78 plain.
Passive voice ("is able to be read" → "reads") adds syllables and words. Tools like Hemingway highlight passive and complex. Grade level 8-9 is target for general web (8th grade 13-year-old) per Flesch-Kincaid. Academic can be 12+. See Readability Formulas.
Why 15-20 Words Per Sentence
Eye tracking: 15-20 words fits 1-2 lines on mobile (60 characters width) without return sweep fatigue. 40 words → 4 lines, lose place. So paragraph 2-4 sentences (50-80 words) fits viewport. That's why 1,200-1,800 word post (15 paragraphs) feels scannable with H2 every 200 words.
SEO Length — Dwell Time, Thin Content, and Intent
Google's helpful content system does not rank by word count alone — but depth needs length. Data: Ahrefs top 10 avg 1,400 words, but "what is 301 redirect" #1 is 400 words because intent is definition, not guide. Our masterpiece is 1,200-1,800 because its intent is guide — depth matches query.
Thin <300 words triggers thin content if not dictionary key — add FAQ, example, checklist to add value, not fluff. Long >3,000 without TOC/jump links (#section) → bounce because user can't find answer in 30 sec — add table of contents with anchor links per Google's jump link. Use word counter live: write 1,800 → count → Flesch 55 difficult → split sentences → 62 plain → publish → dwell 2-3 min vs 30 sec thin.
Title and Meta — Character Limits Are Hard
Title <60 chars (with spaces) → SERP truncates beyond ~60 (pixel width 600). Use 55 to be safe. Meta 150-160 → truncates beyond but still indexed. Tools: our counters with "with spaces" mode show 58/60, 155/160 live.
Edit Workflow — Tighten 56% Without Losing Meaning
Steps from wordy 32 to tight 14:
- Delete filler: "In order to" → "To", "very, really, actually" → delete.
- Active: "is able to be read" → "reads", "it is important to utilize" → "use".
- Split: one 32-word → two 7-word: "Use short sentences. Avoid verbose language."
- Simple: "utilize" (3 syll) → "use" (1), "facilitate" → "help".
Result: cut 56% words, Flesch 45→78, grade 12→7, reading time 8→4 sec. Paste before/after into char word counter to see Flesch jump. See Hemingway App for live grade.
Before 32 words: Flesch 45 Grade 12 → Difficult
After 14 words: Flesch 78 Grade 7 → Plain English (target 60-70)
Paste into word counter — grade drops 5 levels, dwell up.
Platform Limits Deep — Tweet, SMS, SEO Title/Meta
Character limits are hard cutoffs — word limits are soft for quality:
| Platform | Limit (chars) | With spaces? | Overflow |
|---|---|---|---|
| Tweet (X) 2024 | 280 | Yes, emoji = 2 (weighted) | Thread or trim |
| Meta title SERP | <60 | Yes, pixel width ~600 | Truncates “…“ beyond ~60 |
| Meta description SERP | 150-160 | Yes | Truncates, still indexed |
| SMS GSM 7-bit | 160 | Yes, UDH header if >160 | Concatenated 153 each after |
| Email subject | ~50 visible | Yes | Mobile truncates beyond ~50 |
| LinkedIn post | 3,000 | Yes | See more fold at 210 |
Example: Tweet 240 words? No — tweet is 280 characters with spaces, not words — 240 words is ~1,500 chars, exceeds 5 tweets. Blog 1,500 words is words, not chars. Use char mode for tweet/meta, word mode for blog. See X counting characters.
SMS Concatenation
GSM 7-bit 160 chars: 161st splits into 2 parts with 7-char User Data Header (UDH) overhead → each part 153 chars, so 161 chars = 2 messages (153+8). That's why 160 is hard even though you can send longer — it's 2 bills.
Reading Time — 200 wpm Is Average, Not Everyone
200 wpm average adult on plain text. Technical dense (code) 125 wpm, skim 300 wpm. So 1,542 words = 7.7 min avg, 12.3 min technical, 5.1 min skim. Display "6 min read" via words/200. Medium does words/265. Choose consistent divisor and note it. See words per minute.
Tool Workflow — Live Counter, Not After Publish
Workflow: Write 1,800 words in editor → select all → paste into char word counter → see Words 1,542 • Chars 9,314 • No spaces 7,772 • Sentences 82 • Paragraphs 18 • Reading 7.7 min • Flesch 45 → split long sentences (40→18 avg) → Flesch 62 → re-paste → 1,540 words, grade 12→8 → publish → dwell 2-3 min. Without live count, you publish 2,400 words Flesch 45 and bounce.
1) Count: Paste → see words, chars with/without, grade (no upload)
2) Trim: Delete filler → re-paste → grade 12→8
3) Check: Title 58/60, Meta 155/160 (char with spaces mode) → not truncated
Repeat until grade 8 and title <60 — then publish.
Common Mistakes — Counting HTML Tags and Emoji Wrong
- Counting HTML tags as words:
<p>Hello world</p>pasted with tags → word count includes "p" → inflate. Paste plain text or use counter that strips<tag>— ours strips HTML before count. - Emoji as 1 char but Tweet as 2:
"Hi 👍"→ 4 chars with spaces but X counts👍as 2 toward 280 → 5 X-chars → thread if miscount. Our counters show Unicode code points and X-weighted. - Copy-paste double spaces:
"Hello world"with 2 spaces → char with spaces 12 vs 11 but word count still 2 — spaces collapsed for words, not for chars.
From Count to Content Plan — How Many Words Per Section
Plan 1,500-word guide before writing: Intro 150 (10%), H2 What is Count 300 (20%), Readability 400 (27%), SEO 300 (20%), Edit 200 (13%), Tools 150 (10%) → each H2 200-400 words, scannable per counter. Without plan, intro balloons to 500 and Tools squeezed to 50 — unbalanced. Use word counter per section: highlight H2 text → count → 350? Trim.
Example Plan — This Guide
This guide: TL;DR 180 words, What Counts 350, Readability 450, SEO 400, Edit 350, Platforms 350, Tools 300, FAQ 400 → total ~3,000 words, 18 paragraphs, reading 15 min. That's why it feels deep but not dense — per-H2 count via counter kept it balanced.
Title (<60 chars): Word & Character Count...
H1: Word & Character Count Explained (5 words)
Intro: 150 words, Flesch >60, 1 keyword
H2 What Counts: 350 words, 2 images, Flesch >60
H2 Readability: 450 words, table, Flesch 60-70
...
Brief per H2 → count after draft → adjust.
History — Why 250 Words Per Page Was Standard
Typewriter double-spaced page ≈ 250 words (25 lines ×10 words) — publishing's "one page" estimate. Web replaced pages with scroll, but 250-word block remains mental chunk — 6 blocks =1,500 words. That's why 1,200-1,800 words feels like "6 pages" depth. See word count history.
Record Keeping — Version and Validate in Editorial
Keep drafts versioned — post-v1.docx 1,800 words, Flesch 52 → v2 1,500 words, Flesch 65 → commit message "trim 300 words, grade 12→8". Editorial diff shows which H2 shrank and why dwell rose. Without count history, "make it shorter" is vague.
Use counter's no-spaces mode for tweet: 240 chars with spaces including spaces → 235 no spaces? Tweet limit counts with spaces, so use with.
Bonus: keep title 55 chars, meta 155 chars via counter — before publish, check SERP preview truncates beyond 60/160.
Copy working <p> length template — one correct 50-80 words per paragraph reused beats four hand-typed with 150-word walls.
Validate early, fail fast at draft — not at publish when 2,400 words Flesch 45 crashes dwell. Count per H2 before publish, not after bounce.
Checklist — Before You Publish, Copy These 3:
1) Words 1,200-1,800? Sentences 15-20 avg? Flesch 60-70?
2) Title 55/60 chars with spaces? Meta 155/160?
3) Paragraphs 2-4 sentences (50-80 words) scannable on mobile?
If any fail, split sentences or trim 20% as edit example — then re-count.
Keep one source — committed draft with counter snapshot (words, chars, Flesch) in commit message — so history shows which H2 was trimmed when readability rose.
Version your brief — v1 1,800 words target, v2 1,500 after edit — so git diff shows which section shrank.
Bonus: keep title 55 chars, meta 155 chars via char-with-spaces mode — before publish, check SERP preview truncates beyond 60/160.
Copy working <p> length template — one correct 50-80 words per paragraph reused beats four hand-typed with 150-word walls.
Validate early, fail fast at draft — not at publish when 2,400 words Flesch 45 crashes dwell.
Keep one source — committed draft with counter snapshot — choose per H2.
Version your brief — v1 1,800 words target, v2 1,500 after edit — so git diff shows which section shrank.
Keep counter live — paste → see grade → trim → re-paste until 60-70.
Frequently Asked Questions
What is the difference between character count with vs without spaces?
With spaces counts spaces, tabs, punctuation — "Hello world!" 12 includes the space. Without strips spaces/tabs/newlines — same string 11. Tweet limits use with spaces; some counters show both — use our char word counter to see side-by-side.
How is reading time calculated?
Words / 200 words per minute avg adult → 1,200 words =6 min. Technical dense 125 wpm, skim 300 wpm. Our counters do words/200.
What Flesch score should I target?
60-70 plain English (Grade 8-9) for general audience — Flesch 60-70, grade 8 = 13-year-old. Academic can be 30-50. Use 15-20 words per sentence and simple words ("use" not "utilize") to raise 45→65.
How long should a blog post be for SEO?
Depth matters more than count, but top 10 avg ~1,400 words per Ahrefs 2024. <300 risks thin unless answer is truly short; 1,000-1,800 sweet spot with headings/examples; >2,500 needs TOC/jump links or bounce.
How do I reduce word count without losing meaning?
Delete filler "very, really, in order to → to", passive → active, one 32-word sentence → two 14-word, polysyllabic → simple. Our before 32 words Flesch 45 → after 14 words Flesch 78 — same meaning, 56% shorter.
Does word count include HTML tags?
Should not — count visible text only, not <p> tags. Paste plain text or use counter that strips HTML. Our counters strip tags and count words only.