Character Counter
Twitter used to limit tweets to 140 characters and now allows 280. SMS tops out at 160 per segment before splitting. Meta descriptions get truncated after 160. Character limits are everywhere — this counter shows your text’s length in real time, both with and without spaces, alongside word, sentence and paragraph counts, plus an estimated reading time. Paste or type, watch the counters update as you go.
How the character counter works
-
1
Paste or type into the text area
Any length, any language. Unicode characters (emoji, accented letters, CJK) count correctly.
-
2
Live counts update
Characters with spaces, characters without spaces, words, sentences, paragraphs, lines.
-
3
Reading time estimate
Based on ~200 words per minute (adult reading). Toggle to slow-reader (~125 wpm) or speed-reader (~350 wpm).
-
4
Limit warning
Set a target (SMS 160, tweet 280, meta-desc 160, Google ad 30) and the counter turns red when you're over.
Common character limits
| Platform / context | Limit | Notes |
|---|---|---|
| SMS (GSM-7 single) | 160 | Splits into multiple segments beyond |
| SMS (UCS-2, with emoji) | 70 | Unicode forces 16-bit encoding |
| Twitter/X post | 280 | 25,000 for paid subscribers |
| Instagram caption | 2,200 | Only first ~125 shown without “more” |
| Instagram bio | 150 | |
| LinkedIn headline | 220 | |
| LinkedIn post | 3,000 | Only first ~210 shown without “see more” |
| Facebook post | 63,206 | First ~80 shown without truncation |
| YouTube title | 100 | ~60 before mobile truncation |
| YouTube description | 5,000 | First ~125 visible in SERP |
| Meta description | ~160 | Google typically truncates at 155-160 |
| Meta title | ~60 | Desktop; mobile varies |
| Google Ads headline | 30 per headline | Up to 15 headlines per RSA |
| Google Ads description | 90 per description | Up to 4 |
| Amazon product title | 200 | Category-dependent |
Character vs code point vs grapheme
- Character in this counter = Unicode grapheme cluster. One emoji like 👨👩👧 counts as one, even though it’s made of multiple code points joined by ZWJ (zero-width joiner).
- Code point count (what
.lengthreturns in JavaScript) would count that same emoji as 5+ — correct for byte-limit protocols but not what humans mean by “characters”. - Toggle “code point count” if you’re validating against a protocol that counts UTF-16 units.
Words, sentences, paragraphs
- Words: whitespace-delimited tokens. Hyphenated compounds (state-of-the-art) count as one word.
- Sentences: delimited by
. ? !followed by whitespace, with basic handling of “Dr.”, “e.g.” to avoid false splits. - Paragraphs: separated by blank lines (double newline).
- Lines: single newlines, useful for poetry or code.
Use cases
- Social media drafts: check tweet length before hitting post.
- SEO: validate meta title/description stay within truncation threshold.
- SMS campaigns: know when a message splits into two segments (doubling cost).
- Writing practice: track words-per-day targets.
- Forms with limits: draft the answer, check length, then paste.
Frequently Asked Questions
In the grapheme-cluster mode (default), yes — one visible glyph = one character. In code-point mode, a single emoji can count as 2-7 depending on its complexity.
Rough — based on 200 words per minute average for adult English readers. Subject matter affects actual speed; technical prose reads slower, dialogue faster. Use it as a guide, not a commitment.
Twitter/X uses “weighted characters” — most Latin characters count as 1, CJK and some symbols count as 2. URLs always count as 23 regardless of actual length. The counter has a “Twitter-weighted” mode to match exactly.
No. Text is held in the browser’s memory while you’re on the page and cleared when you leave. Nothing is logged or sent anywhere.