A character counter with limits for X, SMS and SEO
The Character Counter shows exactly how many characters are in your text — with and without spaces — and checks it against the limits that actually matter: X (Twitter) posts, SMS messages, meta titles and descriptions, Instagram captions, YouTube titles, LinkedIn posts and Google Ads headlines and descriptions. Every limit has its own progress bar and a live count of the characters you have left.
Below the main total you get a full breakdown: letters, digits, spaces, punctuation, emoji, words, lines and UTF-8 bytes. Emoji and accented letters are counted the way you see them, so 👍🏽 or 🇮🇳 is one character, not two or four. Counting happens in your browser as you type, and your text is never uploaded or saved.
Working to a word limit instead, such as an essay or abstract? The Word Counter adds sentences, paragraphs and reading time.
How to use the Character Counter
- Type or paste your text into the “Your text” box. All counts update as you type.
- Read the totals at the top: characters, characters without spaces, words, lines, and the breakdown into letters, digits, spaces, punctuation, emoji and bytes.
- Check the “Platform limits” bars for wherever you plan to publish. Amber means you are above 90% of the limit; red means you are over it.
- For text messages, look at the SMS bar: it shows the encoding, how many messages your text will be split into and which characters forced Unicode.
- Type any number into “Custom limit” to check a form field, an app store blurb or an assignment, then press “Copy text” to take your finished text with you.
Character Counter features
Counts what you see
Emoji with skin tones, flags, family emoji and letters with accents each count as one character, using the Unicode grapheme rules built into your browser.
X (Twitter) weighting
Links count as 23 characters and emoji and most Chinese, Japanese and Korean characters count as two — the same weighting X applies to its 280-character limit.
SMS parts and encoding
Detects GSM-7 or Unicode (UCS-2), counts € and [ ] { } as two, and works out how many message parts a long text will be split into.
Nine limits plus your own
Meta title, meta description, Instagram, YouTube, LinkedIn and Google Ads limits side by side, and a custom limit you can set to anything.
Bytes for developers
The UTF-8 byte count tells you whether text fits a database column, an API field or a push notification payload measured in bytes.
Fast and private
Nothing leaves your device, and it stays fast with a megabyte of text.
Characters, code points and bytes: why counts differ
A “character” can mean three different things, and that is why two tools sometimes disagree. This counter uses the one people mean: a grapheme, a single visible symbol. 👍🏽 is one grapheme, but it is made of two Unicode code points (a thumbs-up plus a skin-tone modifier), and the family emoji 👨👩👧 is five code points — three people joined by two invisible zero-width joiners. Some programs count UTF-16 code units instead, so one emoji can show up as 2, 4 or even 8 “characters” elsewhere.
Bytes are different again. UTF-8, the encoding used by almost every web page and database, stores English letters in 1 byte, accented letters such as é in 2, Devanagari, Chinese and most other scripts in 3, and emoji in 4. If a system limits a field to 255 bytes rather than 255 characters, Hindi or Japanese text will hit the limit much sooner — check the “UTF-8 bytes” figure for those.
Character limits by platform
These are the limits the meters use. Platforms do change them, and some cut off long text in previews well before the hard limit, so it is worth writing a little shorter than the maximum.
| Where | Limit | Worth knowing |
|---|---|---|
| X (Twitter) post | 280 | Weighted: every link = 23, emoji and CJK characters = 2. Paid accounts can post longer. |
| SMS, GSM-7 | 160 (153 per part) | € [ ] { } ^ ~ | \ use two units each. |
| SMS, Unicode (UCS-2) | 70 (67 per part) | One emoji or curly quote switches the whole message. |
| Meta title | ≈ 50–60 | Google cuts titles by pixel width (around 600 px), not a fixed count. |
| Meta description | ≈ 150–160 | Often shorter on mobile, and Google may rewrite it. |
| Instagram caption | 2,200 | Only the first line or two show before “more”. |
| YouTube title | 100 | Long titles are shortened in search and suggestions. |
| LinkedIn post | 3,000 | Only the opening lines show before “see more”. |
| Google Ads headline / description | 30 / 90 | Double-width characters (for example Chinese or Japanese) count as two. |
How SMS length really works
A single SMS carries 140 bytes of text. In the standard GSM-7 alphabet each character takes 7 bits, which is where the familiar 160-character limit comes from. When a message is longer, phones split it into parts and add a small header to each so they can be rejoined, leaving 153 characters per part. If your message contains even one character outside GSM-7 — an emoji, a curly apostrophe (’), an em dash (—) or most non-Latin letters — the whole message switches to UCS-2 and the limit drops to 70, or 67 per part.
That is why a 150-character promotional text can suddenly cost three message credits. The SMS meter names the characters that forced Unicode, so you can swap curly quotes for straight ones and dashes for hyphens, and drop the emoji if every credit counts. For bulk campaigns in India, the US or the UK, check your gateway’s rules too: some replace these characters automatically, many do not.
Character Counter FAQ
Do spaces count as characters?
Yes. X, SMS, Instagram, Google and almost every other platform count spaces and line breaks as characters. The “Without spaces” figure is there for the few cases that exclude them, such as some translation quotes and school assignments.
Why does X say my post is longer than the character count here?
X weights characters: every link counts as 23 no matter how long it is, and emoji and most Chinese, Japanese and Korean characters count as two. The X meter applies the same weighting, so use its number, not the plain character total, when you post on X.
Why is my text message being split into two or three SMS?
Above 160 GSM-7 characters a message is sent in parts of 153. If it contains an emoji or another non-GSM character, the limit drops to 70 characters, or 67 per part. The SMS meter shows the number of parts and which characters caused the switch.
How many characters should a meta description be?
Aim for roughly 150–160 characters so it is not cut off in Google results, and put the most important words first, because mobile results often show less. The meta title works best at about 50–60 characters. You can preview both with the SERP Preview tool.
How does this character counter count emoji?
Each emoji you see counts as one character, including combined emoji such as 👨👩👧, flags and emoji with skin tones. They are also listed separately in the “Emoji” total. Only the X meter counts emoji as two, because that is how X counts them.
Is my text saved or sent anywhere?
No. The counting runs entirely in your browser. Your text is not uploaded, logged or stored, and it disappears when you close the page.