What the Word Counter counts
- Words — whitespace-separated tokens (regex
\\S+). Punctuation-attached words count as one. - Characters — full string length. Toggle "no whitespace" to exclude spaces, tabs, newlines.
- Sentences — count of terminal
.,!,?followed by whitespace or end of string. Handles runs like "..." and "!!". - Paragraphs — blocks separated by blank lines.
- Lines — newline-separated, including blank lines.
- Bytes — UTF-8 byte count, not character count. Emoji and CJK characters take multiple bytes.
Platform character limits reference
The counter checks your text live against the most common platform limits (as of April 2026):
| Platform | Limit | Notes |
|---|---|---|
| Meta title (Google) | 60 chars | Truncation point in SERPs. Use every char. |
| Meta description | 160 chars | Mobile may truncate earlier at ~105. |
| X / Twitter post | 280 chars | URLs count as 23 chars regardless of actual length. |
| Bluesky post | 300 chars | Counted as graphemes. |
| LinkedIn headline | 220 chars | Post text separately allows 3000. |
| YouTube title | 100 chars | Mobile shows ~70. Front-load keywords. |
| SMS | 160 chars | Longer texts split into multi-part SMS. |
Reading time methodology
Adult reading speed averages 200–250 words per minute for technical prose, 300 WPM for easy reading. This tool uses 200 WPM for reading time (medium complexity) and 130 WPM for speaking time (natural conversational pace for narration and presentations).
Common use cases
- SEO: check that meta title fits under 60 chars before you ship.
- Social media: live char counter as you draft X/Bluesky posts.
- Copywriting: verify body copy length for email subject lines (ideal: under 50 chars).
- Academic & editorial: hit word-count limits exactly for essays, abstracts, or journal submissions.
- Script writing: use speaking-time estimate to target a video length.
Frequently asked questions
Why does "characters" differ from "bytes"?
A character is one visible glyph. A byte is the lowest-level storage unit. ASCII characters take 1 byte each. Accented Latin characters, CJK, and emoji take 2–4 bytes each in UTF-8. For database column sizing, HTTP body Content-Length, or TLS record size, use bytes. For visual length, use characters.
How does sentence detection handle abbreviations like "e.g."?
Imperfectly. A period inside an abbreviation will over-count sentences slightly. For precise counts on dense abbreviation-heavy text (legal, academic), expect ~5% variance from a human count. For normal prose, accuracy is within 1-2%.
Does this handle emoji and multi-byte characters correctly?
Yes. JavaScript's native string length counts UTF-16 code units (which splits most emoji into 2), so "🦊" counts as 2 characters in traditional string-length terms. This matches how X, LinkedIn, and most platforms count. Byte count uses UTF-8 (so "🦊" = 4 bytes).
Is my text uploaded anywhere?
No. Everything runs in your browser. Open DevTools → Network and paste text: no requests. Your text never leaves your device.
Why is my "words per minute" calculation different on other tools?
Different tools use different WPM constants (150, 200, 225, 250). This tool uses 200 for reading (research median for adults on technical text) and 130 for speaking (public-speaking standard). For academic work cite the constant you use.
Related tools
- JSON Formatter — Format, validate, and beautify JSON online. 100% client-side — your data never leaves your browser.
- Regex Tester — Test regular expressions with live match highlighting and explanation.
- Timestamp Converter — Convert Unix timestamps, epoch seconds/milliseconds, and ISO 8601 dates.
- Case Converter — Convert text between camelCase, PascalCase, snake_case, kebab-case, SCREAMING_CASE, Title Case, sentence case, and more. Bulk mode.
Pillar
This tool belongs to Dev Productivity — the daily-driver utilities pillar. Browse the pillar for regex, cron, timestamp, HTTP codes, and color tools.
Written by Mian Ali Khalid. Last updated 2026-04-25.