The Optimal Post is 7 Minutes

Understanding which Medium posts get the most attention


We spend a lot of time at Medium thinking about how to keep readers engaged. So we wondered what post length captures the most attention on average. We dug into the data and found the answer: 7 minutes.

Here’s the average total time spent across all visitors of a post, plotted against post length:

Each dot represents the average of all posts of a given length.

We’ll explain this chart and the steps we took to get here in more detail, but the overall pattern is clear:

7-minute posts capture the most total reading time on average.

Plotting views

As a starting point, we’ll look at a familiar metric: page views.

In this chart, every dot is a post. The dots are partially transparent, so darker areas represent overlapping dots. The x-axis is post length (in minutes) and the y-axis is the total cumulative views of the post since it was published.

It’s worth noting we’re using a logarithmic y-axis, since popular posts see many times more traffic than less popular ones. Also, both axes are cropped, as they are in all the following charts; we’re excluding the 20+ minute posts and posts with 1M+ views because the cropped visualization is clearer.

Searching for patterns

It’s difficult to discern much of a pattern. If anything, we might conclude that 3-minute posts tend to have the most views:

Line drawn by hand.

But that’s a tenuous observation at best. This is a good example of how easy it is to fool ourselves with charts. Frankly, there isn’t much we can read into this blobby cluster, and as we’ll see, we would end up drawing the wrong conclusion.


Plotting total time spent

Page views are interesting, but they aren’t the best metric. We care less about clicks and more about actual reading. Time spent is a better reflection of this, so we’ll plot that instead:

Total time spent reading for each post, totaled across all users.

We see a similar blob leading to the same conclusion of about 3 minutes, but we start to get a sense of an upward trend:


Plotting seconds per visitor

To tease out clearer patterns, we can dig into the subcomponents. The total time spent reading a post equals the total number of visitors to that post multiplied by the average time spent reading per visitor. We’ll look at these two components individually, beginning with the average seconds (spent reading) per visitor:

Compared with the prior chart, we see a much clearer upward trend:

However, it is still difficult to parse the true shape of the pattern for shorter posts. That’s because there are many posts clouding up the distribution. A quick histogram of post lengths shows why:

Posts are grouped by second, so there are 60 vertical bars for each minute span.

Overall, 74% of posts are under 3 minutes long and 94% are under 6 minutes long. The large quantity of shorter posts makes it difficult to see through such a dense cluster of dots.


Bucketing seconds per visitor

To shape the data into a more readable form, we’ll bucket the posts and take averages. Specifically, we’ll group the posts by each 1-second bar in the histogram and calculate the average seconds-per-visitor:

Each dot represents an average of all posts with the same length, rounded to one second.

We now see an explicit upward trend for shorter posts. Since we know from the prior chart that the trend continues to slope upward for longer posts, we’re more confident with the overall pattern:

This trend line, and all following trend lines, are drawn by hand.

Calculating medians

When we examined the underlying data, we often noticed outlier visitors who spent exceptionally long amounts of time reading a post. We already remove the time from idle browser tabs, but there are still outliers totaling several hours (sometimes spanning multiple visits). They raise the average enough to cause overestimates.

So, a better measure in this case is the median, not average, of time spent per visitor:

The general pattern is similar, but we see a dip for longer posts:

Even with this dip, a larger percent of the longer posts tend to have high values. So while the median time spent decreases, longer posts are also more likely to be one of the hits that perform especially well.


Plotting visits per post

We’ll use the same bucketing method to plot the second component, total visitors per post:

We see an even clearer trend that rises, peaks, and then falls again:

It’s noteworthy that at the beginning of the trend, the longer posts tend to see more visitors. This suggests a possible correlation between length and quality—that, on average, the longer posts are higher quality, resulting in more sharing and, consequently, more traffic. It’s hard to guess why the trend starts declining again, but perhaps the longest posts tend to appeal to more to niche audiences.


Back to total time per post

With a better understanding of its components, we‘ll return to the original question of total time spent per post. We’ll plot the same data as before using the new bucketing method:

Rather than a blob, we now see the familiar increasing, peaking, and then declining trend. And with a much better understanding of the underlying components, we can more confidently identify the overall pattern:

And there we have it: the average total seconds rises for longer posts, peaks at 7 minutes, and then declines.


But beware!

This doesn’t mean we should all start forcing our posts to be 7 minutes! There is enormous variance. Great posts perform well regardless of length, and bad posts certainly don’t get better when you stretch them out.

What it does mean is that it’s worth writing however much you really need. Don’t feel constrained by presumed short attention spans. If you put in the effort, so will your audience. It’s just math.