There's basically three different ways to deliver a website these days.
- Hosted: Services like Squarespace, Weebly, Wix and countless more fall under the "Hosted" banner. The appeal is that that you can build a website without having to know how to code. The disadvantage is that these sites come with limited customizability and if a feature doesn't exist, there's usually no way to add it in. (Just try figuring out how to auto-upload to Squarespace for example.) Because these services all rely on proprietary technology, it's hard to know how they operate under the hood. They're easy to use but they're the website equivalent of living in manufactured housing.
- Dynamic: These are websites powered by a Content Management System, using an interpreted language like PHP and storing content in a database like MySQL. WordPress is the unquestionable monster in this group, with an estimated 75 million websites or 27% of the internet being powered by WordPress! In 2019, this is definitely the most popular way to deploy a website.
- Static: While this sort of website is as old as the internet, deploying 100% static sites is seeing a resurgence in popularity. Static sites come with some big architectural advantages in security over dynamic sites and they are infinitely customizable as opposed to hosted sites. And theoretically, they should be a lot faster than any other option. But is that the case...?
I'm building a static hosting service for designers and I wanted to it to load pages fast; faster than WordPress and faster than Squarespace. But I wanted to see if that was a realistic expectation. I decided to run some tests on these different methods.
With some Googling and searching around on Censys I was able to put together a sample group of sites, segmented by service. Then it was just a matter of running them through Pingdom's Speed Test service one by one and compiling the results. Here's what I found.
I'll be honest, I expected these to perform the worst. Hosted, templated sites always feel slow to me. But the results weren't bad. The average page load for the sites I surveyed was 1467 milliseconds. But where the hosted services really shone was in consistency. When you run a standard deviation calculation on the page load times, the hosted sites only showed an average deviation 485 milliseconds. This was for all sorts of different content, image heavy, text heavy, etc
👉 Conclusion: Hosted services are decent on page load times and they are most consistent. I.E. Due to their constraints, they're the hardest to screw up royally.
I've built a ton of Wordpress sites in my past, I've built a smaller number of TextPattern sites and I think I did one ExpressionEngine site about ten years ago. I include TextPattern and ExpressionEngine here because architecturally they're similar to WordPress and I wanted more data as a baseline. I was expecting this group of sites to load the slowest and this time I was right.
Dynamic sites took an average of 2,343 milliseconds to load. WordPress was the highest, taking an average of 3,081 seconds to load. And standard deviation was much higher for dynamic sites too:
WordPress had a standard deviation of 1,780 milliseconds, the highest out of any service that I surveyed.
👉 Conclusion: Despite their popularity, dynamic sites are the slowest and most dependent on individual configuration (I.E. hosting provider, plugins, caching, etc.). This is partly due to their complex architecture of interpreted language and database lookups that happens on every single page load. Once you mix in a large amount of unmoderated plugins of varying quality, it becomes hard to prevent sites slowing to a crawl. If speed is a major consideration for your site, look elsewhere or proceed with caution.
Here's the part that I was excited about. Compared to Dynamic sites, static sites are things of beauty. All of the work happens locally or on a build machine so by the time it gets to a server, the only thing it has to do is serve up an HTML page--no database lookups, no language interpretation, no template compilation. Served over a CDN, this should be blazing fast. And when I tested it, it was. Sort of...
(Because static sites don't come with much of a fingerprint to show who the'yre hosted with, it was tricky to even find sites as samples to survey. I used Netlify's site of the week and then some searching on Censys to find samples for these three services.)
Surge.sh and Zeit Now ended up in a virtual tie for the fastest out of all the static services with Surge narrowly beating Zeit. Netlify came in a little slower on page load times then I expected (even getting beat by Squarespace). The standard deviation results were interesting:
The static sites beat dynamic again but lost out the hosted options by a significant margin.
👉 Conclusion: Static sites are the fastest way to serve a site but it's not a magic bullet. You can lose that advantage if you don't build your HTML to take advantage of static hosting. If speed is your main consideration, make sure that you follow other best practices for optimizing page load in addition to serving a static site.
And the winners are...
- 🏆 Fastest Website Load Time: Surge.sh. Runner up: Zeit.
- 🏆 Most Consistent Website Load Time: Wix. Runner up: Squarespace
And the losers:
- 😖 Slowest Website Load Time: Wordpress. Runner up: Textpattern.
- 😖 Most Inconsistent Website Load Time: Wordpress. Runner up: Zeit
If you love websites you should love and hate WordPress. I love WordPress because it's made building websites achievable for millions of users. I love WordPress because it treats its users with respect and doesn't trick them into using a product only to steal their data. In many ways it's a wonderful product. But I hate WordPress because it's the wrong architecture for so many of the sites it runs and, because of this, these sites run unbearably slow. I would venture that millions of WordPress sites (maybe even the majority of WordPress sites), should be rebuilt as static sites.
That's why I'm so excited about services like Netlify, Zeit, and Surge. That's why I'm building my own static hosting service. I want more people to have websites but I want them to be fast websites. The future doesn't belong to the template factories like Squarespace & co, it shouldn't. Things are looking very bright for static sites but we need to make it more accessible to the developers who are using currently using WordPress to build their sites.
🤓 If you want to follow along with me as I build a static web host for creative people, sign up for the Wünderbucket beta. Let me know that you're from the dev.to community and I'll be sure to put you to the front of the line.
Disclaimer: Do not substitute one man's results for a legitimate scientific study. There are lots of factors that can affect page load time other than what method / framework you're using. Any framework can be made to load fast and the best framework can load slowly.