A few weeks ago, I came across a blog post claiming that websites today are no faster than they were more than 10 years ago. My first reaction was disbelief. After all, home and mobile broadband today are significantly faster than 10 years ago. With home broadband reaching 70 Mbps globally, and increasing every year, you would expect your web page load speeds to get faster, right?
Then I got to thinking about my own experience with how fast web pages load. These days I generally wait 2-6 seconds for most sites. If I think back 10 years (that would be 2012), I remember waiting 2-6 seconds for most sites.
Either my memory is bad, or the entire internet has conspired to waste our time with repetitive waiting periods. So as with everything on datafantic, let's dig into the data and try to read between the lines.
How fast do web pages load?
It's pretty tricky to figure out how fast web pages load. When a web page loads on your computer, when is it "loaded"? Is it when the first content shows up, when you can start to scroll, or when everything is finished?
Luckily the good folks over at httparchive.org have been tracking this issue for years. I chose two metrics from their site to visualize web page loading times over several years. Both use data for desktop only. They regularly scrape a list of 4.2 million URLs and track the result.
The first metric is how long it takes for the onLoad event to be called. This event is called when all text, images, and stylesheets on the page have been loaded. The dataset stretches back to late 2010, so we can get a long view of how things have changed.
The median time for the onLoad event to be called has only dipped below 6 seconds three times in the data. Since 2019, the value has been stagnant. Before 2019, there is significant variability in the data. To understand this variability, it's important to understand how this data is collected.
The HTTP Archive, is a part of the Internet Archive, which has a mission to collect web pages across the internet and permanently store them. To do this work they continually scrape web pages across the internet, and they also track things like page load times using various metrics.
Their web scrapers have changed over time by switching to different platforms (Windows to Linx), changing software, and upgrades to the underlying internet of the machines. So variability in the data may not always be caused by changes in the websites themselves.
To get a better perspective of web page load times, I found another dataset the HTTP Archive hosts called the Speed Index. This index was developed by webpagetest.org and measures the visual speed of a page loading, as opposed to events being called in the browser as we saw above.
Since what we really care about is the page being visually complete, this is a more meaningful measure of web page load speeds. Let's see how things have changed from 2016 to today.
This graph is significantly more consistent. There is a big dip in early 2017, which has an annotation in the data at this exact date that they switched to Linux for their testing. Other than this change, we can see remarkably flat median load times.
With a median of right around 4 seconds, we can see that web page load times just aren't that fast. Our broadband internet on desktop
Does speed matter?
Now that we've established that web page load times just aren't that fast, do we care? After all, if we cared about fast-loading web pages, we would be voting with our mouse clicks to choose to visit websites that loaded faster.
After all, a slow website leads to a lower ranking on Google which can cost a website dearly. In 2013 a case study found that an extra 2 seconds of load time resulted in 87% less conversions on an e-commerce website. This often cited number tells us that speed matters. Yet website speeds clearly haven't improved.
I believe there has been no improvement because of a lack of information. We don't know how fast a website will be until we go to it. Then once it's loaded and we found it to be slow, the sunk cost fallacy sinks in. I already spent time visiting the site, so I might as well use the site now.
Unless the time to wait for the site to load is so long that it sticks in our memory, it's unlikely to change our behavior. How long is long enough to remember? I'm not sure, and I couldn't find any public data, but I can say that 4 seconds seems perfectly fine.
What if we had better data about slow sites? Would a warning on a site as its loading change your behavior? Back in 2019 on the Chromium blog the possibility of labeling sites on phones as often loading slow was discussed. A green loading bar would denote a fast-loading site, and a warning label during page load would tell you if the website usually loaded slowly. Alas, this never came to be, and it seems Google has settled on downranking slow sites on its search engine.
Understanding the world through data
Get notified when a new post dropsSubscribe
How much of our lives do we waste waiting?
To put all of this in perspective, I wanted to figure out how much of my life I've spent waiting for websites to load. Of course, this is tricky, as the number of web pages I visit today is probably more than when I first started using the internet.
As usual, when modeling a situation and you are in doubt, make assumptions. Better yet, let people change those assumptions with a handy slider. To let you play with these inputs, I put together a Streamlit app that is embedded. Here are my results:
The app assumes a constant number of web pages per day regardless of your age. I considered adding in a distribution selector to model the behavior change but thought this would be difficult to conceptualize. What curve would you use to describe your web page viewing behavior? I don't know either.
I probably visit more web pages today than I used to. A quick history search shows about 150 web pages per work day for me. I settled on an average of 90 web pages per day over my life. This surely isn't a perfectly accurate measure of the time I've wasted. But it is an estimate, and you can use it for at least the entertainment value.
What is interesting is when you change the load time to 1 second. I could have saved 27 days of my life up until now! Try the app out for yourself. What is clear is that if web pages had 1-second or sub-second loading times, we would all be better off. To view the app on a separate page, click here.
You can access all the code I used to perform the analysis and create the Streamlit app above. I host it all on Deepnote, a great place to perform analysis and share it with others.
Click the button below to find the code on Deepnote.
Deepnote is a new kind of data notebook that’s built for collaboration— Jupyter compatible, works magically in the cloud, and sharing is easy as sending a link.