How to use the character counter
Paste or type into the box and every figure updates live: characters (including spaces and line breaks), characters without spaces, words, sentences, paragraphs and lines, plus reading time at 238 words per minute (the average silent-reading speed found in Brysbaert's 2019 meta-analysis) and speaking time at a presentation pace of 140 words per minute. The strip underneath breaks the text down further: letters, digits, spaces, punctuation, emoji, unique words, average word length, the longest word, and the size in UTF-8 bytes and UTF-16 units — useful when a database column or an API has a byte limit rather than a character limit.
Select part of the text and the line under the box counts just that selection. The case buttons change the whole text, or only the selection if you have one, and Undo reverses the last change or an accidental Clear. For heavier case work — camelCase, snake_case, slugs — use the case converter; for word-level analysis with readability scores and a writing goal, the word counter goes further.
Character limits by platform
The meters under the text track the limits that actually get enforced, and mark where platforms fold long text behind a “more” link. A bar turns amber within 10% of the limit and red when you are over, with the number of characters to cut spelled out so you never have to rely on colour.
| Where | Limit | Notes |
|---|---|---|
| X (Twitter) post | 280 | Weighted: each link counts as 23, emoji and CJK characters as 2. Premium posts allow 25,000. |
| Instagram caption / bio | 2,200 / 150 | Captions fold after about 125 characters; maximum 30 hashtags. |
| LinkedIn post / headline | 3,000 / 220 | Posts fold after roughly 210 characters on desktop. |
| TikTok caption | 4,000 | Raised from 2,200 in 2023. |
| YouTube title / description | 100 / 5,000 | Titles are truncated in search at around 70. |
| Threads, Mastodon / Bluesky | 500 / 300 | Bluesky counts grapheme clusters, like this tool. |
| Meta title / description | ~60 / ~160 | Google truncates by pixel width (about 600 px and 920 px), so the meter also estimates width. |
| Google Ads headline / description | 30 / 90 | Double-width characters (Chinese, Japanese, Korean) count as two. |
Platforms change limits without notice, so treat the figures as current guidance rather than a contract. If you have your own limit — a form field, a print layout, a CMS excerpt — type it into Custom limit and a meter for it appears first.
SMS length, GSM-7 and Unicode
An SMS is 140 bytes. With the standard GSM-7 alphabet that holds 160 characters; once a message is longer it is split into parts of 153, because each part carries a small header so phones can stitch it back together. Characters outside GSM-7 force the whole message into UCS-2 (Unicode), which drops the limit to 70 characters, or 67 per part — and an emoji uses two of those units. A handful of GSM characters, such as € [ ] { } ^ ~ \ and |, cost two.
The most common accident is smart punctuation pasted from Word or Google Docs: a single curly apostrophe (’), an en dash or a non-breaking space silently turns a 150-character message into three billed parts. The SMS note lists exactly which characters are forcing Unicode, and Replace smart punctuation swaps curly quotes, dashes, ellipses and non-breaking spaces for their plain equivalents in one click. Most networks and gateways cap concatenated messages at between 6 and 10 parts, so aim well below that for marketing sends.
How characters are counted — and why tools disagree
Two counters can show different numbers for the same text, and the difference is almost always in how they treat Unicode. JavaScript's length counts UTF-16 code units, so a single emoji such as 👍 is 2, a family emoji built from several people joined with zero-width joiners can be 8 or more, and a letter written with a combining accent is 2. This counter uses the browser's Intl.Segmenter to count grapheme clusters — what a reader sees as one character — so each of those counts as 1. The raw UTF-16 figure is still shown in the breakdown, because some systems (SMS in Unicode mode, older databases) really do count units.
- Line breaks count as one character each, whether they came from Windows (CRLF) or Mac/Linux (LF).
- Words are runs of text separated by whitespace that contain at least one letter or digit, so a stray dash or emoji is not a word. Em dashes between words split them. Chinese, Japanese and Thai, which do not use spaces, are split into words by the browser's dictionary-based segmenter.
- Sentences end at . ! ? or … followed by a space, at 。!?, or at a blank line; common abbreviations such as Dr. and e.g. and initials are not treated as sentence ends.
- Paragraphs are non-empty lines, the convention most word processors' counters follow.
Hidden characters — zero-width spaces, non-breaking spaces, soft hyphens — are counted too, which is often why a pasted title is mysteriously over its limit. The invisible character page explains what each one does. The counter stays responsive with very long pastes: work is split into chunks and handed back to the browser between them, so even a megabyte of text keeps the page usable.
Frequently asked questions
Do spaces count as characters?
Yes, on almost every platform. X, Instagram, LinkedIn, SMS and meta tags all count spaces and line breaks towards the limit, so the main figure includes them. The “without spaces” figure is there for the cases that exclude whitespace, such as some academic abstract limits, translation quotes and certain form fields.
Why does my emoji count as two characters on X but one here?
This counter shows what a reader sees, so one emoji is one character. X uses a weighted count to set its 280 limit: Latin letters and most punctuation weigh 1, while emoji, Chinese, Japanese and Korean characters weigh 2, and every link counts as 23 however long it is. The X meter applies those rules, so trust that bar when posting.
Why is my SMS being sent as several messages?
Either it is over 160 characters, so it splits into 153-character parts, or it contains a character outside the GSM-7 alphabet, which switches the whole message to Unicode and cuts the limit to 70. Curly quotes, long dashes and emoji are the usual culprits. The SMS note names the exact characters and can replace smart punctuation for you.
How long should a meta title and description be?
Aim for about 50–60 characters for a title and 120–160 for a description. Google actually truncates by pixel width — roughly 600 pixels for titles and 920 for descriptions on desktop — so a title full of wide capitals can be cut earlier. The meters show both the character count and an estimated pixel width.
Is my text stored or uploaded anywhere?
No. All counting happens in JavaScript in your browser tab and nothing is sent to a server, stored or logged. Close the tab and the text is gone. You can check in your browser's developer tools: the network panel stays empty while you type. That makes it safe for drafts, contracts and unpublished copy.
Can it handle a whole book or a very large file?
Yes. Paste hundreds of thousands of words and the counts still arrive within a second or so, because the text is processed in chunks and the page stays responsive between them. Phrase density is limited to texts under 400,000 characters to keep memory sensible; single-word density and every other count work at any size.