Keywords
Start typing to get a list of keywords and the keyword density.
Character Counter Guide — How Counting Works, Platform Limits & Edge Cases
The counter above updates as you type. The sections below explain what those numbers mean, where limits come from, and how to avoid posts getting cut off, SMS bills doubling, or search snippets truncating mid-thought.
What Counting Characters Actually Means
A character counter measures how long a string of text is using a specific counting rule. That rule matters because platforms do not all count the same way. What looks like one symbol on screen might be two code units in memory, four bytes on the wire, or one weighted unit on a social network.
Character count is the metric platforms enforce. Word count is the metric humans use to judge length. Both appear in the tool above because you often need both answers from the same draft.
Characters With Spaces vs Without Spaces
Most modern limits — tweets, captions, meta descriptions, ad headlines — include spaces. A space is a real character (Unicode U+0020), not empty room.
Characters without spaces still matter in a few contexts:
- Translation agencies sometimes price per 1,000 non-space characters
- Legacy database fields were sized without whitespace
- Some academic briefs specify “characters excluding spaces”
Example: The phrase Hello world is 11 characters with the space, 10 without. For a 280-character tweet budget, use the with-spaces total.
Common mistake: Checking the no-spaces figure, then posting to a platform that counts spaces. The post gets rejected or truncated even though your counter looked fine.
Characters, Letters, and Graphemes — Three Different Numbers
These three terms get mixed up constantly:
| Term | What it measures | Example: “café” |
|---|---|---|
| Letters | Alphabetic symbols only | 4 (c, a, f, e — é may or may not count depending on tool) |
| Characters (code points) | Every symbol including spaces, digits, punctuation | 5 or 6 depending on how é is stored |
| Graphemes | What a reader sees as one unit | 4 visible symbols |
The family emoji 👨👩👧 is one grapheme on screen but multiple Unicode code points joined by zero-width joiners (ZWJ). A basic counter may report 5–8 characters while the platform shows one icon.
Why it matters: You can be under a visual limit but over a technical one — or the reverse — depending on which layer the platform checks.
Character Count vs Word Count — When Each One Applies
Use character count when a system enforces a hard ceiling: social posts, SMS, HTML title tags, form inputs, database columns, ad copy fields.
Use word count when a human sets the rule: essays, blog posts, journal abstracts, readability targets, speaking-time estimates.
A 500-word paragraph might be 2,800 characters or 4,200 depending on vocabulary. A 280-character tweet is rarely more than 45 words. Same text, different constraints — check the right metric before you publish.
How Character Counting Works Under the Hood
Understanding the mechanics behind the numbers helps you predict when a platform will disagree with a generic counter.
Unicode Code Points — What Your Browser Counts
JavaScript — and most browser-based counters — measure string length in UTF-16 code units. Basic ASCII letters, digits, and punctuation each use one unit. Characters above U+FFFF (many emoji) use two units called a surrogate pair, so .length returns 2 for a single visible emoji like 😀.
European accented letters in pre-composed form (é as one character) count as 1. If your source text decomposes é into e + combining accent, you get 2 — same appearance, different count.
Worked example:
- Text: “Hi 👋”
- Code units: H(1) + i(1) + space(1) + 👋(2) = 5
- Visible: 4 symbols
The tool above follows browser conventions because that matches how most web forms validate input.
UTF-8 Bytes — What Storage and APIs Count
UTF-8 bytes measure how much space text occupies in a database column, JSON payload, or HTTP body — not how many symbols appear on screen.
| Character type | Typical UTF-8 size |
|---|---|
| ASCII (a–z, 0–9) | 1 byte each |
| Latin accented (é, ñ) | 2 bytes |
| Most CJK characters | 3 bytes |
| Most emoji | 4 bytes |
Example: The tweet draft Hello 👋 might show 7 characters but consume 11 UTF-8 bytes. A VARCHAR(255) column holds 255 bytes, not 255 visible symbols. Paste emoji-heavy copy into a backend form without checking bytes and inserts fail silently or truncate.
Emoji, Skin Tones, and Joined Emoji Sequences
Emoji behave differently at each layer:
- Simple emoji (😀, ❤️): Usually 1–2 code units, 4 bytes in UTF-8
- Skin-tone modifiers (👋🏽): Base emoji + modifier; often 4 code units, one visible glyph
- ZWJ sequences (👨👩👧): Multiple code points linked by U+200D; one glyph, higher internal count
- Flag emoji (🇺🇸): Two regional indicator letters; two “characters” in many counters, one flag visually
X/Twitter applies its own weighting: CJK characters and some symbols may count double toward the 280 limit. Emoji often count as 2 in their system even when your browser shows 1–2 code units. Always leave a buffer when emoji or non-Latin script dominates the post.
Line Endings, Tabs, and Invisible Characters
Every whitespace and control character can count:
- Space: 1 character
- Tab: 1 character
- Line feed (\n): 1 character on Unix/Mac
- Carriage return + line feed (\r\n): 2 characters on Windows-sourced text
Copying from Word, PDF, or Slack often injects non-breaking spaces (U+00A0), soft hyphens, or zero-width spaces. They are invisible but consume budget. If your count jumps after paste, inspect for hidden characters or try the Invisible Character or Whitespace Remover tools.
Platform Character Limits You Hit Most Often
Platforms set limits for layout, protocol, or billing reasons — not because editors enjoy arbitrary rules. The table below uses characters with spaces unless noted.
Twitter / X — 280 Characters and URL Rules
Free accounts get 280 characters per post. X Premium allows much longer posts, but most users still work inside 280.
Critical X-specific rules:
- URLs count as 23 characters regardless of actual length (t.co wrapping)
- Some scripts and emoji may count double in X’s weighted algorithm
- Hashtags and @mentions count normally — no free shortcuts
Example: A post with 200 characters of prose plus an 80-character URL shows ~223 weighted characters on X (200 + 23), not 280. A generic counter displays 280 and looks over limit when X would accept it.
Practical tip: Draft in the counter above for raw length, then leave 10–15 characters of buffer if the post includes links or emoji. See also our social media character counter guide.
Instagram — Captions, Bios, and Feed Preview
| Field | Limit | What users see |
|---|---|---|
| Caption | 2,200 | First ~125 before “...more” |
| Bio | 150 | Full bio on profile |
| Username | 30 | — |
The caption limit is generous; the 125-character preview is the real constraint. Put the hook, offer, or key detail first.
LinkedIn — Posts, Headlines, and the “See More” Fold
| Field | Limit | Preview cutoff |
|---|---|---|
| Post | 3,000 | ~140–210 before “see more” |
| Headline | 220 | Truncated in search and mobile |
| About | 2,600 | Partial display |
LinkedIn rewards scannable openings. Write the first two lines as if they were the entire post.
Facebook — Hard Caps vs What People Actually See
Facebook allows up to 63,206 characters in a post — a limit almost nobody hits. Feed truncation often appears around 477 characters for organic posts; ad primary text commonly gets cut near 125 characters in mobile feeds.
Short posts (under 80 characters) historically saw higher engagement in many accounts. Count characters, but optimize for the preview window, not the hard cap.
SMS — GSM-7, Unicode, and Billable Segments
SMS billing is segment-based, not message-based.
| Encoding | Single segment | Each additional segment |
|---|---|---|
| GSM-7 (basic Latin) | 160 chars | 153 chars |
| UCS-2 / Unicode | 70 chars | 67 chars |
One curly quote, em dash, or emoji can flip the entire message from GSM-7 to Unicode — dropping your budget from 160 to 70 per segment. A 71-character “Unicode” message bills as two segments.
Example: Your code is 847291. Reply STOP to opt out. stays one GSM segment (44 chars) with straight quotes; swap in a smart quote and the same length can bill as two Unicode segments.
SEO Meta Titles — Character Budget vs Pixel Width
Google renders titles by pixel width, not character count. The safe drafting range is 50–60 characters for most Latin-alphabet titles. Wide letters (W, M) and uppercase text consume more pixels.
Good fit: Character Counter — Free Online Tool | YourBrand (48 chars)
Risky: Character Counter — Free Online Character & Word Count Tool (58 chars, may clip on mobile)
Front-load the primary keyword. See our meta title & description counter guide for SERP previews.
SEO Meta Descriptions — Safe Lengths Across Devices
Target 150–155 characters for desktop snippets. Mobile often clips earlier (~120 characters visible in many layouts). Write one complete thought, not two half-thoughts separated by a comma hoping both survive truncation.
Google Ads, YouTube, TikTok, and Other Common Limits
| Platform / field | Character limit |
|---|---|
| Google Ads headline | 30 per headline (up to 15 headlines) |
| Google Ads description | 90 per description (up to 4) |
| YouTube title | 100 (front-load; ~70 visible on mobile) |
| YouTube description | 5,000 (first ~125 in search preview) |
| TikTok caption | 2,200 |
| Threads post | 500 |
| Bluesky post | 300 |
| Pinterest description | 500 |
| Reddit title | 300 |
| Email subject (Gmail mobile) | ~30–40 visible |
| Email subject (Gmail desktop) | ~60–70 visible |
| Apple App Store title | 30 |
| Google Play title | 50 |
Use the platform presets in Goal & preview when drafting for a specific destination.
Practical Use Cases
Social Media Drafting
Social teams draft in bulk. A counter removes the publish-and-pray cycle — especially for X threads, LinkedIn hooks, and Instagram preview lines.
SEO Snippets and Search Appearance
SEO work is character-bound even when rankings are not. Titles and descriptions that truncate lose clicks.
SMS and Short-Form Marketing
Character math directly affects cost per send. A campaign to 100,000 recipients that accidentally splits into two segments doubles the bill.
Essays, Applications, and Form Fields
University applications, grant portals, and job forms enforce strict ceilings. Exceeding by one character often means the form rejects submission entirely.
Developers — Columns, Payloads, and Commit Messages
- Database VARCHAR(n) — often bytes, not characters
- API request bodies with size caps
- Git commit subject lines — 72 characters displays cleanly in most tools
- Python style guides — 79 characters per line (PEP 8)
Writing to a Character Budget
Trim Without Losing Meaning
Cut in this order: filler phrases, redundant modifiers, passive constructions, then secondary clauses.
Before (118 chars): We are pleased to announce that our team has made the decision to launch the new feature next week.
After (62 chars): We’re launching the new feature next week.
Count While You Draft, Not After
Open the counter before you write, not after a full draft. Real-time feedback shapes shorter sentences naturally.
Mistakes That Waste Characters
- Burying the key point after a long intro (fatal when truncation hides it)
- Adding tracking parameters to URLs in tweets (remember X counts 23 per link)
- Pasting formatted text with hidden Unicode
- Using hashtag stacks that eat budget without adding value
- Writing meta titles as Brand | Category | Keyword — brand-first titles waste visible pixels
Edge Cases That Trip People Up
Why Two Counters Can Disagree
Disagreement usually comes from code units vs graphemes vs bytes, platform-specific rules, hidden characters from rich-text paste, line ending differences, or Unicode normalization.
URLs on X/Twitter
Every URL becomes 23 characters on X via t.co. Mental math: subtract actual URL length, add 23 per URL.
One Emoji That Changes Your SMS Bill
The entire message encoding switches when a single non-GSM character appears. Test segment count in staging, not just character count.
Accented Text, Smart Quotes, and Copy-Paste Surprises
Word processors replace straight quotes with curly quotes and hyphens with em dashes. Paste through plain text when encoding matters.
Languages Without Word Boundaries
Chinese, Japanese, and Thai do not separate words with spaces. For CJK content, trust character metrics over word metrics.
Frequently Asked Questions
What is a character counter?
A character counter is a tool that totals the symbols in a text string — letters, numbers, spaces, punctuation, line breaks, and emoji — using a defined counting method. Writers use it to stay within platform limits before publishing.
Do spaces count as characters?
Yes, for nearly every platform limit you’ll encounter. Spaces are valid Unicode characters. The tool above shows both totals so you can match the rule your destination requires.
How do I count characters online?
Type or paste text into the editor at the top of this page. Counts refresh automatically. Use Goal & preview or the platform limits card to compare your draft against a specific limit.
What is the difference between character count and word count?
Character count measures every symbol. Word count measures groups of characters separated by whitespace. Platforms enforce character limits; editors and teachers usually set word limits.
Do emojis count as one character?
It depends on the layer. A simple emoji is often 2 UTF-16 code units and 4 UTF-8 bytes, but displays as one symbol. SMS treats emoji as Unicode and shrinks your segment to 70 characters. X may weight emoji differently than a raw browser count.
What is the Twitter/X character limit?
280 characters for standard free accounts. URLs count as 23 each. Some characters in non-Latin scripts count double in X’s system.
What is the SMS character limit?
160 characters per segment in GSM-7 encoding. Messages with emoji, smart punctuation, or non-Latin scripts switch to Unicode at 70 characters per segment. Longer texts split into multiple billable segments.
How long should a meta description be?
Aim for 150–155 characters. Mobile may show less. Write a complete statement within that range rather than a sentence that only makes sense if nothing gets cut.
How long should an SEO title tag be?
Draft between 50–60 characters for Latin-alphabet titles. Google truncates by pixel width, so test titles with wide letters carefully. Put the primary topic first.
Why does X show a different count than this tool?
X applies URL shortening (23 chars per link) and weighted counting for some scripts and symbols. This tool reports the literal text length in your editor — the correct starting point, but not a perfect X simulator.
Is there a maximum text length?
Browsers handle very large paste operations, but performance may degrade above tens of thousands of characters on older hardware.
Does the counter work for languages other than English?
Character counting works for all Unicode text — Arabic, Cyrillic, CJK, emoji, and mixed scripts. Word counting by whitespace splitting is less meaningful for languages that do not use spaces between words.
Why are character count and byte count different?
Characters measure symbols. Bytes measure storage size in UTF-8 encoding. ASCII uses 1 byte per character; emoji and many non-Latin characters use 2–4 bytes each.
Can I use this for Instagram, LinkedIn, and Google Ads?
Yes. Use the platform presets in Goal & preview or compare your totals against the limits table in this guide.
Does it count line breaks?
Yes. Each newline is a character in the with-spaces total. Windows line endings (\r\n) count as two.