Private word counter & text-analysis lab
Count words, characters, sentences and paragraphs as you type — plus readability scores, keyword density, and reading time. Everything runs in your browser, so your text never leaves your device.
Syllable counting is heuristic, so scores are approximate — treat them as guidance, not gospel. Formulas: Flesch Reading Ease, Flesch–Kincaid Grade, Gunning Fog, SMOG, Coleman–Liau, ARI.
| # | Word | Count | Density |
|---|
| # | Phrase | Count |
|---|
—
—
# / HTML <h1–h6>)Live character budget for each platform, based on the current text length ( characters).
Heuristic checks on style and clarity. Click any flagged item to jump to it in your text. These are suggestions, not rules — good writing breaks them on purpose.
Save a named version of your text and restore it later. Stored only in this browser.
Transforms apply to the editor text. Every change is undoable (Ctrl/Cmd+Z).
Every word counter gives a slightly different answer for the same text. That is not a bug in any of them — it is a disagreement about what a “word” is. Below is exactly how WordLab decides, so you can reconcile its number with Microsoft Word, Google Docs, or whatever your editor or client uses.
WordLab splits your text on whitespace. Any unbroken run of characters between spaces, tabs, or line breaks counts as one word. Consecutive spaces collapse, and leading or trailing whitespace is ignored, so the count never inflates from stray formatting. In practice:
state-of-the-art — 1 word. Hyphenated compounds stay whole.don't and Sarah's — 1 word each. Apostrophes never split a word.$1,200.50 and 2026-04-01 — 1 word each.https://example.com/page — 1 word. A URL is one unbroken run.rock — roll — 3 words, because the em dash is surrounded by spaces.
Written as rock—roll it becomes 1 word.| Cause | What happens |
|---|---|
| Hyphens & dashes | Some tools treat well-known as two words. WordLab and most word processors treat it as one. A hyphen-heavy document can differ by several percent. |
| What is in scope | Word processors let you include or exclude footnotes, endnotes, and text boxes, and typically leave headers and footers out of the headline count. WordLab counts exactly the text in the box — nothing hidden. |
| Numbers & symbols | A few tools skip standalone numerals or symbols as “not words.” WordLab counts them, because in a word budget they occupy real space. |
| Tracked changes | With markup shown, deleted text may still be counted. Accept or hide revisions before comparing. |
| Languages without spaces | Chinese, Japanese, and Thai do not separate words with spaces, so whitespace splitting badly undercounts them. For these scripts use the character count — it is the metric publishers actually use. |
Character limits are where precision matters most, because a platform will truncate you without asking. WordLab reports characters with spaces (what X, SMS gateways, and meta-description checkers measure) and without spaces (what some agencies and academic limits use). Spaces are characters: a 280-character post is 280 including every space.
Emoji deserve a warning. Most systems measure text in UTF-16 code units, and a single emoji such as 🚀 occupies two of them. So one emoji usually costs you two characters against a limit, and flag or skin-tone emoji can cost more. WordLab shows the raw character count and the true code-point count separately, so you can see the gap before a post gets cut off.
WordLab estimates reading time at 220 words per minute and speaking time at 130 words per minute. Those are deliberate, conventional defaults rather than universal truths. Silent reading of general prose typically lands somewhere around 200–260 wpm; dense technical or legal material runs considerably slower, and skimming runs far faster. Spoken delivery is slower than reading by design — 130 wpm is a measured presentation pace that leaves room for pauses and emphasis, whereas rapid conversation can exceed 150.
| Length | ≈ Reading | ≈ Speaking |
|---|---|---|
| 300 words | 1½ min | 2½ min |
| 600 words | 3 min | 4½ min |
| 1,000 words | 4½ min | 7½ min |
| 2,000 words | 9 min | 15 min |
Treat these as planning figures. If you are timing a talk, read it aloud once — your real pace is the only one that matters, and most people speak faster under pressure than they expect.
The page estimate assumes 300 words per page, roughly a single-spaced page in a 12-point serif face with one-inch margins. Double-spaced, the same page holds closer to 250 words, which is the convention behind most manuscript and coursework requirements. Font, leading, and margins move this number more than anything else, so use the estimate for planning and your actual layout for submission.
Keyword density is the share of your total words made up by one term:
occurrences ÷ total words × 100. If “word counter” appears 12 times in a 1,000-word article,
that is 1.2%.
A natural range for a primary term is roughly 0.5–2%. Push past about 3% and the writing starts to read badly — which is the real problem. Search engines stopped rewarding raw repetition many years ago, and deliberate over-repetition is treated as spam. Density is a diagnostic, not a target: use it to notice that you have said “platform” forty times, not to hit a quota.
WordLab can ignore stop words such as the, and, and of so the frequency table surfaces the terms that carry meaning. Click any word in that table to highlight every occurrence in your text — usually the fastest way to see whether a term is genuinely earning its place or just echoing.
The Readability tab runs six standard formulas. They approximate difficulty from sentence length and word length, which means they reward short sentences and short words and cannot judge whether your argument makes sense.
| Formula | Reports | Useful for |
|---|---|---|
| Flesch Reading Ease | 0–100, higher is easier | A quick overall read; 60–70 suits general audiences |
| Flesch–Kincaid Grade | US school grade | The most widely requested single number |
| Gunning Fog | Years of education | Business and technical writing |
| SMOG | Years of education | Health and safety material |
| Coleman–Liau | US school grade | Counts characters, not syllables |
| Automated Readability | US school grade | A useful cross-check on the others |
For a broad public audience, aim around grade 7–9. Specialist readers tolerate more. One caveat worth stating plainly: syllable counting is heuristic, so scores are approximate and unusual vocabulary or heavy formatting can skew them. Compare drafts against each other rather than chasing an absolute number.
| Where | Limit | Measured in |
|---|---|---|
| SEO page title | 50–60 | characters |
| Meta description | 140–160 | characters |
| Single SMS segment | 160 | characters (70 if it contains emoji or accents) |
| Post on X | 280 | characters |
| Blog post that ranks | 1,500–2,500 | words |
| University essay | 1,500–5,000 | words |
| Novel | 70,000–100,000 | words |
No. Every count, score, and transformation runs in your browser using JavaScript. Your draft is saved to this browser's local storage so it survives a refresh, and it never leaves your device. There are no accounts and no uploads. The only exception is the optional AI tab, which is clearly marked and only contacts a provider you configure yourself.
Almost always hyphenation or scope. Word counts hyphenated compounds as one word, as WordLab does, but it may also be including or excluding footnotes, endnotes, and text boxes depending on a setting, and it leaves headers and footers out of the headline figure. Paste the identical text into both and the counts normally converge.
Roughly 0.5–2% for your main term. There is no bonus for going higher, and repetition that reads unnaturally is counted against you. Write for the reader and use the density figure to catch accidental overuse.
It is an estimate from a fixed 220 wpm assumption. Real reading speed varies widely with the reader, the subject, and whether they are studying or skimming. It is reliable for comparing two drafts and for setting expectations, not for precise timing.
Yes. WordLab installs as a progressive web app and caches itself, so once you have loaded it the counter keeps working with no connection.