Skip to content
Part of: How-to format
How-To

X (Twitter) Character Limits: Maximizing Space for Free and Premium

Free users are capped at 280 characters, while X Premium subscribers can write up to 25,000 characters. For all users, URLs count as 23 characters regardless of their actual length.

Shreyas Bagal·Jun 14, 2026·4 min

Free users are capped at 280 characters, while X Premium subscribers can write up to 25,000 characters. For all users, URLs count as 23 characters regardless of their actual length.

Key takeaways

  • Free accounts are restricted to 280 characters per post, with media attachments costing zero characters
  • X Premium subscribers can post up to 25,000 characters, but only the first 280 show before the Show More link
  • All URLs, including short ones, are calculated as exactly 23 characters by the t.co shortener
  • Emojis use a standard character count but can vary in byte size, impacting technical API limits
X (Twitter) Character Limits: Maximizing Space for Free and Premium

Data

The Dual Reality of X Character Limits

For a decade and a half, the constraint was the point. Twitter’s 140-character limit (doubled to 280 in 2017) forced a specific type of brevity that defined the platform's culture. Today, X exists as a tiered ecosystem.

If you are a standard, non-paying user, you are working within the 280-character limit. If you pay for X Premium (formerly Blue), that ceiling shatters to a massive 25,000 characters. But more space doesn't always mean better performance. Understanding the technical nuances of how X calculates these limits—and how the UI truncates your text—is essential for any writer or marketer.

The Technical Math: What Counts as a Character?

X doesn't count characters the way a standard word processor like Microsoft Word does. It uses a specific weight system.

The 23-Character URL Rule

One of the most common mistakes is trying to use an external URL shortener (like Bitly) to save space. It is a waste of time. X automatically passes every link through its t.co wrapper. Regardless of whether your link is 5 characters or 500 characters, it occupies exactly 23 characters in your post. Check your count precisely with our Twitter character counter before you post to ensure your CTA isn't getting cut off.

Emojis and Special Characters

Emojis are treated as a single character for the purposes of the visual UI, but they are technically complex. X uses weighted counting for non-Western characters. While standard Latin text (A-Z) counts as 1 per character, certain complex emojis or specialized scripts can consume more data in the backend, though for the user-facing limit, a single emoji generally counts as 1.

Media Attachments

Images, GIFs, and videos used to count toward your character limit. That is no longer the case. You can attach the maximum of four images, one GIF, or one video without losing a single character of your 280 or 25,000 allotment.

The X Premium Advantage (and its Traps)

Upgrading to X Premium allows for long-form content up to 25,000 characters. This effectively turns a post into a blog post. However, long-form posts introduce the "Show More" problem.

The Truncation Point

Even if you write a 2,000-word essay, X still displays the first ~280 characters in the timeline. After that, the text is truncated with a blue "Show More" link. This means the first 280 characters of your long-form post must act as a "hook." If you don't convert the reader within those first few lines, the remaining 24,720 characters are invisible.

Formatting Limitations

X Premium provides basic formatting like bold and italic text, which is not available to free users. However, these styles are often stripped when viewed on third-party clients or older versions of the app. If you are looking to add flair to a standard post without a subscription, our Twitter text formatter allows you to use Unicode characters to simulate bolding, though use these sparingly as they are often inaccessible to screen readers.

Case Study: The Thread vs. The Long-Form Post

At BoldlyType, we tracked the performance of a high-value guide shared in two formats: a 12-post Thread (free method) vs. a single 1,500-word Long-Form post (Premium method).

The Thread Results:

  • Impressions: 45,000
  • Completion Rate: 12% (Users who read to the last tweet)
  • Engagement: High per-tweet utility. Each sub-tweet acted as a new entry point in the algorithm.

The Long-Form Post Results:

  • Impressions: 22,000
  • Reading Time: High for those who clicked
  • Conversion: 4% higher click-through rate to our site, likely because the context was self-contained.

The Takeaway: Threads are still better for algorithmic reach because every "reply" in your thread has a chance to be pushed to the For You page independently. Long-form posts are better for "authority" building and deep-dives where you don't want to break the reader's flow.

Rules for Direct Messages and Profiles

Character limits vary across other areas of the platform:

  • Direct Messages (DMs): These have a much more generous limit of 10,000 characters for all users, encouraging private conversation regardless of subscription status.
  • Profile Bio: You are strictly limited to 160 characters. Links in the bio field itself count as characters, but the dedicated "Website" field in your profile settings does not.
  • Display Name: 50 characters.
  • Handle (Username): 15 characters.

The Accessibility Factor

