ContentSling

Writing

The same caption does not fit every platform

Every platform counts your post differently, and three of them are not counting characters at all. Here are the real numbers, and a tool that reads your caption and tells you what is about to break.

You wrote the post once. That was the entire point.

Then Instagram looked fine. Bluesky cut it off mid-sentence. Threads quietly split it in two and nobody read the second half. YouTube just did not post it at all, with no error you could do anything with. It simply did not go.

So there you are at eleven at night with five tabs open, rewriting the same sentence five times, trying to remember which one hates links and which one eats your hashtags.

Here is what nobody tells you. Every platform measures your post differently, and three of them are not counting characters at all. The caption you sized so carefully in one place was already wrong in the other four before you hit post.

These numbers came out of a publishing pipeline rather than off someone else's blog, which is why a few of them disagree with the cheat sheet you have open in the other tab.

The table

Platform Text limit Counted as Images Links in the text
Bluesky 300 Grapheme clusters 4 Only with byte-offset facets
Threads 500 Graphemes 20 Auto-linked
Instagram 2,200 Graphemes 20 in a carousel Never clickable
Facebook 63,206 Graphemes Many Auto-linked, with a preview card
YouTube Title: 100, and required Graphemes Video only Clickable in the description
Pinterest Title 100, description 800 Graphemes 5 in a carousel A destination URL is required
TikTok Photo title 90, description 4,000. Video caption 2,200 UTF-16 runes 35 Not clickable

Alt text: Bluesky 2,000 per image, Pinterest 500. Every platform above accepts it and almost nobody writes it.

The three that will catch you out

Bluesky is not counting characters

Everyone says 300 characters. Bluesky counts graphemes, which is the thing you would call a letter. An emoji family is one. A flag is one. An accented letter is one. Your character counter says seven, then two, then two.

So it tells you 312 and you spend five minutes trimming a post Bluesky would have taken at 296. Or it tells you 298, Bluesky rejects it on publish, and you find out later. If you find out at all.

Your Bluesky link is probably dead

Bluesky does not read your text and go looking for URLs. A link only works if the post carries a separate note saying which bytes the link covers. Bytes, not letters. Put one emoji anywhere before the URL and that number changes.

Get it wrong and the link publishes as grey text nobody can tap. It looks completely normal in the preview. That is the whole problem with this one.

TikTok charges double for emoji

TikTok counts differently again, and every emoji costs two. A photo title capped at 90 that your editor swears is fine, with four emoji in it, is 94 to TikTok. So it gets cut. Not rejected, cut, which is worse, because nothing tells you it happened.

And Instagram moved the goalposts

Five hashtags. That is the limit now. Instagram brought it in on 18 December 2025 and rolled it out slowly, so plenty of people still have not noticed. It is a hard cap, not a suggestion. If you are still pasting in your old block of thirty, it is being cut, and the five that survive are not the five you would pick.

This is where your week goes

You already know that posts written for the platform beat the same thing pasted everywhere. It usually gets blamed on tone. Tone is part of it. Most of it is the list above.

The Bluesky post underperformed because it got cut and lost its point. The Instagram one underperformed because it ends on a link nobody can tap, so the call to action goes nowhere. The Threads one got split and half of it was never seen. None of that is writing. All of it is arithmetic, and all of it was fixable before you posted.

Small business owners put six to seven hours a week into this, and 64% call it the most frustrating thing they do. Nobody has a spare hour to hand tune five versions of one post against seven different counting systems. So they paste the same thing everywhere and quietly lose on four of them.

Fixing this is the reason ContentSling exists, and there is a link at the bottom for that. First though, find out how bad yours actually is.

Free tool

Paste a caption. See what breaks.

Runs entirely in your browser. Nothing you type is sent anywhere, including to us.

Platforms to check

One free check. No email needed.

So do it properly, then

Fine. Here is what doing it properly actually looks like. Not once. Every time you post anything, forever.

  1. Write to Bluesky's 300 first. Not the Instagram version. Make the whole point land inside 300 so everything longer is an expansion of something that works, rather than a truncation of something that does not.
  2. Decide where the link goes, per platform. Instagram: not in the caption, so do not write a sentence that leans on it. Bluesky: in the text, with the byte offsets worked out. Pinterest: a required field. Facebook: it builds a preview card whether you want one or not.
  3. Write the titles separately. YouTube needs one, Pinterest needs one, both capped at 100. A title is not your first line, and treating it as one is why the YouTube post never went.
  4. Cut to five hashtags. And pick which five, rather than letting Instagram pick for you.
  5. Recount everything in the platform's own units. Graphemes here, runes there. Not your editor's character count, which is wrong on both.
  6. Look at all five renderings before they go. Not your draft. The five actual versions. Almost every bad post that ever went live was approved as a draft that looked nothing like what published.

Six steps. Five platforms. Every post. That is your Sunday.

Or do none of it

That list is exactly what ContentSling does for you. You write the thing once. It builds a version for each platform against that platform's own rules, graphemes on Bluesky and runes on TikTok included, works out the link offsets, writes the titles, cuts the tags to five, and then shows you all five versions exactly as they will appear and waits.

Nothing publishes until you say yes. You get your Sunday back and you stop finding out on Tuesday that the link was dead.

Start a free trial or see how it works

Seven days free. Cancel any time.

Questions people ask

What is the character limit on Bluesky?

300, counted in grapheme clusters rather than characters. Any counter measuring raw string length will disagree with Bluesky, and usually in the direction that gets your post rejected on publish.

What is the character limit on Threads?

500. Threads refuses a longer post rather than truncating it, so anything over has to become a reply chain. Where you choose to split decides whether the second part is read at all, because most feeds only show the first.

How many hashtags can I use on Instagram now?

Five, per post and per reel. Instagram announced the cap on 18 December 2025 and rolled it out gradually across accounts, so plenty of people are still writing captions against the old limit of thirty.

Why is the link in my Instagram caption not clickable?

Because Instagram has never made feed caption links clickable. The URL renders as plain text. If your caption ends in a URL, that line is doing nothing, and if it says link in bio then the bio has to actually carry the link.

Does cross-posting the same caption really hurt?

Platform-native posts beat identical cross-posted ones by roughly twenty percent, and the mechanical failures on this page are a large part of why. A caption sized for Instagram is over the limit on Bluesky, over the limit on Threads, and missing the title that YouTube and Pinterest both require.

Checked against each platform's live behaviour, September 2026.