Brian Cray ··· Home > Blog > Php, Design > Estimated reading time in web design

Estimated reading time in web design

Jakob Nielsen's Alertbox is like a living web design bible for me. In case you don't know Mr. Nielsen, he's considered one of the top web usability experts in the world, and his Alertbox is filled with extremely well-researched articles on how people use the Web.

Users don't read (more than 18%)

About 2 years ago Jakob Nielsen wrote an "Alertbox" titled How little do users read?. His research suggests that users will read only 18% of your content. Given that I spend a few minutes editing each sentence I write, that's pretty deflating.

Since I reread this article a few days ago, I've been more sensitive to my own reading habits on the Web. And I'm just another statistic. I find that I read the first couple of paragraphs before I get distracted and scroll down for a call to action.

How to increase time on page?

Then I thought, what strategies can I apply to increase that number from 18%? How can I get my users to read more?

My solution is to set user expectations upfront with an estimated reading time for my articles. My hope is that I can influence users to interrupt article abandonment with the thought "well I know it's only going to be 1 more minute to finish reading this thing, so I'll just finish."

Implementation of estimated reading time with PHP

I developed a PHP snippet that basically divides word count by 200 (avg. words per minute) to output minutes and use the remainder to calculate seconds. After adding this code, you'll output something like, "Estimated reading time: 1 minute, 30 seconds"

$mycontent = $post->post_content; // wordpress users only
$word = str_word_count(strip_tags($mycontent));
$m = floor($word / 200);
$s = floor($word % 200 / (200 / 60));
$est = $m . ' minute' . ($m == 1 ? '' : 's') . ', ' . $s . ' second' . ($s == 1 ? '' : 's');

<p>Estimated reading time: <?php echo $est; ?></p>

Making light of your website's usability

After using this code on my own site, I was surprised to see my article's average reading time was around 2 minutes and 30 seconds. So if I can increase my time on site to around that time, I'm doing pretty well. You might want to check your own analytics and compare against your article's reading time s against time on site.

But if you do, beware of outliers—in this case people who leave your website open & bounces—that skew your time on site metric because most analytics calculate mean, not median.


I'm still monitoring the implication of this design change on my own website. If you're interested in an update when I know more, be sure to follow me on Twitter.

Update: After testing my estimated time theory on nearly 3,000 visits, I have some results. Showing an estimated time improved time on site by 13.8%. What's more interesting though—people either followed me, subscribed to my blog, or retweeted my articles 66.7% more often.