Text & dev
Character Counter
Type or paste text and watch every count update on each keystroke: characters with spaces, characters without spaces, words, sentences, lines and paragraphs. Just as useful, the tool checks your text against the limits that trip people up most — the 280-character ceiling for a post on Twitter/X, the 160-character boundary of a single SMS segment, and the roughly 160-character sweet spot for an HTML meta description in search results. Each limit shows how many characters you have left and turns red the moment you go over, so you can trim in place instead of guessing. A character counter is the fastest way to fit copy into a tight field — a headline, a bio, an ad, a text message or a search snippet. Everything runs in your browser, so nothing you type is uploaded and you can paste private drafts safely.
Your text
Start typing to see live counts.
Platform limits
Limit bars use characters with spaces. Over-limit values turn red and show how far over you are.
How the character counter works
On every keystroke the tool measures your text directly. Characters with spaces is the raw length, including spaces, tabs and line breaks. Characters no spaces strips all whitespace. Words are runs of non-whitespace; sentences end on a period, exclamation or question mark; lines are split on line breaks; and paragraphs are blocks separated by blank lines. Each platform limit subtracts your character count from the cap to show characters remaining.
The limits we check
Twitter / X → 280 characters per post SMS (single) → 160 characters per segment Meta description → ~160 characters before truncationcharacters remaining = limit − characters with spaces; negative means you are over.
Notes & assumptions
- Counts use JavaScript string length, which counts most characters as one but may count some emoji as two code units.
- Real SMS messages with non-GSM characters can switch to a 70-character Unicode segment.
- Search engines truncate by pixel width, so 160 characters is a practical guideline, not a hard cap.
Worked example: fitting a meta description into the limit
You are writing the meta description for a product page and the first draft reads: "Our handcrafted ceramic pour-over coffee dripper brews a clean, balanced cup and looks beautiful on any kitchen counter. Free shipping on orders over $40 in the US." Paste it in and the counter shows 164 characters, so the Meta description bar flips red and reads 4 over. Delete the word "handcrafted" and its trailing space and the count drops to 152, safely inside the window search engines display in full. The bar turns neutral again and you copy the final line into your CMS.
The same live check catches an expensive SMS mistake. A 172-character promo text will not fit one 160-character segment, so carriers send it as two and bill both, doubling the cost across a 5,000-number campaign. Trim 12 characters while watching the SMS bar and the message goes back to a single segment before you hit send.
Character limits by platform
Different platforms enforce their caps differently: some block you, some silently truncate, and some split your message and charge you for the pieces. The table covers the limits people check most.
| Platform / field | Limit | Over the limit |
|---|---|---|
| X (Twitter) post | 280 | The counter goes negative and the Post button is disabled; only Premium accounts can publish longer posts |
| Instagram caption | 2,200 | The field stops accepting input; feeds also collapse captions after roughly 125 characters behind "more" |
| SMS (GSM alphabet) | 160 | The message splits into segments of 153 characters each, and carriers bill per segment |
| SMS with emoji or non-Latin text | 70 | One Unicode character shrinks the whole message to 70-character segments (67 when split) |
| Meta title | ~60 | Google truncates the title with an ellipsis; the real cutoff is pixel width, so 60 is a guideline |
| Meta description | ~155 | Google truncates the snippet or replaces it with text pulled from the page |
| YouTube title | 100 | Hard cap in the upload form; many layouts shorten titles around 70 characters anyway |
| LinkedIn headline | 220 | The field rejects further typing; search results show only the first portion |
Characters, bytes and why one emoji can count as two
What you see as one character is not always one unit under the hood. A grapheme cluster is a character as a reader perceives it: a letter, an accented é, a thumbs-up emoji. Text is stored as code units, though, and JavaScript (which this tool uses) counts UTF-16 units: every plain letter, digit and space is 1, most emoji are 2, a flag emoji is 4, and a family emoji built from several joined characters can be 8 or more. That is why pasting three emoji can raise the count by six.
Bytes are a third measure, the one databases and forms with storage limits care about. In UTF-8, English letters take 1 byte each, accented European letters usually 2, most Chinese, Japanese and Korean characters 3, and emoji 4. Platforms mix these systems: X counts most emoji as 2 toward its 280, while SMS drops the entire message to the 70-character Unicode budget the moment a single emoji appears. When a limit really matters, confirm in the destination field; this counter matches standard JavaScript counting, which is what most web forms use.
Frequently asked questions
What is the character limit for Twitter / X, SMS and meta descriptions?
A standard post on Twitter/X allows up to 280 characters. A single SMS message segment holds 160 characters using the basic GSM alphabet; longer messages are split into linked segments. For SEO, an HTML meta description is best kept around 155–160 characters so search engines show it without cutting it off. This counter tracks all three at once and warns you the moment you exceed any of them.
Does the counter include spaces?
It shows both totals. "Characters with spaces" counts every character you type, including spaces, tabs and line breaks — this is the figure platforms like Twitter/X and SMS enforce, so it drives the limit bars. "Characters no spaces" removes all whitespace, which is what some academic word counts, translation jobs and form fields ask for. Having both lets you check against whichever rule applies.
Why might my count differ from another tool or platform?
Small differences usually come from how each tool handles whitespace, line breaks and emoji. This counter uses JavaScript string length, so most characters count as one, but certain emoji and combined characters can register as two units. Platforms also differ: Twitter/X weights some characters and URLs specially. Treat the counts here as an accurate general guide and verify edge cases in the destination field.
How do the limit bars and the red warning work?
Each limit bar fills up as you type, based on your characters-with-spaces count, and the number beside it shows how many characters you have left. While you are within the limit, the bar and number stay neutral. The instant you cross the cap, the bar fills completely, the text turns red, and the readout switches to how many characters you are over — your signal to trim before publishing or sending.
Is my text private?
Yes. The counter runs entirely in your browser with JavaScript; your text is never uploaded, stored or logged. You can paste confidential drafts, unpublished posts or sensitive notes, count them, and close the tab to clear everything. Nothing leaves your device, so there is no privacy trade-off for the convenience.
Why did the count jump by two when I typed one emoji?
Because most emoji are stored as two UTF-16 code units, and JavaScript counts those units rather than what you see on screen. Simple symbols still count as one, but a typical emoji adds two, a flag adds four, and multi-person emoji joined from several characters can add eight or more. Many platforms count the same way, so the tool's figure usually matches the destination field.