Skip to main content
Home / Tools / Tweet Length Checker

Tweet Length Checker

Count your tweet the way X actually counts it: weighted characters, every URL priced at 23 via t.co, emoji and CJK at double weight — against the real 280-character limit. Includes a thread splitter for long drafts.

100% client-side — your draft never leaves your browser URLs always cost 23 · emoji cost 2 · CJK costs 2

1. Your draft

280
characters left
0
weighted used
0
words
0
URLs (23 each)
0
emoji
280 characters for a standard post. Warnings appear under 20 remaining.

3. Thread splitter

Over the limit? Split the draft into a numbered thread. Each tweet reserves its i/N suffix from its own 280 budget, so every part is postable as-is.

4. Worked examples

Every number below was computed by this page's own counting engine — not typed by hand.

Example 1 · emoji
Just shipped our new landing page 🎉
36 used · 244 remaining · 7 words · 1 emoji — the 🎉 costs 2, everything else costs 1.
Example 2 · long URL
Read the full guide: https://example.com/blog/how-to-write-better-tweets-in-2026
44 used · 236 remaining · 1 URL — the 59-character link is priced at a flat 23 (21 text + 23).
Example 3 · emoji with variation selector
Good morning ☀️☕
19 used · 261 remaining — 13 light characters + ☀ (2) + variation selector (2) + ☕ (2).
Example 4 · CJK
你好,世界!New post is live 🚀
31 used · 249 remaining — the 6 CJK characters/punctuation cost 2 each (12), the rest is light.
Example 5 · everything at once
@nrtechstudio New tool is live! Try it: https://nrtechstudio.com/tools/tweet-length/ 🚀 #buildinpublic
81 used · 199 remaining · 1 URL · 10 words · 1 emoji — mentions and hashtags count as normal text.
Example 6 · thread split
A 458-weighted-character draft about the 280 limit…
Split into 2 tweets: tweet 1/2 uses 277 (incl. the " 1/2" suffix), tweet 2/2 uses 188 (incl. " 2/2"). Both fit.

5. How the counting works

  • Weighted model, not raw length. This tool implements X's published weighted scheme (twitter-text v3 config): limit 280, every URL 23, code points inside the ranges [0–4351], [8192–8205], [8208–8223], [8242–8247] cost 1, everything else costs 2.
  • URLs. http(s):// links are detected and priced at 23 each. Trailing punctuation (. , ! ? ) …) is excluded from the link, and a closing parenthesis is kept only when parentheses are balanced — mirroring how X linkifies text. Bare www.example.com links without a protocol are counted literally.
  • Emoji & CJK. Counted per Unicode code point: 😀 = 2, 👍🏽 = 4, 🇮🇩 = 4, 你好 = 4. A ZWJ family (👨‍👩‍👧‍👦) costs 11 here — 2 per person emoji plus 1 per joiner, since U+200D is itself a light character — deliberately conservative versus X's docs, which describe joined emoji as a single pair.
  • Normalization. Text is NFC-normalized before counting, matching X: "café" costs 4 whether the é is one code point or two.
  • Thread splitter. Greedy word packing; a single over-long word is hard-split by code point. The i/N suffix is reserved from each tweet's own 280 budget, and every part is re-measured after numbering. Line breaks are treated as spaces when splitting.
  • Honest limits. This is a client-side approximation of X's rules. X can change its config; media attachments cost 0 here as on X; X Premium's 25,000-character posts are not tracked — this tool targets the standard 280 limit.

6. Frequently asked questions

Is the 280-character limit still in effect on X?

Yes. Every free X account can post up to 280 characters, and this counter tracks exactly that budget. X Premium subscribers can publish posts up to 25,000 characters, but the standard 280-character post is still the default experience on the network — and the format most reach and engagement data is based on.

Why does every URL count as exactly 23 characters?

X wraps every link in its t.co shortener before publishing, so the original address — whether 12 or 200 characters long — is replaced by a t.co link that always costs 23 characters. This tool detects http(s) links in your draft and prices each one at 23 automatically, so shortening links by hand saves you nothing.

How does X count emojis?

Under X's weighted rules, most emoji cost 2 characters each because they sit outside the light Unicode ranges. This tool counts per Unicode code point, so a simple emoji like 🎉 costs 2, while a zero-width-joiner sequence such as the family emoji 👨‍👩‍👧‍👦 costs 11 in total — 2 for each of the four person emoji plus 1 for each of the three joiners (U+200D is itself a light character). Note that X's own docs describe joined and skin-tone emoji as a single pair, so this tool is deliberately conservative on complex emoji: if it says your draft fits, it fits.

Why do Chinese, Japanese, and Korean characters count double?

When Twitter moved from 140 to 280 characters in 2017, it kept Japanese, Korean, and Chinese at their old ceiling: each CJK character carries roughly twice the information of a Latin character, so each one costs 2. Technically, X gives weight 2 to every code point outside a small set of light ranges (basic Latin plus common punctuation and symbols) — CJK, emoji, and arrows all cost double.

Do spaces and line breaks count toward the limit?

Yes. Spaces, tabs, and line breaks each cost 1 character, exactly like letters. The only special cases are URLs at a flat 23, media attachments at 0, and double-weight characters such as emoji and CJK.

Do photos, videos, GIFs, or polls use up characters?

No. Media attachments — photos, videos, GIFs, and polls — cost 0 characters and do not shrink your 280 budget. Only the text itself, with each URL priced at a flat 23, counts.

How is this different from a normal character counter?

A plain character counter treats every character as 1, so a draft with a long URL or several emoji can look fine there yet get rejected by X. This tool applies X's real weighted rules — URLs at a flat 23, double weight for emoji, CJK, and symbols — and adds a thread splitter that reserves the numbered i/N suffix from each tweet's own 280 budget.

Is my draft uploaded to any server?

No. All counting happens in your browser with JavaScript: your text never leaves your device, there is no account or signup, and the page keeps working even if you go offline after it loads.

7. Related tools

Free tool by NRTechStudio