Skip to content

Free Word Counter & Character Count Tool

Count words, characters, sentences, paragraphs, and reading time instantly. Real-time word counter with Twitter, meta description, and Instagram limit checks. Free, private, no signup.

No Tracking Runs in Browser Free
All counting happens locally in your browser. No data is sent to any server.

0

Words

0

Characters

0

No spaces

0

Sentences

0

Paragraphs

0

Lines

Reading time

0 sec

Speaking time

0 sec

Platform limits

Twitter / X post 0 / 280
Meta description (SEO) 0 / 160
Page title tag 0 / 60
Instagram caption 0 / 2200
LinkedIn post 0 / 3000
SMS (1 segment) 0 / 160

Top words

  • Type to see top words

Analysis

Avg. word length
0
Avg. sentence length
0
Longest word
Reviewed for Microsoft Word / Google Docs parity, Unicode code-point character counting, CJK ideograph handling, platform-limit accuracy, and reading-rate sourcing. — Go Tools Engineering Team · May 20, 2026

What Is a Word Counter?

A word counter is a tool that takes a block of text and reports the metrics writers, editors, and publishers care about: how many words it contains, how many characters (with and without spaces), how many sentences and paragraphs, and how long it would take to read aloud or silently. Word counters are older than personal computers — typewriter editors counted by hand and later by typewriter-attached digital counters — but the browser-based, real-time word counter is the form most writers use today.

The core unit, the word, sounds simple but isn't. English word counters tokenize on whitespace and hyphens-as-internal-punctuation: "don't" is one word, "state-of-the-art" is one word, "twenty-five" is one word. Numbers are usually counted as words (so "42" is one word) but stop-word filters in NLP contexts may exclude them from analysis. For Chinese, Japanese, and Korean text, the convention is one word per ideograph — a 500-character Chinese essay is a 500-word Chinese essay — because CJK doesn't use word-spaces and the smallest semantic unit is the character. Microsoft Word, Google Docs, native Chinese word-processors, and every serious bilingual counter follow this rule, and so does this tool.

