mikaio.dev

Twitter / X Character Counter

Type or paste your tweet below. URLs are automatically counted as 23 characters each, matching Twitter's t.co link-shortening behaviour.

Count your post length the way X actually counts it

A 280-character limit sounds simple until you start writing and realise emoji, links and certain accented characters do not count the way you would expect. This counter mirrors X's (formerly Twitter's) actual counting rules as closely as a browser tool can, including the platform's distinctive treatment of URLs, so the number you see here matches what you would see in the compose box rather than a naive character count that leaves you guessing whether a post will actually fit.

How to use it

Type or paste your post into the box and the character count appears immediately below, shown against the 280-character limit with a colour-coded bar that shifts from green through amber and orange to red as you approach and then exceed the limit. Any URL you include is automatically detected and counted as exactly 23 characters, matching the platform's link-shortening behaviour, regardless of how long the actual link is. The remaining character allowance updates live as you type, so you can trim or expand your wording while watching the number rather than composing blind and checking only at the end.

Why URLs always count as 23 characters

X automatically wraps every link posted through its system with its own t.co shortening service, and every link, no matter how long or short the original address, becomes a t.co link of exactly the same fixed length. This is why a post containing a link to a short, clean address and a post containing a link to an enormous URL packed with tracking parameters cost the author exactly the same number of characters — 23, currently — against the 280-character budget. This tool replicates that behaviour by detecting URLs in your text and counting each one as 23 characters rather than its literal length, so the count you see here matches what actually happens when you post.

Emoji and the surrogate pair quirk

Emoji add a genuine wrinkle to character counting because of how they are stored internally. Most modern emoji, particularly newer or more complex ones, are represented using what is called a surrogate pair — two underlying code units rather than one — which means they frequently count as two characters rather than one in systems that measure string length the way JavaScript and many other languages do. X's own counting system has its own specific rules here that can occasionally diverge slightly from a browser's native string length calculation for unusual emoji combinations, flag sequences or emoji with modifiers such as skin tone selectors. For the overwhelming majority of everyday posts this difference is invisible, but if you are right at the edge of the limit and using several emoji, it is worth leaving a small buffer rather than trusting the count down to the exact final character.

The evolution of the character limit

Twitter launched with a 140-character limit, a figure chosen deliberately to fit a tweet plus a username within the 160-character limit of a single SMS text message, since the service was originally designed to work over text messaging as much as the web. The limit doubled to 280 characters in 2017 after data showed that many users, particularly those writing in languages that require more characters to express the same idea, were consistently running out of room. Higher character limits for paying subscribers came later, but the free 280-character limit that this counter measures against remains the standard most posts are written for.

Writing tightly within 280 characters

Because every character counts against a hard limit, writers who post regularly develop habits for trimming without losing meaning: replacing "because" with "bc" or "&" for "and" only when the tone suits it, cutting filler words that add nothing, and moving a link or a hashtag to the very end so it is the first thing to cut if a final trim is needed. Watching the live count while you write, rather than composing the whole thought first and discovering afterward that it is forty characters too long, makes this kind of tight editing far less frustrating, since you can see exactly how much room a rewording actually saves before committing to it.

Threads and multi-post drafts

When a single thought does not fit in 280 characters, the usual approach is to split it into a thread of connected posts rather than force everything into one. Drafting a thread elsewhere first and running each planned post through this counter individually is a reliable way to check that every piece of the thread fits comfortably, including a few spare characters for a "1/" style numbering prefix if you use one, before you start posting them one after another, rather than discovering mid-thread that one post needs an awkward last-second trim after you have already started publishing the earlier ones.

Private and instant

Everything runs in your own browser as you type, so your draft post is never uploaded, logged or shared with anyone, and nothing is saved once you navigate away from the page. It works offline once loaded, ready whenever you need a quick, accurate character check before you post.

Twitter character counter FAQ

Why does Twitter count URLs as 23 characters?
Twitter automatically wraps every URL through its t.co shortener, which produces links that are always 23 characters long. So whether your URL is 10 characters or 200 characters, it counts as exactly 23 toward your 280-character limit.
What is the Twitter / X character limit?
The standard character limit for a single tweet or X post is 280 characters. Twitter Blue / X Premium subscribers may have access to longer posts (up to 25,000 characters), but the free limit is 280.
Do emojis count as one character?
Most standard emojis count as 2 characters in Twitter's counting system because they use Unicode surrogate pairs. This counter uses JavaScript's string length, which may differ slightly from Twitter's exact counting for certain emoji combinations.