When you are pushing the character limit, avoid the temptation to remove spaces between words or use excessive abbreviations. Screen readers struggle with "TextLikeThis" or heavy use of emojis to replace words. If you are writing a long-form post via Premium, use H2-style headers (by using bold text) to create visual breaks. X does not currently support native Markdown headers (##), so you must manually format your hierarchy using bolding and line breaks.

Strategy: How to Maximize the 280 Limit

If you aren't paying for Premium, you have to be an editor.

  1. Kill the "I think": State your opinion as fact. It saves 8 characters.
  2. Use the Active Voice: "The dog bit the man" (18 characters) vs "The man was bitten by the dog" (28 characters).
  3. Front-load Information: Users scroll fast. Use your first 100 characters to state the value, and the last 180 to provide the evidence or the CTA.
  4. Threads are your Friend: If you hit the 280 limit, click the "+" icon to start a thread. This keeps your thoughts connected without the monthly subscription fee.

Whether you’re stickling to the classic 280 or exploring the 25k frontier, the goal remains the same: clarity. Space is a tool, but brevity is still the soul of X.

Ready to put this into practice?

Open a formatter

Spotted an error? Email hello@boldlytype.com — we update guides quarterly and welcome corrections.

Frequently asked questions

Latest questions readers ask us about this topic.

Do hashtags count toward the character limit?

Yes, every character in a hashtag, including the # symbol, counts toward your limit.

How many characters is a link on X?

All links are counted as 23 characters, regardless of their original length, because they are shortened using the t.co service.

Can I get more than 280 characters without paying?

The only way to exceed 280 characters for free is by creating a thread, which connects multiple posts together in a sequence.

The sub-questions readers ask next — answered, with where to go.

On X (Twitter), every URL counts as exactly 23 characters no matter how long or short the actual web address is, because X automatically wraps links in its t.co shortener. When you paste a link, X measures it as a fixed 23-character block rather than counting the raw string, so a 10-character link and a 200-character link both subtract 23 from your remaining space. This applies to free accounts working within the 280-character limit and to Premium accounts using the 25,000-character limit. It means you cannot save space by pre-shortening a URL, and pasting several links adds up fast: three links alone consume 69 of your 280 characters before any words are written.

Open the X formatter

Free X accounts are capped at 280 characters per post, while X Premium subscribers can write up to 25,000 characters in a single post, roughly 89 times more room. The 280-character preview still shows in the timeline with a 'Show more' link expanding the full text, so long posts read like an article inside one tweet rather than a thread. Both tiers share the same counting rules: standard characters count as one, many emoji and certain non-Latin scripts count as two, and every URL counts as 23 characters regardless of length. Premium is useful for long-form writing, but the first 280 characters still do the heavy lifting since that is what most people see before tapping to expand.

Count your X characters

Bold and italic styled text made with Unicode characters generally counts the same as plain letters on X, one character each, so a bold word does not consume extra space against the 280-character free limit or the 25,000-character Premium limit. These styles work by swapping normal letters for separate Unicode mathematical alphanumeric symbols that look bold or italic but remain single code points. The caveat is that some of these symbols, and many emoji, are weighted as two characters by X's counter, so a fully styled sentence can subtract slightly faster than plain text. To stay safe within tight limits, paste your styled text into a character counter before posting so the exact count, including any URLs at 23 characters each, is confirmed.

Generate bold X text

LinkedIn's post box is plain text, so there's no toolbar — the workaround the whole creator economy uses is Unicode bold. Type your line, convert it to bold Unicode, then paste it into your post, comment, headline or About section and the emphasis sticks. Bold just the hook — the part that shows before the “…see more” cut-off — to earn the click. Keep the rest plain so the post stays skimmable and accessible.

Format a LinkedIn post

Instagram collapses the returns you type in the native composer, which is why captions come out as one block. The reliable fix is to add the breaks with a tool that inserts real spacing rather than invisible-character hacks (which can break search and accessibility). Write the caption with the breaks you want, generate it, and paste the result. Put your hook on line one, since that's the part that shows before 'more'.

Open the line-break tool

WhatsApp is the exception — it has its own built-in markdown: wrap text in *asterisks* for bold, _underscores_ for italic, and ~tildes~ for strikethrough. You usually don't need Unicode there. Use a WhatsApp formatter when you want a style WhatsApp's markdown doesn't cover (like small caps or script for a status), or when you're writing once and posting the same text across several apps that don't share WhatsApp's syntax.

Format for WhatsApp

Related in this series

See all in How-to format

Explore the topic cluster

More tools and guides across this topic cluster.

Get the next post.

Craft notes on writing for the internet. One short email, every other week. No spam.

Keep reading