Character Counter
Count characters, words, sentences, graphemes, and Twitter-weighted characters. Live limits for X, Bluesky, Threads, Instagram, LinkedIn, TikTok, SMS, SEO, and more.
0
Characters
0
No Spaces
0
Graphemes
emoji-safe
0
Twitter weight
X count
0
Words
0
Sentences
0
Paragraphs
0
Lines
Platform limits
Post · 280 max
Post · 300 max
Post · 500 max
Post · 500 max
Post · 3,000 max
Caption · 2,200 max
Caption · 4,000 max
Post · 63,206 max
Description · 5,000 max
Description · 500 max
Bio · 150 max
Bio · 160 max
Bio · 80 max
HTML <title> · 60 max
meta[name=description] · 160 max
Headline · 30 max
Description · 90 max
GSM 7-bit; longer auto-splits · 160 max
Text status · 700 max
Video title · 100 max
What is a character counter?
A character counter shows you how many characters, words, sentences, and paragraphs are in your text — and crucially, how those numbers compare to the limits enforced by every platform you might publish on. It's essential for social media managers (X has a 280-character ceiling, Instagram caps at 2,200, Threads at 500), SEO writers (meta descriptions truncate at ~160 chars), marketers (Google Ads headlines max at 30 chars), and developers fitting copy into UI components. This free tool runs entirely in your browser and gives you platform-by-platform live remaining counts, plus emoji-safe grapheme counting and accurate Twitter-weighted counts for X.
Why our count is different from text.length
JavaScript's built-in text.length is character-naive: emoji like 👨👩👧 count as 5+ characters because they're composed of multiple Unicode code points joined by zero-width joiners. Native CJK characters often count as 1 in length but as 2 by X's algorithm. URLs in tweets count as 23 characters regardless of actual length. This tool exposes:
- Characters — raw JavaScript
.length. Useful as a sanity baseline but wrong for emoji. - Graphemes — uses
Intl.Segmenterfor accurate visible-character count."👨👩👧"counts as 1 grapheme. Matches what Instagram and most platforms display as the visible count. - Twitter weight — approximates twitter-text v3: URLs count as 23, CJK/emoji weight 2, ASCII weight 1. Use this number when composing tweets — it matches what X displays.
Character limits across every major platform (2026)
| Platform | Limit | Notes |
|---|---|---|
| X (Twitter) | 280 | Verified accounts on X Premium: 4,000 |
| Bluesky | 300 | Hard limit, AT Protocol enforced |
| Threads | 500 | Plus 10 images / 1 video per post |
| Mastodon | 500 | Default; some instances allow more |
| LinkedIn post | 3,000 | Premium: 3,000 same |
| Instagram caption | 2,200 | Only first 125 shown before "more" |
| Instagram bio | 150 | Plus 30 hashtags / mentions |
| TikTok caption | 4,000 | Increased from 2,200 in 2023 |
| TikTok bio | 80 | Notoriously short |
| Facebook post | 63,206 | Practically unlimited — first 480 visible |
| YouTube title | 100 | ~70 visible in search results |
| YouTube description | 5,000 | First 100-200 visible above "more" |
| Pinterest pin | 500 | First 50-60 visible in feed |
SEO title (HTML <title>) | 60 | Truncated by pixel width in SERP |
| Meta description | 160 | 120 on mobile |
| Google Ads headline | 30 | 3-15 headlines per ad |
| Google Ads description | 90 | 2-4 descriptions per ad |
| SMS (single segment) | 160 | GSM 7-bit; longer auto-splits |
| WhatsApp status | 700 | Text status; voice/video have own limits |
How to use the character counter
- Paste or type your text into the input box above.
- Character, word, sentence, and grapheme counts update in real time.
- Check the sidebar to see how your text fits each platform's limit. The Remaining column shows characters left (or how many over you are).
- The progress bar turns red when you exceed a limit and amber when you're within 10% of it.
- Copy stats with the "Copy stats" button.
Frequently Asked Questions
Why does emoji counting matter?
Different platforms count emoji differently. X (Twitter) counts most single emoji as 2 weighted characters. Instagram and TikTok generally count emoji as 1 grapheme each. JavaScript'stext.length can give you 2-7 characters per emoji depending on the emoji's internal structure. This tool exposes both the raw character count and the grapheme count, plus the Twitter-weighted count specifically — so the count you see matches what the platform sees.
Why are URLs in tweets always 23 characters?
X (formerly Twitter) automatically shortens every URL through its t.co wrapper. Regardless of the URL's actual length (5 chars or 500 chars), it counts as 23 weighted characters in your tweet. The "Twitter weight" counter above replaces URLs with a 23-char placeholder before counting.
What is the ideal SEO title tag length?
Google truncates title tags by pixel width (not character count) at roughly 580px on desktop and ~500px on mobile. As a practical guideline, keep your <title> under 60 characters to ensure it displays without truncation across devices. If you have multiple long words, aim for 55 chars or below.
What is the ideal meta description length?
Google typically displays 155-160 characters of a meta description on desktop and ~120 characters on mobile. Keep meta descriptions to ~120 characters to ensure they show on both. Include your target keyword in the first 110 characters and add a compelling call-to-action.
Do spaces count as characters?
On every social media platform — yes. Spaces are characters. This tool shows both counts — with and without spaces — for cases where you care specifically about visible text density. Most platforms count "hello world" as 11 characters (5 + space + 5), not 10.
Why is my SMS message splitting into multiple messages?
SMS encoded as GSM 7-bit fits 160 characters per segment. If your message contains a single Unicode character (emoji, em-dash, smart quote), the entire SMS is re-encoded as UCS-2 (Unicode) which only fits 70 characters per segment. Replace smart quotes (“) with plain (") and you may save segments.
What's the difference between "Characters" and "Graphemes" on this tool?
Characters is JavaScript's raw length — counts each UTF-16 code unit. Surrogate-paired emoji count as 2; ZWJ-joined family emoji can count as 5-11.Graphemes uses Intl.Segmenter to count visible characters — a family emoji counts as 1, a flag emoji counts as 1. Match this to what the platform displays.
Is my text private?
Yes — 100%. All counting happens in your browser. Nothing is sent to a server, stored, or logged. Audit the page's network tab to verify — no XHR/fetch requests are made when you type.