Character Counter

The Character Counter breaks down your text into detailed character statistics — total characters, letters, uppercase, lowercase, digits, spaces, and special characters — all updated live as you type.

Built by Bob Article by Lace QA by Ben Shipped

Characters (with spaces)

0

Characters (no spaces)

0

Words

0

Sentences

0

Paragraphs

0

How to use

  1. 1

    Type or paste your text.

  2. 2

    All character stats update instantly.

  3. 3

    Use the breakdown to meet character limits for social media or forms.

Frequently asked questions

Ratings & Reviews

Rate this tool

Sign in to rate and review this tool.

Loading reviews…

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 / formatCharacter limitWhat the limit applies to
Twitter/X post280Body of a single post (URLs count as 23 regardless of length)
Twitter/X bio160Profile description field
Threads post500Body of a single post
Bluesky post300Body of a single post
Instagram caption2,200Post caption (only first 125 show before "more")
Instagram bio150Profile description
LinkedIn post3,000Body of a feed post (1,300 is the readability sweet spot)
LinkedIn headline220Tagline below your name
Facebook post63,206Hard cap; under 80 gets the most engagement
Single SMS160Standard 7-bit GSM encoding; drops to 70 with non-Latin characters
SMS segment (concatenated)153Per segment when a message splits across multiple SMS
Google search title tag~60Pixel-width truncation around 600px; 60 chars is the safe budget
Google meta description~160Pixel-width truncation around 920px; 155 chars is the safe budget
YouTube video title100Hard cap; under 60 keeps the full title visible in search
YouTube description5,000Hard cap; first 125 chars show in the preview
Email subject line (Gmail mobile)~30Truncated past 30 on iPhone Gmail app
Email subject line (Gmail desktop)~70Truncated past 70 on the desktop web view
Google Ads headline30Per headline (up to 15 headlines per responsive ad)
Google Ads description90Per 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.co shortener 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.