Word and Character Counter
Count words, characters, sentences, paragraphs and lines in text, with reading time. All local.
| Words | 0 |
| Characters | 0 |
| Characters (no spaces) | 0 |
| Sentences | 0 |
| Paragraphs | 0 |
| Lines | 0 |
| Reading time | 0 |
How it works
Write or paste text, and words, characters, sentences, paragraphs and lines are counted live. Reading time is an estimate based on about 200 words per minute. Everything happens locally in your browser, nothing is sent anywhere.
About this tool
The word counter gives you stats on text: character count (with and without spaces), words, sentences, paragraphs, unique words, average word length, reading time and speaking time. Handy for staying under a character limit on an application, tuning Google Ads copy, checking meta-description length, planning a speech, or just meeting a teacher’s 500-word requirement. It also handles code and Markdown correctly, and you can choose whether punctuation counts. Everything runs in the browser; no data leaves your machine.
How to use it
- Paste or type your text in the input field.
- See all stats update in real time.
- Use the settings to choose whether punctuation counts.
- Copy the results or download a CSV with detailed numbers.
Examples
This is an example text. It has just two sentences.Characters: 51
Characters without spaces: 42
Words: 10
Sentences: 2
Paragraphs: 1An article of 1500 wordsReading time: approx. 6 minutes (250 words/minute)
Speaking time: approx. 10 minutes (150 words/minute)Common use cases
- Write academic essays with word count requirements (500, 1000, 1500 words).
- Keep meta descriptions under 155 characters for SEO.
- Tune Google Ads copy (30-char headline, 90-char description).
- Plan talks by estimating speaking time.
- Check text length for Twitter/Bluesky (280/300 chars).
Frequently asked questions
- How are words counted?
- The tool splits on whitespace (spaces, tabs, newlines) and counts every non-empty run. Hyphen-joined words like "e-mail" and "long-awaited" count as one word each. Underscores are not split, so "hello_world" is one word.
- How is a sentence defined?
- By period, question mark or exclamation mark followed by whitespace or end of text. The tool tries to handle abbreviations (e.g., etc., Dr.) without counting them as sentence endings, though edge cases may occasionally miscount.
- What are "unique words"?
- The number of distinct words in the text regardless of frequency. "cat cat cat" has 3 words but only 1 unique word. A good indicator of vocabulary diversity, used in readability analyses and style checks.
- Are Twitter and Bluesky different?
- Yes, they count characters by their own rules. Twitter (X) counts URLs as 23 characters regardless of actual length, and emoji as 2. Bluesky counts UTF-8 bytes for most characters. Our tool reports raw character count, not platform-specific math.
Technical background
Character counting is not trivial in modern Unicode. JavaScript string.length counts UTF-16 code units, so emojis and non-BMP characters (above U+FFFF) count as 2. For visual character count, use [...str].length which yields code points, or better Intl.Segmenter for grapheme clusters, so a skin-toned emoji or a family emoji (👨👩👧) is counted as one. Words are non-empty runs between whitespace, with hyphens kept inside words (Unicode Word Break property). Sentence splitting is "grammatical" and needs handling of abbreviations (Dr., etc., i.e.), ellipses (...), decimals (3.14) and domain names (example.com), which is imperfect without NLP libraries. Reading time uses average speeds: 200 wpm for children, 250 wpm for adults, 350–450 wpm for speed reading; speaking time around 130–150 wpm. Our tool uses Intl.Segmenter where available and falls back to a simpler algorithm in older browsers.