What does the Character Counter do?
The Character Counter measures how long a piece of text actually is. Paste in a sentence, a tweet, an email subject line, or a thousand-word essay — and the tool instantly reports characters (with and without spaces), words, sentences, and paragraphs.
The counts update as you type. There's no button to press, no signup, no upload. Your text stays in your browser; nothing gets sent anywhere. That's the whole point: when you need to know "am I under the 280-character cap?" the answer should take a glance, not three clicks and a cookie banner.
Most online counters either hide the count under an ad layer or open with a sign-up wall before they'll count past 500 characters. This one just counts.
When character count matters more than word count
Word count is the famous metric, but plenty of writing contexts care about characters first. The reason is simple: machines enforce limits in characters, not words. A database column is 255 bytes. A tweet is 280 characters. An SMS is 160 characters. A meta description has no formal cap, but Google truncates around 160 characters of pixel width.
Some of the situations where character count is the metric:
- Social media posts — Twitter/X (280), Threads (500), Bluesky (300), LinkedIn (3,000), Instagram captions (2,200), Mastodon (500, configurable)
- Bios and profiles — Twitter bio (160), Instagram bio (150), LinkedIn headline (220), GitHub bio (160)
- SEO meta tags — Title tags (~60), meta descriptions (~160), Open Graph descriptions (~200)
- SMS marketing — Single SMS (160), concatenated SMS (153 per segment), MMS (no hard limit but performance falls off)
- Email subject lines — Gmail mobile truncates around 30 characters, desktop around 70
- Ad copy — Google Ads headlines (30), descriptions (90), display name (25); Facebook primary text best under 125
- Form fields — Most databases cap text columns at 255 characters; longer fields use a different column type entirely
Word count is what humans use to judge length; character count is what platforms use to enforce it. The Character Counter shows both so you can answer the human question and the platform question from the same paste.
How the counts are calculated (a worked example)
Take a short, realistic example — a tweet draft:
"Hello world! How are you?"
Here's what the Character Counter reports for that exact text:
- Characters (with spaces): 25 — every typed character, including the four spaces and the exclamation/question marks
- Characters (no spaces): 21 — same count minus the four spaces
- Words: 5 — "Hello," "world," "How," "are," "you"
- Sentences: 2 — split by the
!and the? - Paragraphs: 1 — no blank lines, so the whole thing is one paragraph
Each metric uses a simple definition:
- Characters with spaces = every character in the input, including punctuation, whitespace, line breaks, and emoji
- Characters without spaces = the same count, minus spaces, tabs, and newlines
- Words = any sequence of letters or digits surrounded by non-word characters (handles hyphens, apostrophes, and embedded numbers consistently)
- Sentences = chunks of text ending in
.,!, or? - Paragraphs = chunks separated by one or more blank lines
The "without spaces" count is the one that matters for SMS pricing and some legacy database fields. The "with spaces" count is what Twitter, Instagram, and most modern platforms use.
Platform limits worth memorizing
Knowing the cap before you start writing saves real time. The table below covers the limits most people hit most often, all measured in characters with spaces (the standard for modern platforms):
| Platform / format | Character limit | What the limit applies to |
|---|---|---|
| Twitter/X post | 280 | Body of a single post (URLs count as 23 regardless of length) |
| Twitter/X bio | 160 | Profile description field |
| Threads post | 500 | Body of a single post |
| Bluesky post | 300 | Body of a single post |
| Instagram caption | 2,200 | Post caption (only first 125 show before "more") |
| Instagram bio | 150 | Profile description |
| LinkedIn post | 3,000 | Body of a feed post (1,300 is the readability sweet spot) |
| LinkedIn headline | 220 | Tagline below your name |
| Facebook post | 63,206 | Hard cap; under 80 gets the most engagement |
| Single SMS | 160 | Standard 7-bit GSM encoding; drops to 70 with non-Latin characters |
| SMS segment (concatenated) | 153 | Per segment when a message splits across multiple SMS |
| Google search title tag | ~60 | Pixel-width truncation around 600px; 60 chars is the safe budget |
| Google meta description | ~160 | Pixel-width truncation around 920px; 155 chars is the safe budget |
| YouTube video title | 100 | Hard cap; under 60 keeps the full title visible in search |
| YouTube description | 5,000 | Hard cap; first 125 chars show in the preview |
| Email subject line (Gmail mobile) | ~30 | Truncated past 30 on iPhone Gmail app |
| Email subject line (Gmail desktop) | ~70 | Truncated past 70 on the desktop web view |
| Google Ads headline | 30 | Per headline (up to 15 headlines per responsive ad) |
| Google Ads description | 90 | Per description (up to 4 descriptions per ad) |
A few patterns worth noticing. The shortest limits — Google Ads headlines (30), SMS (160), bios (150-160) — force the tightest writing. The longest limits — Facebook (63K) and YouTube descriptions (5K) — almost never get hit. The interesting work happens in the middle: Twitter at 280 and meta descriptions at 160 are where character counting actually changes how you write.
The other thing the table tells you: most platforms cluster around the same limits because the limits were inherited. Twitter borrowed the 160-character SMS cap (they shaved 20 off for the username). LinkedIn's 3,000 was set to roughly match a single screen of text. The numbers feel arbitrary until you see the lineage.
The edge cases that throw counts off
Two character counters can give different numbers for the same input. The reason is almost always one of these:
- Emoji. A simple emoji like 😀 is one Unicode code point and counts as one character on most platforms. But a complex emoji like 👨👩👧👦 (family) is actually four emoji joined by zero-width joiners — Twitter counts it as one, but a naive character counter might count seven. Skin-tone modifiers add another character each. If your text has emoji, expect platform counts to differ slightly from a generic counter.
- URLs on Twitter. Twitter wraps every URL with their
t.coshortener and counts every URL as 23 characters, regardless of the actual length. A 100-character URL "costs" 23. The Character Counter reports the true length, so a tweet that looks too long in this tool may still post fine on Twitter. - Line breaks. A single line break (Enter) is one character (
\n). On Windows files, line breaks are sometimes two characters (\r\n). Pasting from a Windows-saved text file can inflate the count slightly. - Non-Latin characters in SMS. Standard SMS uses 7-bit encoding and fits 160 characters per message. Any non-Latin character (Chinese, Arabic, Cyrillic, even an em-dash or a curly quote) switches the whole message to 16-bit Unicode, which drops the limit to 70 characters per segment. One curly quote can turn a one-message SMS into a three-message one — and the carrier charges accordingly.
- Markdown formatting. Asterisks for bold, brackets for links, hash marks for headings — Markdown adds characters you usually don't want counted. If your destination renders the Markdown, strip it before counting.
The rule of thumb: if you're within 5% of a hard cap, double-check on the platform itself before publishing. Counters get the math right for plain text; platforms apply their own rules for URLs, mentions, and special characters.
How the counter handles different kinds of text
The Character Counter runs entirely in your browser — no server, no API, no copy of your text saved anywhere. Because the work happens locally, the speed is constant: a 25-character tweet and a 250,000-character novel both update in under a millisecond. Whatever your browser can hold in memory (usually well over a million characters) will count cleanly.
The counter works across languages. European languages with accented characters (French café, Spanish niño, German Straße) count the same as English. Right-to-left languages (Arabic, Hebrew) work for both characters and words. Languages without spaces (Chinese, Japanese, Thai) get accurate character counts but unreliable word counts, since the counter looks for whitespace to split words.
For most writing, the numbers match what Word and Google Docs report. Small discrepancies (one or two characters) usually come down to how each tool handles trailing whitespace, line endings, or composed-versus-decomposed Unicode characters. If a specific platform's count is the one that matters, paste into the platform itself for the final check.
Related text tools
The Character Counter is one of a small family of text-analysis tools. Pick the one that matches your question:
- Word Counter — when word count is the headline metric (essays, blog posts, articles). Adds reading time and richer breakdowns.
- Sentence Counter — focused on sentence and paragraph structure, useful for editing flow rather than length.
- Vowel Counter — counts vowels and consonants. Useful for word games, linguistics work, and readability analysis.
- Case Converter — switches text between UPPERCASE, lowercase, Title Case, camelCase, snake_case, and kebab-case in one click.
Frequently asked questions
Is my text stored anywhere?
No. The Character Counter runs entirely in your browser as JavaScript. Your text never reaches any server, never gets logged, and disappears the moment you close the tab. Safe for confidential drafts, internal documents, or anything you'd rather not paste into a cloud service.
Why does the Character Counter give a different number than Twitter?
The most common reason is URLs. Twitter wraps every link with their t.co shortener and counts each URL as 23 characters, regardless of the actual length. A 100-character URL "costs" 23 on Twitter. The Character Counter reports the true length, so a tweet that looks long here may post fine on Twitter. The other source of difference is emoji — complex emoji (family, skin-tone modifiers) are counted as one on Twitter but may count as multiple in a naive character counter.
Should I count characters with or without spaces?
With spaces for almost every modern platform — Twitter, Instagram, LinkedIn, Google's meta description budget. Without spaces matters for some legacy database fields and a few SMS pricing calculators. When in doubt, use "with spaces" — that's the platform-standard count.
What counts as a character?
Every typed character: letters, digits, punctuation, spaces, line breaks, and emoji. Tabs count as one. A line break counts as one (or two if the file uses Windows-style line endings). One curly quote, em-dash, or accented letter is one character to the counter — but on SMS systems, those characters switch the encoding and can shrink your effective limit.
Does the Character Counter handle emoji correctly?
Mostly. A simple emoji like 😀 counts as one character. Complex emoji built from multiple Unicode code points — like skin-tone modifiers (👋🏽) or family emoji (👨👩👧👦) — may count as multiple characters depending on how the joining sequence is encoded. Platforms count these differently, so when emoji are load-bearing for a character cap, post a test draft and check the platform's count.
Is there a maximum text length?
Practically, no. The Character Counter handles millions of characters with no slowdown because everything runs in your browser. Whatever your browser will hold in a single textarea will count instantly.
How is "characters without spaces" different from "characters with spaces"?
"Without spaces" excludes every whitespace character — regular spaces, tabs, and line breaks. Everything else (letters, digits, punctuation, emoji) still counts. The difference is useful when comparing to certain SMS pricing systems or when reporting "billable" length in translation contracts, which historically priced by characters excluding whitespace.