Beyond raw counts, modern word counters compute reading time and speaking time. The standard reading rate is 230 words per minute, the median silent-reading speed measured across decades of academic research on native-English readers (Brysbaert's 2019 meta-analysis). The standard speaking rate is 130 wpm, the rate that conference speakers, voiceover artists, and TED talks converge on — slow enough to be heard clearly, fast enough to feel natural. Blog platforms, news sites, and content management systems use these rates to display "x-minute read" indicators that set reader expectations.

For digital publishing, character ceilings now matter more than word counts in many contexts. Twitter/X posts are capped at 280 characters. Google's meta description displays roughly 150-160 characters before truncation on desktop, fewer on mobile. Page title tags clip at about 60 characters in search results. SMS messages bill per 160-character segment. Instagram captions cap at 2,200 characters. A word counter that doesn't show these limits leaves you eyeballing the line — this one displays a live progress bar against each limit so you know when you've crossed a ceiling that affects display, deliverability, or ranking.

Under the hood, a word counter is a few hundred lines of regex and string handling. The interesting engineering is in the edge cases: mixed CJK and Latin text, Unicode code-point counting versus UTF-16 code unit counting (emoji are surrogate pairs and would otherwise count as two), apostrophes inside contractions versus surrounding quoted speech, em-dash separators versus em-dash compounds, sentence terminators inside abbreviations. This tool's counting follows the conventions of Microsoft Word and Google Docs because those are the editors most people receiving your text will use to verify the count — agreement matters more than philosophical purity.

All computation runs entirely in your browser — no text leaves the page, no signup is required, no logging. This matches the privacy expectations of journalists with source notes, lawyers with client drafts, marketers with unannounced campaigns, and anyone else who treats their work in progress as confidential. To go deeper into related text tooling, the Base64 encoder handles binary-to-text encoding, the URL encoder handles URL-safe text, and the MD5 hash generator handles fingerprinting — together they cover most non-format text manipulation a developer or content worker needs.

// What's actually being counted (simplified)
function countWords(text) {
  // CJK: each ideograph is one word
  const cjk = text.match(/[\u4E00-\u9FFF\u3040-\u30FF\uAC00-\uD7AF]/g) || [];
  // Latin: word = letters/digits with optional internal hyphen or apostrophe
  const latin = text
    .replace(/[\u4E00-\u9FFF\u3040-\u30FF\uAC00-\uD7AF]/g, ' ')
    .match(/[A-Za-z0-9]+(?:[''-][A-Za-z0-9]+)*/g) || [];
  return cjk.length + latin.length;
}

// Reading time at 230 wpm
function readingMinutes(words) {
  return Math.round((words / 230) * 60); // seconds
}

// Twitter limit check — raw character ceiling 280
function underTwitterLimit(text) {
  return [...text].length <= 280; // Unicode code points, not UTF-16 units
}

Key Features

Real-Time Counts as You Type

Every metric — words, characters with and without spaces, sentences, paragraphs, lines — updates on every keystroke with no debounce delay. No Count button to click, no page reload, no waiting. Built for the speed of actual writing.

Reading & Speaking Time Estimates

Reading time at 230 wpm (the adult silent-reading average from Brysbaert's 2019 meta-analysis) and speaking time at 130 wpm (the standard rate for clear voiceover and conference talks). Two estimates, one tool — useful for blog "x-minute read" labels, podcast scripting, and presentation timing.

Platform Limit Checks (Twitter, SEO, SMS)

Live progress bars against Twitter/X (280 chars), meta description (160 chars), page title (60 chars), Instagram caption (2,200), LinkedIn post (3,000), and SMS segment (160). Catch length problems while drafting, not after you've published or hit Send.

CJK + Latin Mixed Counting

Counts Chinese, Japanese, and Korean characters as one word each (Microsoft Word convention) while counting Latin tokens normally. Mixed English-Chinese text gets a count that matches Microsoft Word, Google Docs, and what your translator or editor will compute on their side.

Top Word Frequency Analysis

Shows the top ten most frequent meaningful words with English stop-words filtered out ("the", "and", "is", etc.). Surfaces repetition you didn't notice — the cheapest possible self-editing pass before someone else reads the draft.

Average Word & Sentence Length

Mean word length (Latin tokens) and mean sentence length (words per sentence) give a coarse readability signal. If average sentence length climbs past 25 words, your prose is hard to skim. Below 12, it may feel choppy. The sweet spot for general audience writing is 15-20.

Longest Word Surfacing

Displays the longest single Latin word in the text. Useful for catching accidental concatenations ("thisismyverylongword"), jargon that needs definition, and the occasional comically long technical term that signals overcomplicated prose.

Unicode-Accurate Character Counting

Counts by Unicode code point, not UTF-16 code unit — so emoji, mathematical symbols, and CJK extension characters each count once instead of twice. Matches what Twitter, Instagram, and SMS gateways actually measure against their limits.

100% Browser-Based Privacy

All counting happens locally in your browser. Your text is never uploaded, never logged, never stored, never analyzed. Safe for drafts containing client information, unannounced product names, legal documents, and any confidential material. You can verify in your browser's Network tab — zero requests as you type.

Word Counter Alternatives Compared

Microsoft Word (Review > Word Count)

desktop app, paid

The reference implementation for the Latin and CJK word-count conventions. Same numbers as this tool for any text both can read. Slower workflow — you have to be in Word, the file has to be open. Doesn't show platform-limit checks (Twitter, meta description, etc.) or reading time.

Google Docs (Tools > Word Count)

browser-based, free

Same counting rules as Microsoft Word. Requires a Google account and the text to be in a Google Docs document. No platform limits, no reading-time estimates, no top-word analysis. Best when your text already lives in Docs.

Browser textarea count (HTML/JS native)

developer tool

`textarea.value.length` gives character count, `value.split(/\s+/).length` gives an approximate word count. Useful for quick checks but breaks on CJK, doesn't handle Unicode emoji correctly (counts surrogate pairs as 2), and provides no other metrics. Reinventing this tool poorly.

Twitter/X compose box

platform-native

Twitter's own counter is the source of truth for the 280 limit (it does the URL substitution math automatically). For drafts that aren't ready to paste into Twitter, this tool gives a faster check — but verify the final count in Twitter before publishing if URLs are involved.

Word counter mobile apps

iOS / Android, free or paid

Most mobile word counter apps replicate this tool's core functionality and add ad revenue, analytics, or upsells. Privacy varies — some upload your text to a server for "cloud sync". This tool runs in a mobile browser identically to desktop with zero data exfiltration.

Hemingway Editor

browser-based, freemium

Word count is one feature among many; the focus is readability scoring (Flesch-Kincaid grade level, adverb count, passive voice). For pure word counting, Hemingway is overkill and slower. Best when you also want prose-quality analysis. This tool's average sentence length stat covers the basic readability signal Hemingway expands on.

ProWritingAid

browser + desktop, paid

Comprehensive writing-aid suite with deep style analysis, grammar checking, and word count. Subscription-based. For the count itself, this tool is faster and free. For developmental editing, ProWritingAid does much more — different tools for different stages of the writing process.

Word Count Examples

Single Tweet — 280 Character Ceiling

Just shipped the new word counter — counts words, characters, sentences, reading time, and even checks your text against Twitter, Instagram, and meta description limits. All in the browser, zero signup. https://go-tools.org/tools/word-counter

240 characters, 38 words — fits a single tweet with 40 chars of headroom. The Twitter progress bar shows 86% used. URLs count toward Twitter's character ceiling at their displayed length (Twitter shortens to 23 chars after publish), so a longer URL still leaves room for the message body.

SEO Meta Description — 160 Character Sweet Spot

Free word counter with live character count, reading time, and limit checks for Twitter, Instagram, and meta descriptions. 100% browser-based, no signup.

152 characters, 23 words — under Google's typical desktop meta description truncation point of ~160 chars. The meta description progress bar shows green. Aim for 150-160 chars to fully use Google's display while staying inside the safe zone for mobile truncation.

Page Title Tag — 60 Character Display Limit

Free Word Counter — Words, Characters, Reading Time | Go Tools

62 characters, 11 words. Google typically truncates titles longer than ~60 characters with an ellipsis on desktop. The title-tag progress bar will show amber here — consider tightening to 60 to avoid display truncation that costs CTR.

Essay Excerpt — 250 Word Target

The word counter is the unsung hero of every writing workflow. Editors count words to bill clients, students count words to hit a 250-word essay floor, marketers count characters to fit a Twitter post or meta description...

When you have a 250-word essay target, the primary words stat is what you're optimizing. The average sentence length stat helps: if it climbs above 25, your prose is too dense; if it stays under 15, it's easy to skim. Reading time tells you whether the piece is a 1-minute read or longer.

Mixed English-Chinese Text

JavaScript 是一种强大的脚本语言,supports object-oriented, functional, and event-driven paradigms. 它运行在浏览器和服务器端 with Node.js.

The mixed text gets counted using the standard CJK convention: each Chinese character is one word, each Latin token is one word. Here: 19 Chinese characters + 13 Latin tokens = 32 words. This matches what Microsoft Word, Google Docs, and native Chinese word-processors compute — so your count is portable.

Code Block — Line and Character Counts

function countWords(text) {
  if (!text) return 0;
  return text.trim().split(/\s+/).length;
}

When pasted as code, the words stat treats each identifier as a word (counts include `function`, `countWords`, `text`, `if`, `return`, etc.). The lines stat gives you the line count (4 lines here). For exact LOC, use a code-line counter — this tool is optimized for prose, but the basic metrics still work.

How to Use the Word Counter

  1. 1

    Paste or type your text

    Click into the textarea and start typing, or paste text from anywhere — a Word document, an email draft, a code editor, a website. Every metric updates instantly as you type. There's no Count button to click.

  2. 2

    Read the primary stats

    The stats grid shows words, characters (with and without spaces), sentences, paragraphs, and lines. The two time estimates below show reading time at 230 wpm and speaking time at 130 wpm — practical defaults for blog posts and presentation scripting.

  3. 3

    Check platform limits

    The platform-limit row tracks Twitter (280), meta description (160), title tag (60), Instagram (2,200), LinkedIn (3,000), and SMS segment (160) ceilings. Each progress bar turns from neutral to warning to error as you approach and exceed the cap — drafting tweets, meta tags, and texts is much faster this way.

  4. 4

    Use the analysis panel for editing

    The top-words list (English stop-words filtered) surfaces repetition; the average sentence length flags dense prose (>25 words = hard to skim). The longest-word stat catches accidental run-on words. Use these to tighten before sending.

  5. 5

    Copy or clear when done

    Click Copy to copy the entire text to your clipboard. Click Clear to reset the textarea. Click Sample to load demo text. All actions are instant; nothing is sent to a server.

Common Counting Mistakes

Counting CJK Text with a Whitespace-Only Counter

Chinese, Japanese, and Korean text doesn't use word-spaces, so a counter that only splits on whitespace will report 1 word for a 500-character essay — off by 500x. The Microsoft Word convention (and this tool) counts each CJK ideograph as one word, matching what teachers, editors, and translation tools compute. If your counter shows wildly different numbers for the same Chinese text, the counter is wrong, not your essay.

✗ Wrong
Text: "今天天气真好,我决定去公园散步。"
Naive counter (whitespace split): 1 word
This counter (CJK-aware): 14 words
✓ Correct
Text: "今天天气真好,我决定去公园散步。"
Count each Chinese character as one word.
Matches Microsoft Word, Google Docs, native CJK editors.

Trusting Character Counts of Emoji on UTF-16 Counters

Emoji like 😀 are encoded as a surrogate pair in UTF-16, so a counter that measures `string.length` (the JS default) counts each emoji as 2 characters. Twitter, Instagram, and SMS gateways count by Unicode code point — one emoji is one character. Using the wrong counter means you publish a tweet that Twitter rejects as over-limit, or you misjudge how many emoji fit in an Instagram caption.

✗ Wrong
Text: "Hi! 😀😀😀"
string.length: 10 (treats each emoji as 2)
Wrong: this would say the text uses 10/280 characters
✓ Correct
Text: "Hi! 😀😀😀"
Code-point count: 7 (emoji = 1 each)
Correct: matches what Twitter measures

Pasting Word-Processor Text with Smart Quotes

Pasting from Microsoft Word, Google Docs, or Apple Notes pulls in smart quotes ("", '') and em-dashes (—) that look the same as their ASCII equivalents but encode differently. The word count is the same, but if you then publish to a platform that expects ASCII (some CMS, some chat platforms), the characters render as ?? or boxes. Check the published version once after your first paste — most modern platforms handle smart quotes, but legacy ones break.

✗ Wrong
Source: "It's a great day," she said. (smart quotes)
Published to legacy CMS: ?It??s a great day,? she said.
Count was right; rendering was wrong.
✓ Correct
Use a text editor (VS Code, plain TextEdit) for drafts.
Or replace smart quotes manually before publishing.
Or verify the target platform handles Unicode (most do).

Ignoring URL Substitution in Twitter Counts

Twitter automatically shortens any URL to 23 characters at publish time, regardless of original length. A 100-character URL in your draft costs only 23 characters in the published tweet. Counting the raw text gives an inflated count — you have more room than this counter shows when a URL is involved. The 23-character substitution is fixed; treat your draft length as (raw count) − (URL length) + 23 per URL.

✗ Wrong
Draft: "Check this out: https://very-long-domain-name.com/path/to/page?with=parameters&and=more"
Raw count: 108 characters
Wrong: tweet is over 280? No — Twitter shortens the URL.
✓ Correct
Same draft, Twitter-published length:
"Check this out: " (16) + 23 (URL) = 39 chars
Well under 280. Mentally substitute 23 for each URL.

Misreading the Meta Description Limit

Google's meta description display truncates around 155-165 characters on desktop and 100-120 on mobile, depending on the snippet's other elements (title, URL, breadcrumb). Writing to 320 chars (an old Google guideline from 2017-2018, since reverted) means the second half rarely displays. Stick to 150-160 for desktop optimization, or 110-120 if your mobile traffic dominates. The progress bar in this tool defaults to 160.

✗ Wrong
Meta description: 280 characters (writing to the old 2018 cap)
Google truncates around char 160 on desktop.
The last 120 chars never display — wasted effort.
✓ Correct
Meta description: 150-160 characters.
Full desktop display, survives mobile clip.
Front-loads the keyword and call to action.

Confusing 280 Tweet Characters with 280 Words

Twitter's 280-character limit is characters, not words — a common misread by people new to the platform. "Hello world" is 11 characters and 2 words. A typical English tweet of 30-40 words runs about 200-250 characters. Drafting a 280-word tweet would be 1,500+ characters and impossible. The two counters live side by side; double-check which you're optimizing against.

✗ Wrong
Target: "keep tweet under 280"
Actual draft: 280 words, ~1,500 characters
Tweet rejected — 5x over the cap.
✓ Correct
Target: under 280 characters (not words).
40 words typically fits with room to spare.
The character stat is what matters here.

Who Uses This Tool

Bloggers Drafting Posts
Hit a 1,000-word target without recounting in a separate window. Reading time tells you whether the post is a 3-minute or 7-minute read — the kind of label readers respond to in feeds. Top words flag repetition before the editor's pass.
Students Writing Essays
Stay above a 250-word floor or under a 1,500-word ceiling without losing your place. Average sentence length is a coarse readability signal teachers and grading rubrics use. Reading time matches what "a 5-minute read" means to a grader.
Marketers Drafting Tweets & Captions
Twitter (280), Instagram (2,200), and LinkedIn (3,000) progress bars eliminate the count-and-retype loop. Meta description (160) and title tag (60) checks save you from publishing copy that gets truncated in search results.
SEO Specialists Auditing Snippets
Title tags clip around 60 characters; meta descriptions around 160. Both checks happen live as you draft, so the snippet you write is the snippet that displays. Combine with the top-word frequency check to keep your primary keyword density natural.
Translators Tracking Source & Target Length
Translation work bills by source word count, target word count, or character count depending on the language pair. Paste either side and get the count instantly. Mixed CJK and Latin text uses the Microsoft Word convention, matching what client TM systems compute.
Conference Speakers Timing Talks
Speaking time at 130 wpm tells you whether a 1,500-word script fits a 12-minute slot (it does) or a 7-minute slot (it doesn't). Trim from the actual word count, not from a stopwatch read-aloud test.
Developers Writing READMEs & Docs
GitHub READMEs, npm package descriptions, and documentation headers all have informal length expectations. The reading-time stat tells contributors whether a section is skim-friendly or a deep dive — useful for structuring docs around progressive disclosure.
Copywriters Trimming Ad Copy
Google Ads, Facebook Ads, and email subject lines all have different character ceilings. Pick the platform from the limit row that matches, and tighten in real time. The longest-word stat flags single-word run-ons that sneak into compressed copy.

Counting Rules & Technical Details

Word Tokenization Rule
A Latin word is a maximal run of letters, digits, apostrophes, and internal hyphens. So "don't" is one word, "state-of-the-art" is one word, "twenty-five" is one word. Each CJK ideograph (Hanzi, Kanji, Hangul syllable, Hiragana, Katakana) counts as one word — the Microsoft Word convention. Mixed-script tokens are split at the CJK boundary.
Character Counting (Unicode Code Points)
Characters are counted by Unicode code point, not UTF-16 code unit. So a single emoji counts as 1 character, not 2; CJK extension characters count as 1, not 2; combining marks count as 1 each, not zero. This matches what Twitter, Instagram, and modern SMS gateways measure against their limits.
Sentence Detection
Sentences end at a terminator: period (.), question mark (?), exclamation mark (!), Chinese full stop (。), Japanese full stop (。), or Arabic question mark (؟). Multiple terminators in a row ("What?!") count as one boundary. The detector does not attempt to disambiguate abbreviations ("Mr.", "U.S.A.") — too noisy in practice.
Paragraph Detection
Paragraphs are separated by one or more blank lines. Single newlines (line breaks within a paragraph) do not start a new paragraph. Text with no blank lines is one paragraph. Empty input is zero paragraphs.
Reading & Speaking Rate Defaults
Reading time uses 230 wpm — the median adult silent-reading rate from Brysbaert's 2019 meta-analysis of 17 academic studies on native-English readers. Speaking time uses 130 wpm — the standard rate for clear voiceover and conference delivery (TED, NPR, audiobook narration). Both are conservative midpoints; specialized contexts vary.
Stop-Word Filter for Top Words
The top-frequency analysis excludes English function words ("the", "and", "is", "of", "that", etc.) using the standard NLP stop-word list. Words shorter than 2 characters and pure numbers are also excluded. For non-English text, no stop-word filter applies — you'll see raw frequencies, still useful for spotting repetition.
Platform Character Limits
Twitter/X post: 280 characters. Meta description (Google desktop): ~155-160 before truncation. Page title tag: ~60 characters before truncation. Instagram caption: 2,200 characters max. LinkedIn post: 3,000 characters. SMS segment: 160 characters in GSM-7 encoding (70 in UCS-2 if non-ASCII is used). Verify against platform documentation; limits change.
RTL Script Support
Arabic, Hebrew, Persian, and other RTL scripts are counted by whitespace-separated tokens. Results display in your interface direction (LTR labels with the numeric counts on the right). The textarea direction follows the browser's text-direction inference — usually correct for monolingual RTL input.

Best Practices for Writing to a Word Count

Write to the Audience Time, Not Just the Word Count
A 1,200-word post and a 5-minute read are the same fact in two units. Readers respond to the time label more than the word label — "5-min read" sets an expectation that a number doesn't. Use the reading-time stat as your primary target and let the word count follow. For blog posts aim for 3-5 min reads (700-1,200 words); for in-depth pieces 7-10 min (1,600-2,300); for skimmable updates 1-2 min (200-500).
Aim for the Sweet Spot of Each Platform Limit
Don't write to the maximum; write to the optimum. Tweets land best between 70-100 characters (high engagement, fits on every device). Meta descriptions work best at 150-160 (fills Google's display without mobile truncation). Title tags peak at 50-60 (no truncation, full keyword room). LinkedIn posts perform best under 1,300 characters (above the "see more" fold). Pushing to the cap means trading quality for length.
Use Average Sentence Length as a Density Gauge
Average sentence length above 25 words signals dense prose that's hard to skim. Below 12 feels choppy. The sweet spot for general-audience writing is 15-20, where each sentence carries a complete thought without overstaying its welcome. Technical writing tolerates higher (20-25) when the precision is necessary. Fiction tolerates lower (10-15) when pacing demands it. Use the stat as a coarse warning, not a rule.
Run a Top-Word Frequency Pass Before Submitting
After your draft is complete, glance at the top-ten words list. If a non-keyword word (not your article's topic) sits at the top, you're overusing it. Common culprits: "actually", "basically", "really", "very", filler verbs ("is", "was", "are"). A quick search-and-replace pass on the top two filler offenders typically tightens prose noticeably.
For Bilingual Drafts, Verify Counts Per Language
If your text mixes CJK and Latin, the total word count blends two counting conventions. For billable translation work or word-count-bound assignments, separate the text into single-language chunks and check each individually. This counter follows the Microsoft Word convention for mixed text, so the total matches what most clients will compute — but a single-language verification removes ambiguity.
Treat the Counter as a Sketchpad, Not a Source of Truth
The numbers are accurate, but writing decisions live above the metrics. A 280-character tweet that nails the message beats a 270-character tweet that meanders. A 1,000-word post that earns the time beats a 1,500-word post that doesn't. Use the counter to verify and warn, but make decisions on craft, not arithmetic.
Save Drafts Outside This Tool
This counter stores no text. Refreshing the page or closing the tab wipes the textarea. Draft long-form work in a real editor (a text editor, a docs app, a writing tool with autosave) and paste into the counter when you want a check. For shorter checks during a single session, the in-memory text persists — but treat it as ephemeral.

Frequently Asked Questions

What does this word counter do?
It counts every metric writers, editors, marketers, students, and developers care about — words, characters with and without spaces, sentences, paragraphs, and lines — in real time as you type or paste. It also computes reading time (230 wpm), speaking time (130 wpm), and compares your text against the character limits of Twitter/X, Instagram, LinkedIn, SMS, page title tags, and meta descriptions. A secondary analysis panel shows the top ten most frequent meaningful words (English stop-words filtered out), the longest single word, the average word length, and the average sentence length — the metrics that actually help you tighten prose. Everything runs 100% in your browser using JavaScript: your text is never uploaded, never logged, never stored, and no signup is required.
How accurate is the word count compared to Microsoft Word and Google Docs?
The Latin word count matches Microsoft Word and Google Docs in the overwhelming majority of cases. All three tools tokenize on whitespace, treat hyphenated compounds (e.g., "state-of-the-art") as a single word, and split contractions ("don't" = 1 word). For mixed English-CJK text, this counter follows the same convention as Microsoft Word's Chinese/Japanese mode: each CJK ideograph counts as one word, and Latin tokens count individually. The handful of edge cases where counters diverge — em-dash compounds, em-dashes used as commas, numbers with decimals — affect <0.1% of typical text and produce off-by-one differences at most. For billable counts, copy your text into both this tool and your editor of choice once to confirm; you'll see the numbers agree.
Is my text uploaded or stored anywhere?
No. All counting and analysis runs 100% client-side in your browser using JavaScript. Your text is never transmitted, never stored on any server, never logged, and never analyzed by humans or AI. This makes the tool safe for drafts containing client information, unannounced product names, internal memos, legal documents, journalist source notes, and any other confidential material. You can verify this in your browser's Network tab — typing in the textarea triggers zero network requests. The tool uses no cookies for the input text and no third-party analytics that would capture what you type.
How is reading time calculated?
Reading time uses the adult silent-reading average of 230 words per minute, which is the median rate measured across 17 academic studies of native-English silent reading (Brysbaert 2019 meta-analysis). This is the rate most blog platforms, news sites, and "x-minute read" indicators converge on. Speaking time uses 130 words per minute, the standard rate for clear conference talks, voiceover, and TED-style delivery — slow enough for audiences to absorb, fast enough to feel natural. Both rates are conservative defaults: skim reading runs 400+ wpm, audiobook narration 150-180 wpm, and rapid auctioneer-style speech 250+ wpm. For specialized contexts, treat the displayed time as a baseline and adjust mentally.
Does this work for Chinese, Japanese, Korean, and Arabic?
Yes. The counter handles all major scripts natively. For Chinese, Japanese, and Korean (CJK), each ideograph counts as one word — the same convention used by Microsoft Word, Google Docs, and native CJK word-processors. So a 500-character Chinese essay shows as 500 words, matching what your Chinese teacher or editor expects. For Arabic and other RTL scripts, the counter measures by whitespace-separated tokens and renders results respecting your input direction. Mixed-script text (English + Chinese, Arabic + English) is counted using both rules: CJK characters and Latin tokens are tallied separately and combined. The character count is always Unicode-code-point accurate — emoji, combining marks, and surrogate-pair characters each count once, not twice.
Why is the Twitter limit 280 characters and how does this tool handle URLs?
Twitter/X enforces a 280-character ceiling on tweet text (doubled from the original 140 in 2017). This tool counts the raw character length of your text — what you'd see if you pasted into Twitter's compose box. Twitter automatically shortens URLs to a fixed 23 characters at publish time regardless of original length, so a 100-character URL in your draft still costs 23 once published. To check what Twitter will count, treat any URL as 23 characters: if your draft has one URL, the published length is (your raw count) − (URL length) + 23. The counter displays your raw count; the math for URL substitution is a manual step. For Twitter premium long-form posts (up to 25,000 characters), the 280-cap doesn't apply.
What's the right meta description length for Google?
Aim for 150-160 characters. Google's meta description display on desktop typically truncates between 155 and 165 characters depending on the title and URL length of the snippet, with mobile clipping a few chars earlier. Below 120 characters Google often substitutes a longer auto-generated description from the page body — wasting your hand-crafted message. The sweet spot is 150-160: enough to use Google's full display width, short enough to survive mobile truncation. This counter's meta-description progress bar turns green between 120-160, amber 161-200, and red above 200. Note that Google sometimes truncates earlier than 155 if it can fit a better excerpt; the only way to fully control your snippet is to hand-write it under 155 chars.
What counts as a sentence?
This counter treats a sentence as a run of text ending in a sentence terminator: period (.), question mark (?), exclamation mark (!), Chinese full stop (。), Japanese full stop (。), or Arabic question mark (؟). Multiple terminators in a row ("What?!") count as one sentence boundary. Sentences without a final terminator ("Hello world" with no period) still count as one. The counter intentionally doesn't apply heuristics for "Mr." or "U.S.A." — the rare false positives are noisier than the false negatives, and most published prose uses different abbreviation conventions. For a strict linguistic parse, use a dedicated NLP library; for everyday writing, the terminator-based count matches what teachers, editors, and word-processors report.
How do I count words in a Word document or PDF?
Open the file, copy all the text (Ctrl/Cmd-A then Ctrl/Cmd-C), and paste into the counter's textarea above. The count appears instantly. For PDFs with multi-column layouts or table-heavy content, the copy may include extra spaces or interleaved column text — review the pasted text for obvious artifacts before trusting the count. For documents you can't open in a browser (scanned PDFs, image-only files), use OCR first (Adobe Acrobat, Google Drive OCR, or any free OCR tool), then paste the extracted text. This tool intentionally doesn't accept file uploads: keeping everything in the browser means your sensitive documents never leave your device.
Why are some words excluded from the top frequency list?
The top frequency analysis filters out English stop-words — common function words like "the", "and", "is", "of", "that" that dominate any text but carry no editorial signal. The filtered list is the universal stop-word set used by most search engines and NLP libraries. The frequency analysis also skips words shorter than 2 characters and pure numbers. For non-English text, no stop-word filter is applied — you'll see the raw frequencies, which is still useful for catching repetition in any language. To get the unfiltered top words, mentally include the obvious function words from your language; the editorial value is in what comes after them.
Does the counter support markdown or HTML?
Is there a daily word count goal I should hit?
Nonfiction writers and bloggers typically aim for 500-1,500 words per day; novelists chasing NaNoWriMo target 1,667 words per day for a 50,000-word manuscript in November. Academic writers commonly set 250-500 words per day during dissertation phases — the slow-but-sustainable pace. Twitter threads, marketing copy, and shorter formats track total characters instead. The right target is the one you can sustain seven days a week without burning out; consistency beats peak velocity. This counter shows reading time alongside word count so you can also target by audience time: a 4-minute read is roughly 1,000 words, a 10-minute read is roughly 2,500.
Why might my count differ from another online word counter?
Different counters handle edge cases differently: (1) Hyphenated compounds — most counters (including this one and Microsoft Word) treat "state-of-the-art" as one word; a minority split on hyphens and count four. (2) Em-dash separators — some counters split words on em-dashes, this one does not. (3) Numbers — some skip them entirely, this one counts them as words. (4) CJK text — many Western counters split CJK on whitespace only and undercount by 100x; this counter follows the Microsoft Word convention of one word per CJK character. (5) URLs — some counters strip URLs before counting, this one includes them as one token each. The Word/Google Docs convention is the de facto standard and what this tool follows; if a counter disagrees with both Word AND Google Docs, it's the outlier.

Related Tools

View all tools →