Estimate how long it takes to read your content.
Displaying estimated reading time has become a standard feature on blogs, news sites, and content platforms. It sets reader expectations, improves user experience, and helps content creators optimize their work for engagement. Medium popularized this feature, and it's now expected on most content-heavy websites.
Reading speed varies significantly based on several factors:
| Factor | Impact on Speed | Typical Range |
|---|---|---|
| Age | Children read slower, adults peak in 30s-40s | 100-300 WPM |
| Education Level | Higher education correlates with faster reading | 150-280 WPM |
| Content Complexity | Technical content slows reading 30-50% | 100-200 WPM |
| Familiarity | Known topics read faster than new ones | ±50 WPM |
| Purpose | Skimming is 3x faster than careful reading | 200-700 WPM |
| Device | Screen reading is 20-30% slower than print | 150-220 WPM |
Words per minute
Most adults fall in this range for casual reading
Words per minute
Above average, good comprehension maintained
Words per minute
Trained technique, comprehension may vary
| Content Type | Ideal Length | Reading Time | Why This Works |
|---|---|---|---|
| News article | 400-800 words | 2-4 min | Quick updates, breaking news |
| Blog post | 1,500-2,500 words | 7-12 min | Sweet spot for SEO and engagement |
| Long-form article | 3,000-5,000 words | 15-25 min | Deep dives, pillar content |
| Email newsletter | 200-500 words | 1-2 min | Respects inbox attention |
| Landing page | 500-1,000 words | 2-5 min | Enough to convert, not overwhelm |
Research from Medium and other platforms suggests that 7 minutes is the optimal reading time for maximum engagement. Here's why:
Understanding reading time helps predict user behavior:
Most platforms and CMS systems can calculate and display reading time:
// JavaScript implementation
function calculateReadingTime(text, wpm = 200) {
const words = text.trim().split(/\s+/).length;
const minutes = Math.ceil(words / wpm);
return minutes + ' min read';
}
// Include in template (pseudocode)
<span class="reading-time">
[[ calculateReadingTime(content) ]]
</span>
Speaking is typically slower than reading:
Use speaking time estimates for video scripts, podcast outlines, and presentation planning.
| 250 words | ~1 min |
| 500 words | ~2 min |
| 1,000 words | ~4 min |
| 1,750 words | ~7 min |
| 2,500 words | ~10 min |
| 5,000 words | ~20 min |
Based on 250 WPM average
Add 30% for:
Subtract 20% for: