Free tool Character counter for every platform limit
The same line of copy can fit one field and overflow the next: X weights CJK characters and links, Google Ads counts double-width characters twice, App Store keywords are limited in bytes. Paste your text once and see, field by field, how much room is left on each platform, counted the way that platform counts.
- 30+ platform fields
- Limits with official sources
- Runs in your browser
Check your text against platform limits
Type or paste text. The table counts it for every platform field; filter by type of platform, or load an example.
A title, bio, post, store description or SMS. It stays in this browser tab and is never uploaded.
Characters
32
What you see: one letter, one CJK character or one emoji counts 1.
Double-width count
32
CJK and full-width characters count 2, others 1 (the Google Ads rule).
X weighted count
32
X rules: CJK and emoji count 2, any link counts 23, limit 280.
UTF-8 bytes
32
ASCII is 1 byte, accented letters 2, CJK 3, emoji 4. App Store keywords are limited in bytes.
Platform fields
“Limit” is the number in the platform’s own docs; “Counted as” says how that field is measured.
| Platform · field | Counted as | Now | Limit | Status |
|---|---|---|---|---|
| X (Twitter) · post | X weighted (CJK, emoji 2; links 23) | 32 | 280 | 248 left |
| Threads · text post | Characters; emoji in UTF-8 bytes | 32 | 500 | 468 left |
| Bluesky · post | Graphemes (and ≤ 3,000 bytes) | 32 | 300 | 268 left |
| Mastodon · post (default) | Characters; links 23, @ counts username only | 32 | 500 | 468 left |
| LinkedIn · post | 1 per character | 32 | 3,000 | 2,968 left |
| Instagram · caption | 1 per character | 32 | 2,200 | 2,168 left |
| Instagram · hashtags | Number of # hashtags | 0 | 30 | 30 left |
| TikTok · caption (API) | UTF-16 code units (emoji mostly 2) | 32 | 2,200 | 2,168 left |
| YouTube · video title | 1 per character | 32 | 100 | 68 left |
| YouTube · description | 1 per character | 32 | 5,000 | 4,968 left |
| App Store · app name | 1 per character | 32 | 2–30 | 2 over |
| App Store · subtitle | 1 per character | 32 | 30 | 2 over |
| App Store · promotional text | 1 per character | 32 | 170 | 138 left |
| App Store · keywords | UTF-8 bytes | 32 | 100 | 68 left |
| App Store · description | 1 per character | 32 | 4,000 | 3,968 left |
| Google Play · app name | 1 per character | 32 | 30 | 2 over |
| Google Play · short description | 1 per character | 32 | 80 | 48 left |
| Google Play · full description | 1 per character | 32 | 4,000 | 3,968 left |
| Google Play · release notes | 1 per character | 32 | 500 | 468 left |
| Google Ads · headline (RSA) | CJK / full-width count 2 | 32 | 30 | 2 over |
| Google Ads · description (RSA) | CJK / full-width count 2 | 32 | 90 | 58 left |
| Google Ads · display path | CJK / full-width count 2 | 32 | 15 | 17 over |
| Google Search · title tag | No length rule | 32 | No fixed limit | Truncated by width |
| Google Search · meta description | No length rule | 32 | No fixed limit | Truncated by width |
| Baidu · page title | No length rule | 32 | No fixed limit | Truncated by width |
| WeChat Official Account · article title (draft API) | 1 per character | 32 | 32 | Exactly at limit |
| WeChat Official Account · summary (draft API) | 1 per character | 32 | 120 | 88 left |
| WeChat mini program · description | 1 per character | 32 | 4–120 | 88 left |
| Alipay mini program · name | CJK / full-width count 2 | 32 | 3–30 | 2 over |
| Alipay mini program · short description | CJK / full-width count 2 | 32 | 10–32 | Exactly at limit |
| Douyin mini program · name | CJK / full-width count 2 | 32 | 4–20 | 12 over |
| Douyin mini program · description | 1 per character | 32 | 10–60 | 28 left |
| Weibo · post (open API) | 1 per character | 32 | 140 | 108 left |
| Douyin · video caption (open API) | 1 per character | 32 | 1,000 | 968 left |
| Bilibili · video title (open API, < 80) | 1 per character | 32 | 79 | 47 left |
| Bilibili · video description (open API, < 250) | 1 per character | 32 | 249 | 217 left |
| SMS · one message | GSM-7 / UCS-2 encoding | 32 (GSM-7) | 160 per message | 1 message |
Version v1.0Updated Update history
Why platforms disagree about the same text
“Character” means something different on each platform. Read the “Counted as” column first, then the status.
X’s weighted count
Per the X developer docs, posts allow 280 characters, but Chinese, Japanese and Korean characters count 2 each, every emoji counts 2 however complex it is, and every link counts 23. The tool follows the v3 configuration of X’s open-source twitter-text library and is tested against that library’s conformance cases.
Byte limits
App Store keywords allow 100 bytes, not 100 characters. Plain English is one byte per character; accented letters take 2 bytes and CJK characters 3 in UTF-8. Apple does not name the encoding, so the tool estimates with UTF-8.
Double-width rules
Google Ads counts each character of double-width languages such as Chinese, Japanese and Korean as two, so a 30-character headline holds 15 CJK characters. The same rule applies to Alipay and Douyin mini program names.
Places with no limit
Google says there is no limit on the length of a title element or meta description; search results cut them to fit the device width. These rows show a count only. Check what will actually display with the SERP preview, which measures pixels.
“Nearly full” appears when less than 10% is left. Rows marked API or open API are limits from a platform’s developer API docs; the app or web editor may allow a different length, so trust the platform’s own warning when you publish.
Check copy before you publish
Titles, bios and store copy usually go to several platforms at once. One paste checks them all.
-
1
Paste your copy
Paste the title, description or post. The table updates as you edit.
-
2
Pick a platform group
If you only care about social or app stores, filter with “Show platforms”.
-
3
Read the status
Red means over the limit or below the minimum, orange means nearly full, green means room left. The exact number over is in the status.
-
4
Confirm on the platform
Do a final check in the platform’s own editor: API limits and editor limits can differ, and platforms change their rules.
Every limit comes from the platform’s own docs
Only numbers stated in a platform’s help center, developer docs or API reference are included, each checked on 2026-11-10. Numbers that appear only in third-party articles (Facebook’s 63,206 characters, for example) are left out.
- “1 per character” means one per Unicode code point: a letter or a CJK character is 1. Emoji built from several code points (skin tones, families) count as several, which errs on the safe side
- X: text is NFC-normalized, then weighted by the twitter-text v3 code point ranges (U+0000–U+10FF and a few punctuation ranges count 1, everything else 2). Link detection is a simplified version of the official extractor and handles common domains
- Bluesky has two limits at once: 300 graphemes (visible characters) and 3,000 bytes; both must hold
- SMS: all-GSM-7 text fits 160 characters in one message and 153 per part when split; a single character outside GSM-7 (any emoji or CJK) switches the whole message to UCS-2: 70 per message, 67 per part (Twilio docs)
| Platform · field | Limit | What the docs say |
|---|---|---|
| X post | 280 (weighted) | X developer docs: CJK counts 2, links count 23 |
| Threads text post | 500 | Threads API: emojis counted as UTF-8 bytes |
| Bluesky post | 300 graphemes | app.bsky.feed.post lexicon: maxGraphemes 300, maxLength 3000 |
| LinkedIn post | 3,000 | LinkedIn Help |
| Instagram caption | 2,200 · 30 hashtags | Instagram Graph API |
| YouTube title / description | 100 / 5,000 | YouTube Help |
| App Store name / subtitle / keywords | 30 / 30 / 100 bytes | App Store Connect Help |
| Google Play name / short / full | 30 / 80 / 4,000 | Play Console Help: full- and half-width both count 1 |
| Google Ads headline / description | 30 / 90 | Google Ads Help: double-width characters count 2 |
| Google title / meta description | No limit | Google Search Central: truncated to fit the device |
One line of copy, five different counts
The default example, “Analytics and live chat, one app”, has 32 characters including spaces and one comma, all plain ASCII.
| Platform · field | Counted as | Count | Limit | Result |
|---|---|---|---|---|
| App Store subtitle | 1 per character | 32 | 30 | 2 over: drop “one ” or the comma |
| Google Play app name | 1 per character | 32 | 30 | 2 over |
| Google Ads headline | CJK counts 2 (none here) | 32 | 30 | 2 over |
| X post | Weighted | 32 | 280 | 248 left |
| App Store keywords | UTF-8 bytes | 32 | 100 bytes | 68 left |
With English text most counts agree; they split apart once CJK characters, emoji or links appear. Translate the same subtitle into Chinese and the Google Ads count doubles while the App Store count barely moves.
Counts that don’t match usually mean the rule is different
When a platform says you are over and your own count says you are not, it is almost always one of these.
Assuming one character is one character
Google Ads and several mini program platforms count CJK as 2. A 30-character field holds only 15 Chinese characters.
Expecting links to count at their length
X and Mastodon count every link as 23. A long link with UTM parameters costs no more; a short one costs no less.
Writing to a “60-character title rule”
Google has no character limit for titles or descriptions; truncation is by display width. Wide letters like W and M use it up faster. Check with the SERP preview.
One emoji in an SMS
A single character outside GSM-7 switches the whole SMS to UCS-2, cutting a message from 160 to 70 characters, so a long text splits into more billed parts.
After you publish, see what the copy brought in
Fitting the limit is step one. Once a title, bio or post is live, TapCub shows which one brought visitors and which page gets clicked in search.
Search performance
Connect Google Search Console and Bing Webmaster to see clicks, impressions and average position per page; pages ranking in the top 10 with a low click rate are the ones to rewrite.
Learn moreMarketing analytics
Tag each post and ad link with UTM parameters and compare visitors and conversions by source, medium and campaign.
Learn moreSources
Social networks, search engines and AI assistants reported separately, so you can tell which platform’s copy actually gets clicks.
Learn moreCharacter counter FAQ
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
How is this different from a word counter?
A word counter answers “how long is this article?”: words, sentences, reading time. A character counter answers “will this fit in that field?”. Each platform counts differently (CJK as 2, links as 23, bytes instead of characters), so this tool counts once per platform field.
How many characters can an X post have?
280 weighted characters for a standard account. Latin letters, digits and common punctuation count 1; Chinese, Japanese and Korean characters count 2; every emoji counts 2; every link counts 23 regardless of length. The tool follows X’s open-source twitter-text rules.
Do emoji count as one character?
Depends on the platform. X counts any emoji as 2. Threads counts an emoji by its UTF-8 bytes (often 4, more for combined emoji). Bluesky counts graphemes, so one emoji is 1 but its bytes also count toward a 3,000-byte cap. TikTok’s API counts UTF-16 code units, usually 2 per emoji.
What is the App Store keyword limit in characters?
Apple states 100 bytes, not characters. In UTF-8 plain English is one byte per character, so it is 100 characters including commas; accented letters take 2 bytes and CJK characters 3. Apple does not name the encoding, so treat the byte count as an estimate.
Is there a character limit for title tags and meta descriptions?
No fixed one. Google Search Central says there is no limit on the length of a meta description or title element; results are truncated to fit the device width. The common “60 / 160 characters” advice is a rule of thumb, not a Google rule.
How many characters fit in one SMS?
160 if every character is in the GSM-7 alphabet, 70 if any character is not (emoji, CJK, many symbols). Longer messages are split into parts of 153 or 67 characters. Some GSM-7 symbols such as { } [ ] ~ and € take two slots.
Why is Facebook not in the list?
Meta’s help center and Graph API docs don’t state a post length limit; the often-quoted 63,206 comes from 2011 press coverage. The tool only includes limits a platform documents itself.
Is my text uploaded?
No. Everything is counted in your browser. The text is not put in the URL and is not sent to TapCub.
Update history
New features, fixes and data refreshes for this tool, newest first.
-
· v1.0
LaunchedFirst release.
Data this tool relies on
- Platform character limits — checked 2026-11-10, reviewed every 6 months (next review by 2027-05-10)
Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates
See which copy actually brings visitors
With TapCub on your site or app, visitors and conversions from every channel and every UTM-tagged link sit in one place.