Character Counter
A live character count checked against every platform limit that actually matters.
- Characters
- 0
- No spaces
- 0
Everything here runs on your device. Nothing you enter is uploaded or stored.
Type or paste text and see the character count against ten platform limits at once — X posts, SMS segments, meta descriptions, title tags, Instagram captions and more — instead of checking each one separately.
How to use it
- Paste or type your text into the box.
- Read the with-spaces and without-spaces counts above the limits list.
- Scroll the limits list: every platform limit is checked simultaneously against the same text.
- Any limit you have exceeded turns red and shows exactly how many characters you are over.
Why “character” is not one universal definition
The word “character” hides a real disagreement between platforms. This tool, like most character counters, counts JavaScript UTF-16 code units — which lines up exactly with plain ASCII text and with .length in every major programming language’s default string behavior.
X (formerly Twitter) is the platform that deviates most visibly. It uses a weighted scheme where most Unicode characters count as 1, but CJK characters (Chinese, Japanese, Korean) and certain symbols count as 2, and URLs are counted at a fixed length regardless of their actual length. Replicating X’s exact algorithm client-side would require shipping their specific character-weighting table, which changes without notice — so the X figure here is accurate for plain Latin-script text and an estimate for anything else. That honesty matters more than a false precision.
The limits that are actually worth checking
Ten limits are checked at once because most writing crosses more than one platform. A product announcement might go out as an X post, an Instagram caption, and a meta description on the same day — checking each separately in three different tools wastes time when the underlying text is one draft.
The meta description and title tag limits deserve a caveat of their own: Google’s actual truncation point is measured in pixel width on the search results page, not a fixed character count. Wide characters (W, M) push the truncation point earlier than narrow ones (i, l). 158 characters for a description and 60 for a title tag are commonly cited safe approximations, not hard technical limits — text right at the edge should be checked visually in a SERP preview tool as well.
What it does not do
It does not replicate every platform’s exact counting algorithm — see the X caveat above — and it does not know about link shorteners, hashtags, or mentions that some platforms count differently from plain text. It has no memory between visits and does not save drafts; copy your text elsewhere before closing the tab if you need it again.
Platform limits checked
| Platform | Limit | Note |
|---|---|---|
| X (Twitter) post | 280 | Weighted counting on the real platform; see FAQ |
| SMS (single segment) | 160 | Longer messages split into multiple segments |
| Meta description | 158 | Pixel-based truncation on Google’s side |
| Title tag | 60 | Also pixel-based |
| Instagram bio | 150 | Fixed limit |
| Instagram caption | 2,200 | Truncated after roughly 125 in the feed |
| YouTube title | 100 | Fixed limit |
| Facebook post | 477 | Before a “See more” link appears |
| LinkedIn post | 210 | Before a “See more” link appears |
| Google search title | 60 | Same pixel caveat as the meta description |
SMS segmentation
| Character count | Segments |
|---|---|
| 1–160 | 1 segment |
| 161–306 | 2 segments (153 chars each) |
| 307–459 | 3 segments |
| 460+ | 4 or more segments |
Questions
Why does a character count differ between platforms?
Most platforms, and this tool, count in UTF-16 code units — matching plain ASCII text one-to-one. X (Twitter) is a notable exception, since it counts most Unicode as 1 but weights CJK characters and certain symbols as 2 under its own algorithm, which this tool does not replicate exactly. For anything outside plain ASCII on X specifically, treat the X figure as an estimate.
What counts as a "character" here?
A JavaScript UTF-16 code unit — the same basis .length uses natively, and the basis most character counters online actually use, whatever they imply about precision. Emoji and some symbols outside the Basic Multilingual Plane count as two code units, which can make emoji-heavy text read a few characters higher than it visually appears.
Is my text stored or sent anywhere?
No. Counting happens in your browser using JavaScript's string length. Nothing is transmitted, logged or stored — which matters if you are counting a message, a password reset text, or a draft you have not published.
Why is the meta description limit 158 and not 160?
158-160 is the commonly cited safe range before Google truncates a snippet in search results, though the real cutoff is measured in pixels, not characters, and varies with which characters are wide or narrow. 158 sits safely inside that range for typical text.
Last updated