Social Media Character Counter: Real Limits and Real Cutoffs
Every platform counts differently and every platform truncates somewhere long before its stated limit. X weights code points and shortens links to a fixed 23 units, Bluesky counts grapheme clusters so an emoji is one character, and Instagram allows 2200 characters while showing about 125. This counter checks one piece of text against ten platforms using each one's own rules, and shows exactly where the feed cuts your caption off. Nothing is uploaded, which matters when the text is a draft you have not published yet.
Table of Contents
The Limits, Platform by Platform
The short form platforms are genuinely short. X allows 280 weighted units, Bluesky 300 graphemes and Threads 500 characters. These are the ones where the limit itself is the constraint you feel while writing.
The caption platforms are effectively unlimited. Instagram and TikTok allow 2200 characters, LinkedIn 3000 and Facebook over sixty thousand. Nobody runs out of room, so the limit is not the number that matters.
Titles are the tight ones. A YouTube title allows 100 characters and shows around 60 in search, and a Reddit title allows 300 and cannot be edited afterwards.
Limits move. Platforms change them, and paid tiers sometimes carry different ones. The values here reflect the standard published limits.
How to Use This Counter
Paste the post and read down the list. Every platform is measured against the same text at once, so you can see immediately which ones it fits.
Select a platform to see its cutoff. The preview greys out everything hidden behind the more link, which is the part of the post most people never see.
Watch the X number in particular. It will disagree with every other count as soon as your text contains a link or non Latin script, and that disagreement is correct.
Use the breakdown to sanity check. The hashtag, mention and link counts catch the tag you accidentally left in from another draft.
Why X Counts Differently
It weights code points rather than counting them. Latin, Cyrillic, Greek and most punctuation cost one unit. Chinese, Japanese, Korean and most emoji cost two, on the reasoning that they carry more meaning per character.
Every link costs the same 23 units. Links are wrapped by the platform's own shortener, so a five character link and a two hundred character one occupy identical space. Shortening a URL before posting to X gains you nothing at all.
Text is normalised first. An accented letter written as one code point and the same letter written as a base plus a combining mark both count as one unit.
This tool implements those rules. The X row is calculated with the weighting and the link substitution, which is why it can read lower than the plain character count.
Emoji, Flags and Grapheme Clusters
What looks like one character often is not. A family emoji is four separate people joined by invisible connectors and occupies eleven units in a JavaScript string, while a flag is two regional indicator letters.
A grapheme cluster is what a reader calls a character. Counting clusters is what makes an emoji count as one, and it is what Bluesky and several other platforms do.
Not every platform agrees. Some count code points, and X weights them, so a post full of emoji can pass one counter and fail another. That is a genuine difference rather than a bug in either.
Skin tone modifiers add units. A modified emoji carries an extra code point, which counts for nothing as a grapheme and for something everywhere else.
The Cutoff Matters More Than the Limit
Feeds truncate long before the limit. Instagram shows about 125 characters, LinkedIn around 140 on mobile, TikTok roughly a single line. Everything past that requires a deliberate tap.
Most people never tap. Which means the visible portion is doing nearly all the work, and the rest of the caption exists for the minority who were already interested.
Cutoffs are approximate. They vary with screen width, language and the app version, so treat the preview as a close guide rather than a precise measurement.
Write to the cutoff, not the limit. The practical constraint on a 2200 character caption is the first 125 characters, and planning around that changes how you open.
Writing a First Line That Earns the Tap
Lead with the most surprising thing you have. A specific detail, a number or a claim earns the expansion in a way that a preamble never does.
Do not open with hashtags. They consume the visible portion with words nobody reads as a sentence. Put them at the end, where they still work.
Break the line early. A short opening line followed by a break reads better in a feed than one long block, and the break itself is visible before the cutoff.
Finish a thought before the cut. A truncation mid word looks careless. Ending the visible portion on a complete idea, ideally one that raises a question, reads deliberate.
Adapting One Post Across Platforms
Write the long version first. Cutting a considered post down to 280 units produces something better than padding a short one out to 2200.
Keep the opening identical. The first line is what every platform shows, so the version that works in one feed generally works in all of them.
Move the link according to the platform. It is fine inline on X and LinkedIn, and useless in an Instagram caption where it is not clickable.
Rewrite rather than truncate. A post cut off mid sentence to fit reads exactly like what it is. The list above shows which platforms need the shorter version.
Common Mistakes to Avoid
Trusting a plain character count for X. It will be wrong for any post with a link or non Latin script, in both directions.
Shortening links before posting to X. The platform wraps every link to the same length anyway, so you gain nothing and lose a readable URL.
Writing to the limit and ignoring the cutoff. The limit almost never binds. The cutoff always does.
Opening with hashtags or a mention. It spends the only part of the caption everybody sees on the part nobody reads.
Frequently Asked Questions
About the numbers: limits are as published by each platform and cutoffs are approximate, varying with screen width, language and app version. When a platform disagrees with any counter, including this one, the platform is what counts.