How this counter counts
Every character you see counts as one: letters, spaces, line breaks, punctuation and emoji, including emoji built from several pieces, such as flags or a thumbs-up with a skin tone. The word count next to it helps when you write to a word target instead.
Most networks count the same way, or close to it. A few don’t, and their pages explain the difference:
- X weights characters: every link counts as 23, and each emoji or CJK character as 2.
- Mastodon counts every link as 23 characters, and only the username part of a mention.
- YouTube counts descriptions in bytes, so emoji and accented letters use more of the 5,000.
- Threads counts emoji by their UTF-8 bytes.
- TikTok counts API captions in UTF-16 runes, where many emoji take two.
- Bluesky counts graphemes, exactly like this counter.
Character limits by network
| Network | Field | Limit | Good to know |
|---|---|---|---|
| X character counter | Post | 280 | Weighted: links 23, emoji 2 |
| Bluesky character counter | Post | 300 | Graphemes, like this counter |
| Threads character counter | Post | 500 | Emoji counted by UTF-8 bytes; 5 links max |
| Mastodon character counter | Post (default) | 500 | Default; servers can change it; links count as 23 |
| Pinterest character counter | Pin description | 800 | Titles 100, and the first 40 show |
| Google Business Profile character counter | Update | 1,500 | Reported by third-party guides |
| Instagram character counter | Caption | 2,200 | Hashtags and @mentions count; plan for 5 hashtags |
| TikTok character counter | Video caption (API) | 2,200 | API limit, counted in UTF-16 runes |
| LinkedIn character counter | Post | 3,000 | Same for profiles and Pages |
| Telegram character counter | Text message | 4,096 | Media captions from a bot: 1,024 |
| YouTube character counter | Video description | 5,000 | Counted in bytes; no < or > |
| Reddit character counter | Text post body | 40,000 | Reported; titles stop at 300 |
| Facebook character counter | Post | 63,206 | Widely reported; Meta’s docs give no figure |
| Tumblr character counter | Post, with reblog trail | 524,288 | Text blocks hold 4,096 |
Each network page adds the other fields too, such as bios, titles, comments and display names, with the sources behind every figure.
Writing one post for several networks
When the same text goes to several networks, the strictest limit decides. With X on the list, your budget is 280 weighted characters; without it, Bluesky’s 300 usually is. Paste your draft above and look for the first red bar.
Often the better answer is two versions: a short one for X, Bluesky, Threads and Mastodon, and a fuller one for LinkedIn, Facebook or Instagram. In Postocial, one post keeps a separate version for each network, so you write both in the same place and schedule them together.
Tips for staying under the limit
- Cut filler first: “in order to”, “really”, “very” and “just” rarely add meaning.
- Remember that spaces and line breaks count. A list with blank lines between items costs more than it looks.
- Move hashtags to the end, or into a first comment on networks where Postocial supports one: Facebook, Instagram and LinkedIn.
- Shorten long links on networks that count the full URL. On X and Mastodon a link counts as 23 characters whatever its length.
- Read the first line on its own. Most feeds cut long posts off early, so the opening has to work alone.