How to Count Words and Characters in Any Text
Knowing exactly how many words or characters your text contains matters more often than you might think. Social media posts have character limits. Academic papers have word counts. SEO meta descriptions need to hit a specific range. Even email subject lines perform better at certain lengths. A browser-based counter shows everything live as you type, with no server upload required.
Platform character limits
| Platform | Limit | What counts |
|---|---|---|
| Twitter/X post | 280 characters | All characters including spaces |
| Twitter/X Premium | 25,000 characters | Per "Long Post" tweet |
| Instagram caption | 2,200 characters | All characters |
| Instagram bio | 150 characters | Visible portion of profile |
| LinkedIn post | 3,000 characters | All characters |
| LinkedIn headline | 220 characters | Below your name on profile |
| TikTok caption | 4,000 characters | Per video post |
| Facebook post | 63,206 characters | But best engagement under 80 |
| Bluesky post | 300 characters | Includes spaces |
| Mastodon toot | 500 characters | Default; some instances allow more |
| Meta description (SEO) | 155-160 characters | Visible in search results |
| Title tag (SEO) | 50-60 characters | Truncated past this in SERPs |
| SMS message | 160 characters | Per segment |
| Email subject line | 50-60 characters | For mobile display |
| YouTube title | 100 characters | For full display |
| YouTube description | 5,000 characters | First 125 visible without "more" |
| Reddit post title | 300 characters | Subreddits may set lower limits |
| Discord message | 2,000 characters | Per message; longer split into multiple |
| WhatsApp message | 65,536 characters | Effectively unlimited for chat |
How to count words and characters
- Paste or type your text: enter text into the counter. Stats update instantly as you type.
- Review the statistics: see word count, character count (with and without spaces), sentence count, paragraph count, and estimated reading time.
- Copy the results: click "Copy Stats" to save the analysis to your clipboard.
A brief history of word counting
Word counting predates computers by centuries. Medieval scribes counted words to estimate payment (paid per "line" of text in some monasteries, per "page" in others). The first English-language style guide to specify word counts was probably Strunk & White's "The Elements of Style" (1918), which set 250-300 words as a typical paragraph maximum.
Word counting became mechanical with typewriters: a standard typewritten manuscript page was ~250 words (12-point Courier, double-spaced, 1-inch margins). This is still the "standard manuscript page" in publishing, novelists negotiate book advances per word, and one published page corresponds to ~250 words of manuscript.
Microsoft Word added a built-in word counter in Word 95 (1995), making it instant rather than something you tracked manually. Web-based word counters appeared in the late 1990s. Today, every writing tool (Google Docs, Notion, Obsidian, VS Code, Word, Pages) has live word counting; dedicated browser-based counters exist for when you are pasting text without an editor.
Beyond basic counting
Good word counters give you more than just a number:
Reading time: estimated at roughly 200-250 words per minute. Useful for blog posts and articles so readers know what they are committing to.
Keyword density: how often specific words appear as a percentage of total words. Important for SEO: you want your target keyword to appear naturally (1-2% density) without stuffing.
Sentence and paragraph counts: help you judge the structure of your writing. Short paragraphs (2-4 sentences) are easier to read on screens.
Average word length: shorter average word length usually means easier reading. Hemingway averaged 4.2 letters per word; academic papers often average 5.5+.
Most-used words: shows the top words by frequency. Useful for catching repetition or finding your "tell" words (writers tend to overuse certain words unconsciously).
Readability scores: Flesch-Kincaid (US), Gunning Fog, SMOG, Coleman-Liau give grade-level estimates. Most newspapers target 8th-grade reading level; corporate docs often hit 12+.
What counts as a "word"
The definition of a word varies more than you might expect:
- Whitespace-split: most counters split text by spaces. "It's" is 1 word; "well-being" is 1 word (hyphen connects); "U.S.A." is 1 word (no spaces).
- Compound counting: some style guides count hyphenated words as 2 ("twenty-five" → 2 words). Most counters do not.
- Numbers: "1,000,000" is typically 1 word. "1 million" is 2 words.
- Initialisms: "FAQ" is 1 word. "F.A.Q." is also 1 word (no internal spaces).
- Emoji: usually 1 word each, but some counters count them as 0 (non-text) or by their grapheme cluster size (which can be 4+ codepoints for skin-tone modifiers).
- CJK languages: Chinese, Japanese, Korean text does not use spaces between words. Pure character counting (or character-pair counting) approximates word counting. Some counters use proper word segmentation; most fall back to character counts.
For consistent word counts across tools, paste the same text into multiple counters and pick the one that matches your target platform's count.
Unicode and emoji gotchas
Modern text counting must handle Unicode correctly:
- Combining characters: "é" can be one codepoint (U+00E9) or two (U+0065 + U+0301 combining acute accent). Both display identically. A naive character count gives 1 or 2 depending on encoding.
- Surrogate pairs: emoji and rare characters use 2 UTF-16 code units. JavaScript's
.lengthreturns 2 for "😀" unless you use[...str].length(which returns 1). Twitter, Discord, and most platforms count by grapheme clusters. - Skin-tone modifiers: 👍🏽 is one user-perceived character but 2 codepoints (the thumb + tone modifier). Family emoji like 👨👩👧👦 can be 7+ codepoints.
- Zero-width joiners: emoji sequences like 👨💻 (man + ZWJ + laptop) use zero-width joiners. Splitting by codepoint over-counts.
- Right-to-left text: Arabic and Hebrew add directional control characters that count toward limits but are invisible.
A good counter uses the Intl.Segmenter API (browser-native, since 2022) to handle all of these correctly.
Common pitfalls
- Twitter Premium "Long Post" tweets count differently: 25,000 character limit, but media (images, videos) count toward limit on free tier and have no impact on paid.
- SMS multi-segment messages cost more: SMS over 160 characters is split into multiple segments, each charged separately. Use a counter that flags multi-segment.
- GSM-7 vs Unicode SMS: SMS in GSM-7 encoding allows 160 characters per segment; Unicode (any non-Latin character) drops the limit to 70 per segment. A single emoji or accented letter can multiply your SMS cost.
- Whitespace-only "empty" text: a text with only spaces, tabs, or newlines counts characters but zero words. Easy way to spot accidentally-pasted whitespace.
- Markdown markup counted as text: word counters typically count raw Markdown, including
**bold**markers and[link text](url)syntax. If your platform renders Markdown to plain text, the visible character count is shorter than the source count. - Hidden tracking characters: spam-fighting tools sometimes add invisible tracking characters (zero-width spaces, zero-width joiners) to detect copy-paste. These count toward platform limits.
Tips
- Write first, count later: do not let character limits constrain your first draft. Write freely, then trim to fit.
- Check before posting: paste your social media post into a counter before publishing. Getting cut off mid-sentence looks unprofessional.
- Use reading time for blog posts: adding "5 min read" to your articles sets reader expectations and can increase engagement.
- Watch for invisible characters: some text editors add hidden characters (zero-width spaces, non-breaking spaces) that count toward limits but are invisible. A character counter reveals these.
- Target word counts by content type: 1,500-2,500 words for long-form blog posts (SEO sweet spot), 500-800 for newsletter articles, 300-500 for product descriptions, 50-150 for ad headlines.
- Pair with a reading-level checker: counting words alone does not tell you if your writing is clear. A readability score (Flesch-Kincaid, Hemingway) reveals whether your text matches your audience's reading level.
Privacy and confidential text
The word counter runs entirely in your browser. The text you paste, the statistics generated, and any custom settings all stay on your device. Nothing is uploaded to a server, logged, or shared with anyone.
This matters because text inputs are often confidential: draft emails to clients, confidential legal correspondence, internal company writing, personal journal entries, draft chapters of unpublished books. Cloud word counters log your text in their server requests, sometimes retaining it for "improvement" or analytics. For sensitive writing, a browser-only counter has zero exposure: paste in, see counts, close the tab, gone.
Browser-based counting also works offline once the page is loaded, useful when traveling or writing in low-connectivity environments.
Frequently Asked Questions
What is the difference between characters with and without spaces?
Characters with spaces counts every character including spaces between words. Characters without spaces counts only letters, numbers, and punctuation. Some platforms count one way, some the other, Twitter/X counts spaces, SMS does too.
How is reading time calculated?
Reading time is typically estimated at 200-250 words per minute for average adult reading speed. A 1,000-word article takes about 4-5 minutes to read.
Does the counter work with non-English text?
Yes. Word and character counters support all languages and Unicode characters, including Chinese, Japanese, Korean, Arabic, emoji, and accented characters.
Is my text stored or sent anywhere?
No. All counting happens in your browser. Your text never leaves your device.