Paste or type any text and instantly see ten writing metrics: word count, character count, unique words, sentences, paragraphs, lines, bytes, estimated reading time, estimated speaking time, and a live keyword frequency table showing your ten most-used words. No button to click. No login. Your text never leaves your browser.
What This Word Counter Measures
- Words: Every sequence of letters or numbers separated by whitespace counts as one word. Contractions (
don't), hyphenated compounds (well-known), and numbers (42) each count as one word. - Unique words: The number of distinct words after lowercasing. A vocabulary density of 55–70% is typical for readable web content.
- Characters: Total character count including spaces and punctuation — each Unicode code point counts as one character.
- Characters without spaces: Character count with all whitespace stripped. Used when platforms impose limits on visible glyphs.
- Sentences: Text segments ending with
.,!, or?(and their CJK equivalents). Abbreviations and ellipses may slightly affect the count. - Paragraphs: Blocks of text separated by one or more blank lines.
- Lines: Hard line breaks. Relevant for code, poetry, scripts, and CSV data.
- Bytes: UTF-8 encoded byte size. Important for API payloads, database column limits, HTTP headers, and SMS messages.
- Reading time: Estimated at 200 words per minute — the average silent reading speed for adult native speakers.
- Speaking time: Estimated at 130 words per minute — the comfortable delivery pace for presentations and podcasts.
How to Use
- Paste or type text into the input field — all ten stats update in real time as you type.
- Use Upload to load a
.txtfile directly from your device. - Use Clear to reset and start fresh.
- Check the Top keywords table below the stats to see which words appear most often and their share of total words.
- Pre-fill the input from an external tool or CMS by adding
?input=your+textto the page URL.
Word Count by Content Type
Different writing formats have established length norms. Use this table as a quick reference when writing to a target or verifying a word count.
| Content Type | Typical Length | Notes |
|---|---|---|
| Tweet / X post | Up to 280 characters | Character-based, not words |
| Google meta description | 155–160 characters | Beyond 160 Google truncates |
| Email newsletter | 200–500 words | Shorter emails get higher engagement |
| Cover letter | 250–400 words | One focused page |
| College essay (Common App) | 250–650 words | Hard limit enforced |
| Blog post | 1,500–2,500 words | Standard informational content |
| Long-form SEO article | 2,500–4,000 words | Correlates with competitive rankings |
| Short story | 1,000–7,500 words | |
| Novella | 20,000–40,000 words | |
| Novel | 70,000–100,000 words | Genre varies significantly |
| Master’s dissertation | 15,000–25,000 words | Varies by institution |
Platform Character Limits
When preparing copy for digital platforms, character count often matters more than word count. These are the hard limits in 2026 for the most common publishing targets.
| Platform / Field | Limit |
|---|---|
| Twitter / X post | 280 characters |
| Twitter / X bio | 160 characters |
| Google search title | 50–60 characters |
| Google meta description | 155–160 characters |
| Google Ads headline | 30 characters per headline |
| Google Ads description | 90 characters per line |
| Facebook ad headline | 27 characters |
| Instagram caption | 2,200 characters |
| Instagram bio | 150 characters |
| LinkedIn post | 3,000 characters |
| LinkedIn headline | 220 characters |
| YouTube title | 70 characters |
| TikTok caption | 2,200 characters |
| SMS (GSM-7 encoding) | 160 characters per segment |
Unique Words and Vocabulary Density
The Unique words stat counts how many distinct words appear in your text after normalizing to lowercase. If your 1,000-word article uses 620 different words, your vocabulary density is 62%.
Why it matters for writing quality:
A high density (above 60–65%) suggests varied, engaging prose. A low density (below 40%) often indicates heavy repetition, filler phrases, or keyword stuffing. Literary fiction typically sits above 70%, while conversational copy may sit at 45–55% by design.
Why it matters for SEO:
If your text has 2,000 words but only 400 unique ones (20%), a handful of words likely appear dozens of times each — a pattern search engines associate with manipulative over-optimization. Use the Top keywords table alongside the unique word count: if your target keyword appears in the top three most-frequent words in a short piece, you have a concrete signal to diversify your language.
Why it matters for academic work:
Plagiarism detectors and AI-content classifiers flag abnormally low vocabulary density as a signal of text spinning or AI paraphrasing. Genuine human writing in a given subject area maintains consistent lexical variety.
Reading Time and Speaking Time
Reading time is calculated at 200 words per minute — the standard average for adult silent reading in English. Speaking time uses 130 words per minute, which reflects a natural, unhurried presentation pace.
Both are approximations. Real reading speed ranges from 150 to 250 WPM for non-technical prose. Actual speaking speed for broadcasters and experienced presenters runs 130–160 WPM, with 130 WPM leaving comfortable room for pauses and emphasis.
Words-to-time reference table:
| Duration | Speaking (130 wpm) | Reading (200 wpm) |
|---|---|---|
| 1 minute | ~130 words | ~200 words |
| 2 minutes | ~260 words | ~400 words |
| 5 minutes | ~650 words | ~1,000 words |
| 10 minutes | ~1,300 words | ~2,000 words |
| 15 minutes | ~1,950 words | ~3,000 words |
| 20 minutes (TED talk) | ~2,600 words | ~4,000 words |
| 30 minutes | ~3,900 words | ~6,000 words |
| 45 minutes | ~5,850 words | ~9,000 words |
| 60 minutes | ~7,800 words | ~12,000 words |
For podcast scripts, 130 WPM is a reliable baseline; most hosts range from 120–160 WPM. For YouTube videos, plan for 120–140 WPM to allow for pauses, visual moments, and natural speech patterns.
Top Keywords: Your Word Frequency Table
The Top keywords panel shows the ten most frequent words in your text with their raw count and percentage of total words. It appears automatically as soon as your text contains words, and updates in real time.
For SEO content writing: Paste your draft article and check whether your primary keyword is in the expected range. A target keyword appearing at 1–2% of total words is a safe, natural-looking frequency. If the table shows a keyword at 4–5%+ in a short piece, the excess is visible immediately — without needing to scan the full text manually.
For general writing quality: Repetitive prose often stems from unconscious habit words — very, really, just, that, thing. If the frequency table shows just appearing 14 times in a 300-word email, you have a specific, actionable signal to edit before sending.
A note on stop words: The table shows all words including common function words (the, a, is, and). This is intentional — for content analysis, confirming that the tops your frequency list (not an unintended keyword) is useful information. If a content word appears in the top three alongside the and a, take note.
Byte Count: A Metric for Developers
The Bytes stat shows the UTF-8 encoded size of your text. For plain English, bytes equal characters — every ASCII character uses exactly one byte. The two diverge for non-ASCII text:
- ASCII character (a–z, 0–9, standard punctuation) → 1 byte
- Latin-extended character (é, ñ, ü) → 2 bytes
- CJK character (Chinese, Japanese, Korean) → 3 bytes
- Most emoji → 4 bytes
When byte count matters:
- SMS: Standard GSM-7 encoding allows 160 characters per message segment. Switching to Unicode (required for emoji or non-Latin characters) drops the limit to 70 characters per segment. A single emoji can push a 160-character message into multi-part territory.
- Database columns: A MySQL
VARCHAR(255)stores 255 bytes, not 255 characters. A 100-character string in Chinese uses 300 bytes and exceeds the column limit. PostgreSQLVARCHAR(n)limits by character count, not bytes — knowing which you are working with prevents silent truncation. - API payloads: Many APIs enforce byte-based body size limits (commonly 256 KB, 1 MB, or 10 MB). Byte count determines whether a payload can be sent in a single request.
- Browser storage:
localStorageandsessionStoragehave a 5–10 MB byte-based quota per origin. AlocalStoragekey storing a large document will hit the limit faster than a character count suggests.
Your Text Never Leaves Your Browser
Word counters routinely handle confidential content — legal drafts, medical notes, unpublished manuscripts, proprietary business documents. Sending that text to a third-party server for processing is an unnecessary risk.
At UPREK, our approach is simple: all computation runs entirely in your browser using native JavaScript — no server round-trip, no analytics ping attached to your draft, no third-party service touches your text.
- 100% local processing: Word counting, character counting, byte calculation, unique word analysis, and keyword frequency all run in your browser’s JavaScript engine using built-in
String.match(),Set,Array, andTextEncoderAPIs. No external libraries or remote calls are involved. - Zero server uploads: Your text is never transmitted to our servers — not on paste, not on file upload, not on any keypress.
- No logs or storage: We do not log, store, or cache any input you enter or upload into this tool.
- Instant deletion: Your text exists only in the browser tab’s active memory. Close the tab and it is gone.
- Verifiable: Open your browser’s developer tools, switch to the Network tab, and start typing. You will see zero outbound network requests triggered by the word counter.
Pre-filling via URL Parameter
You can pre-load text into the input using the ?input= query parameter:
https://www.uprek.com/en/tools/word-counter?input=hello%20world
This is useful for internal workflows — for example, a CMS button that opens this tool pre-loaded with a draft to check length before publishing. Avoid embedding sensitive text in URLs, as URLs are stored in browser history and may appear in server or proxy logs.
Frequently Asked Questions
What counts as a word — are numbers and hyphenated words included?
Yes to both. This counter uses a Unicode-aware word pattern that matches any continuous sequence of letters or numbers. A number like 42 counts as one word, a contraction like don't counts as one word, and a hyphenated compound like well-known counts as one word. The same pattern applies to non-Latin scripts — Arabic, Devanagari, Cyrillic, and others are handled correctly.
How accurate is this tool compared with Microsoft Word or Google Docs?
Very close for standard prose, with minor differences on edge cases. Word processors apply proprietary rules for URLs, email addresses, and certain punctuation patterns. For everyday writing, the counts match closely. For academic submissions with strict word limits, always verify the final count in the word processor your institution specifies — some enforce document-type-specific rules that differ from general-purpose counters.
How is reading time calculated?
Reading time is estimated at 200 words per minute — the widely cited average for adult silent reading in English. The actual speed for any reader varies based on text complexity, familiarity with the subject, and individual reading ability. Fluent readers typically range from 150 to 250 WPM for non-technical prose. The estimate is an approximation, not a guarantee.
How many words is a 5-minute speech?
At a comfortable speaking pace of 130 words per minute, a 5-minute speech is approximately 650 words. At a faster pace of 150 WPM, 5 minutes is roughly 750 words. For a 10-minute presentation, plan for 1,300 words at 130 WPM. For a 20-minute talk (TED-length), plan for about 2,600 words. The speaking time displayed by this tool uses 130 WPM as the baseline — a clear, unhurried delivery that leaves room for pauses and emphasis.
What is unique word count and what is a healthy vocabulary density?
Unique word count is the number of distinct words in your text after converting everything to lowercase. Vocabulary density is unique words divided by total words, as a percentage. For web articles and blog posts, 55–70% is typical. Below 40% often signals heavy repetition or keyword stuffing. Above 75% is common in literary prose. Use the unique word count alongside the Top keywords table — if your target keyword tops the frequency list in a short piece, the combination tells you why.
What is keyword density and what percentage is safe for SEO?
Keyword density is the number of times a specific word appears divided by total words, expressed as a percentage. There is no universally enforced threshold — Google's guidance has moved away from specific density targets. As a practical rule, 1–2% for a primary keyword avoids the patterns associated with stuffing. If the Top keywords table shows a content keyword at 4–5%+ in a short article, consider diversifying your language with related terms rather than reducing the keyword mechanically.
What is byte count and when does it matter?
Byte count is the UTF-8 encoded size of your text. For plain English, bytes equal characters. They diverge for accented characters (2 bytes each), CJK characters (3 bytes each), and emoji (4 bytes each). Byte count matters for: SMS messages (160-byte GSM-7 limit per segment, 70 bytes in Unicode mode); database VARCHAR column limits that are byte-based, not character-based; API payload size constraints; and localStorage quotas in the browser.
Does this tool work with non-English text?
Yes. The word counter uses a Unicode-aware regex that correctly identifies word boundaries in Latin, Cyrillic, Arabic, Hebrew, Devanagari, Thai, and other scripts. For CJK text (Chinese, Japanese, Korean), each unbroken sequence of characters is counted as one word — which may not match native-language word segmentation since CJK writing does not use spaces between words. The byte count stat is especially relevant for CJK content, since each character uses 3 bytes in UTF-8.
Can this tool handle very large text files?
Yes. All processing runs in your browser's JavaScript engine, which is highly optimized for string operations. Files up to several megabytes process without issues on modern devices. For very large files (50 MB+), performance depends on available device memory — if the browser slows noticeably, consider splitting the file or using a command-line tool like wc on Linux/macOS.
What is the ideal word count for a blog post or SEO article?
There is no universal ideal — it depends on the topic, competition, and user intent. As a practical baseline: standard blog posts of 1,500–2,500 words perform well for most informational queries; long-form pieces of 2,500–4,000 words tend to rank better for competitive keywords where depth signals expertise. Thin content under 500 words rarely ranks for competitive terms. More important than raw word count is whether the article fully addresses the user's question — Google's quality guidelines reward thoroughness over length alone.
Is my text private?
Yes, completely. All computation runs in your browser using native JavaScript — String.match(), Set, Array, TextEncoder. Your text is never transmitted to our servers, never logged, and never stored. You can verify this yourself: open your browser's developer tools, go to the Network tab, and start typing. You will see zero outbound network requests triggered by the word counter.
Can I pre-fill the tool with text from a URL?
Yes. Add ?input= followed by URL-encoded text to the page address. This is useful for internal tools and CMS workflows that link to this counter pre-loaded with content to check before publishing. Avoid embedding sensitive text in URLs — URLs are stored in browser history and may appear in server or proxy logs.
Changelog
v1.1.0 May 23, 2026
- Redesigned input panel with toolbar (Upload, Clear), line-number gutter, and size status bar
- Added Unique words stat
- Added Top keywords table showing the 10 most frequent words with count and relative percentage bar
- Counting is now always real-time — removed Auto Count toggle and Count button
v1.0.0 May 10, 2026
- Count words, characters (with and without spaces), sentences, paragraphs, lines, and bytes
- Estimated reading time (200 wpm) and speaking time (130 wpm)
- Upload a text file; supports ?input= URL prefill