✍️ Real-time analysis

Count words &
analyze text. Free.

Count words, characters, sentences, paragraphs and reading time. Keyword density and SEO analysis included.

Words & characters Reading time Keyword density SEO analysis Real-time
Characters: 0
📊 Text statistics
📝 Words 0
🔤 Characters 0
🔡 No spaces 0
💬 Sentences 0
Paragraphs 0
📏 Avg word length 0
⏱️ Reading & speaking time
👁️ Slow read 0 sec
📖 Average read 0 sec
⚡ Fast read 0 sec
🎤 Speaking time 0 sec
🔍 SEO analysis
Word count
Avg sentence length
Readability
Paragraph structure
🔑 Keyword density
Keyword Count Density Frequency
Type or paste your text to see keyword density
How it works
01
Type or paste text
Paste any text — articles, essays, emails, social posts, scripts or any other content.
02
Real-time stats
Words, characters, sentences, paragraphs and reading time update instantly as you type.
03
SEO analysis
Check if your content meets SEO best practices for word count, readability and structure.
04
Keyword density
See which words appear most often and their frequency percentage for SEO optimization.
🛡️
100% private. All text analysis happens entirely in your browser. Your text is never sent to any server or stored anywhere.
Frequently asked questions
The word counter works entirely in your browser in real time. As you type or paste text into the editor, it instantly counts words, characters, sentences, paragraphs, and calculates reading time. No data is sent to any server — all analysis is performed locally using JavaScript, so your text remains completely private.
Reading time is calculated based on average reading speeds: slow read at around 150 words per minute, average read at 238 words per minute, and fast read at 350 words per minute. Speaking time is estimated at approximately 130 words per minute, which is typical for presentations and narrations. These are averages — actual reading speed varies by person and content complexity.
Keyword density is the percentage of times a specific word appears relative to the total word count in a piece of text. For SEO, it helps you understand whether your target keywords appear naturally and with appropriate frequency. Overusing a keyword (keyword stuffing) can hurt your search rankings, while too few mentions may reduce relevance. A density of 1–3% for your main keyword is generally considered healthy.
The SEO analysis checks four key factors: total word count (longer content tends to rank better for informational queries), average sentence length (shorter sentences improve readability), readability score (simpler language reaches a broader audience), and paragraph structure (well-organized content with consistent paragraph lengths is favored by search engines and readers alike).
For most informational blog posts, 1,000–2,000 words is a solid target. In-depth guides and pillar content often perform better at 2,000–4,000 words. Short-form content (300–600 words) can still rank well for simple queries with low competition. The key is that the content must be genuinely useful and comprehensive for the topic — length alone does not determine ranking.
Yes. The tool counts both total characters (including spaces) and characters without spaces. This is useful for platforms with character limits: X (Twitter) allows 280 characters, Instagram captions support up to 2,200 characters, LinkedIn posts up to 3,000 characters, and meta descriptions for SEO should ideally stay under 160 characters.
No. Everything you type or paste into the word counter stays in your browser and is never transmitted to any server. When you close or refresh the page, the text is gone. WorldMerch does not collect, store, or have access to any text you analyze with this tool.
Yes. The tool includes quick formatting buttons that let you convert your text to UPPERCASE, lowercase, or Title Case, remove extra spaces, and copy all text to the clipboard. These are helpful for cleaning up and formatting text after editing, without needing a separate text editor.
More free tools
function toggleFaq(btn) { const answer = btn.nextElementSibling; const isOpen = btn.classList.contains('open'); document.querySelectorAll('.faq-question.open').forEach(q => { q.classList.remove('open'); q.nextElementSibling.classList.remove('open'); }); if (!isOpen) { btn.classList.add('open'); answer.classList.add('open'); } }