Free Tool

Character Counter

Count characters, words, sentences, graphemes, and Twitter-weighted characters. Live limits for X, Bluesky, Threads, Instagram, LinkedIn, TikTok, SMS, SEO, and more.

0

Characters

0

No Spaces

0

Graphemes

emoji-safe

0

Twitter weight

X count

0

Words

0

Sentences

0

Paragraphs

0

Lines

Platform limits

X (Twitter)280 left

Post · 280 max

Bluesky300 left

Post · 300 max

Threads500 left

Post · 500 max

Mastodon500 left

Post · 500 max

LinkedIn post3000 left

Post · 3,000 max

Instagram caption2200 left

Caption · 2,200 max

TikTok caption4000 left

Caption · 4,000 max

Facebook post63206 left

Post · 63,206 max

YouTube description5000 left

Description · 5,000 max

Pinterest pin500 left

Description · 500 max

Instagram bio150 left

Bio · 150 max

X bio160 left

Bio · 160 max

TikTok bio80 left

Bio · 80 max

SEO title tag60 left

HTML <title> · 60 max

Meta description160 left

meta[name=description] · 160 max

Google Ads headline30 left

Headline · 30 max

Google Ads description90 left

Description · 90 max

SMS (single)160 left

GSM 7-bit; longer auto-splits · 160 max

WhatsApp status700 left

Text status · 700 max

YouTube title100 left

Video title · 100 max

What is a character counter?

A character counter shows you how many characters, words, sentences, and paragraphs are in your text — and crucially, how those numbers compare to the limits enforced by every platform you might publish on. It's essential for social media managers (X has a 280-character ceiling, Instagram caps at 2,200, Threads at 500), SEO writers (meta descriptions truncate at ~160 chars), marketers (Google Ads headlines max at 30 chars), and developers fitting copy into UI components. This free tool runs entirely in your browser and gives you platform-by-platform live remaining counts, plus emoji-safe grapheme counting and accurate Twitter-weighted counts for X.

Why our count is different from text.length

JavaScript's built-in text.length is character-naive: emoji like 👨‍👩‍👧 count as 5+ characters because they're composed of multiple Unicode code points joined by zero-width joiners. Native CJK characters often count as 1 in length but as 2 by X's algorithm. URLs in tweets count as 23 characters regardless of actual length. This tool exposes:

  • Characters — raw JavaScript .length. Useful as a sanity baseline but wrong for emoji.
  • Graphemes — uses Intl.Segmenter for accurate visible-character count. "👨‍👩‍👧" counts as 1 grapheme. Matches what Instagram and most platforms display as the visible count.
  • Twitter weight — approximates twitter-text v3: URLs count as 23, CJK/emoji weight 2, ASCII weight 1. Use this number when composing tweets — it matches what X displays.

Character limits across every major platform (2026)

PlatformLimitNotes
X (Twitter)280Verified accounts on X Premium: 4,000
Bluesky300Hard limit, AT Protocol enforced
Threads500Plus 10 images / 1 video per post
Mastodon500Default; some instances allow more
LinkedIn post3,000Premium: 3,000 same
Instagram caption2,200Only first 125 shown before "more"
Instagram bio150Plus 30 hashtags / mentions
TikTok caption4,000Increased from 2,200 in 2023
TikTok bio80Notoriously short
Facebook post63,206Practically unlimited — first 480 visible
YouTube title100~70 visible in search results
YouTube description5,000First 100-200 visible above "more"
Pinterest pin500First 50-60 visible in feed
SEO title (HTML <title>)60Truncated by pixel width in SERP
Meta description160120 on mobile
Google Ads headline303-15 headlines per ad
Google Ads description902-4 descriptions per ad
SMS (single segment)160GSM 7-bit; longer auto-splits
WhatsApp status700Text status; voice/video have own limits

How to use the character counter

  1. Paste or type your text into the input box above.
  2. Character, word, sentence, and grapheme counts update in real time.
  3. Check the sidebar to see how your text fits each platform's limit. The Remaining column shows characters left (or how many over you are).
  4. The progress bar turns red when you exceed a limit and amber when you're within 10% of it.
  5. Copy stats with the "Copy stats" button.

Frequently Asked Questions

Why does emoji counting matter?

Different platforms count emoji differently. X (Twitter) counts most single emoji as 2 weighted characters. Instagram and TikTok generally count emoji as 1 grapheme each. JavaScript'stext.length can give you 2-7 characters per emoji depending on the emoji's internal structure. This tool exposes both the raw character count and the grapheme count, plus the Twitter-weighted count specifically — so the count you see matches what the platform sees.

Why are URLs in tweets always 23 characters?

X (formerly Twitter) automatically shortens every URL through its t.co wrapper. Regardless of the URL's actual length (5 chars or 500 chars), it counts as 23 weighted characters in your tweet. The "Twitter weight" counter above replaces URLs with a 23-char placeholder before counting.

What is the ideal SEO title tag length?

Google truncates title tags by pixel width (not character count) at roughly 580px on desktop and ~500px on mobile. As a practical guideline, keep your <title> under 60 characters to ensure it displays without truncation across devices. If you have multiple long words, aim for 55 chars or below.

What is the ideal meta description length?

Google typically displays 155-160 characters of a meta description on desktop and ~120 characters on mobile. Keep meta descriptions to ~120 characters to ensure they show on both. Include your target keyword in the first 110 characters and add a compelling call-to-action.

Do spaces count as characters?

On every social media platform — yes. Spaces are characters. This tool shows both counts — with and without spaces — for cases where you care specifically about visible text density. Most platforms count "hello world" as 11 characters (5 + space + 5), not 10.

Why is my SMS message splitting into multiple messages?

SMS encoded as GSM 7-bit fits 160 characters per segment. If your message contains a single Unicode character (emoji, em-dash, smart quote), the entire SMS is re-encoded as UCS-2 (Unicode) which only fits 70 characters per segment. Replace smart quotes () with plain (") and you may save segments.

What's the difference between "Characters" and "Graphemes" on this tool?

Characters is JavaScript's raw length — counts each UTF-16 code unit. Surrogate-paired emoji count as 2; ZWJ-joined family emoji can count as 5-11.Graphemes uses Intl.Segmenter to count visible characters — a family emoji counts as 1, a flag emoji counts as 1. Match this to what the platform displays.

Is my text private?

Yes — 100%. All counting happens in your browser. Nothing is sent to a server, stored, or logged. Audit the page's network tab to verify — no XHR/fetch requests are made when you type.

Want perfectly-sized content every time?

Quillly is the blogging platform for the AI era — generates SEO-optimized blog posts within ideal character and word counts automatically.