Site load time and page size. It’s easy to get at least a 300% improvement in both. And it’s never been more important. Google ranks sites on speed. A slow site is an SEO hit. Viewers click away when sites take too long to load. That’s a conversion hit. Bot attacks that chew up host server resources are on the rise. When you slam into the resource limits, you’re site is unavailable. Poor site performance costs you in so many ways.
This is the first in a series of posts on exactly how to improve site performance. Everything in the series is based on exhaustive testing that details the test conditions and exactly what each change improved.
What You Get
In this post you’ll see my initial testing setup and a summary of the first three steps you can take to radically improve your site performance. They are easy and cheap. So you have zero excuse not to grab this low-hanging fruit.
And not a one of them is a caching plugin.
Get the Full Report
You can also purchase the full 130 page Case Study that contains all of the test data along with screenshots and detailed summaries. It took 30+ hours to produce and is a great reference for site designers, developers, and SEO professionals who want to know exactly what they get with each improvement. Makes it super easy to show a client the ROI on site improvement too.
The Initial Setup
I started my tests with a fresh install of WordPress, and the default Twenty Fourteen theme. No plugins were activated. And no content was added to the site beyond the sample page and post that come with it. In other words, I started with WordPress out of the box.
I also used a big name hosting company on their shared hosting plan for the first phase of testing.
(The full report reveals which one.)
Testing Sites and Pages
I used the same free, online testing sites you can use, including Pingdom, GTMetrix, WebPageTest, and Google SpeedPage Test. The full report discloses all of the setup details for each one, including how I avoided my own browser caching.
I also tested the exact same pages each time, including the Home page, a page empty of content, and the Hello World post that comes with WordPress. Then I added a page with a 500×500 image and 500 words of filler text to simulate a real-world post.
Let’s get to the results!
How Inefficient WordPress Really Is
All tests on all testing sites bore out one glaring fact. WordPress out of the box on a typical shared hosting plan leaves a lot to be desired in the area of overall performance.
Here are the results for just the Home page.
Each testing site recorded a page size of 387.8kB and 12 requests between the viewer’s browser and the host server.
Pingdom returned a Performance grade of 77/100 and a site load time of 1.59s.
The style sheet (CSS file for the theme) and jQuery code (in the WordPress core) took the longest to load.
GTMetrix returned a Page Speed Grade of 72% and a YSlow Grade of 87%. The load time was 8.16s. (I ran this test several times across a couple of days, to ensure that the speed was reporting properly, as it seemed extraordinarily slow to me, especially compared to the other pages. But I consistently got the same time average with GTMetrix.)
WebPageTest rated the Home page score as 66/100, with the First View load time of 4.963s and a Repeat View of 1.080s.
Google PageSpeed Insights returned a Mobile score of 66/100 and a Desktop score of 78/100.
Summary – those are not good numbers for an empty site.
Same Tests, Faster Hosting
I migrated the site onto A2 Hosting, (aff link) which is the company I use for BlogAid, and is my preferred vendor.
A2 Hosting has blazing fast SSD (Solid State Drives) available, even on shared hosting.
See what a difference it made in site load time for just the Home page.
(First time listed is from big name host. Second is on A2.)
- Pingdom – 1.59s down to 0.716s
- GTMetrix – 8.16s down to 0.93s
- WebPage Test – First View 4.963 down to 1.752s
Step 1 to improve site performance – get a fast host.
You don’t have to step all the way up to expensive VPS hosting, or managed WordPress hosting. (In fact, I strongly suggest you do your homework before considering either of these options to see if they really are the best ones for you and your site. Frankly, they are far too expensive for most site owners not to properly vet.)
These tests were run on shared hosting, which I know most of you use.
Getting SSD on A2 Hosting is all of $2.49/mo more than standard drives and it’s 300% faster. ‘nough said.
Ready to go? Here’s a handy A2 Migration Guide and it includes how to get the biggest discount and a prorated refund from your current host.
More Test Results
Here are the rest of the base test results for the Home page after moving to A2 Hosting. All of the other pages were much the same. You can see all details for all tests and all pages, along with screenshots, in the full report.
Pingdom returned these test scores.
- Performance grade 64/100
- Requests 12
- Load Time 716ms (on standard host drives, it will be at least twice that)
- Page size 388.6kB
The biggest culprit was loading the CSS file.
- Page Speed Grade 72%
- YSlow Grade 86%
- Load time.93s (or 930ms).
Again, the CSS file was a big issue.
WebPageTest rated the Home page:
- Score 66/100
- First View load time 1.752s (or 1752ms)
- Repeat View of .670s (or 670ms)
Google PageSpeed Insights returned a Mobile score of 67/100 and a Desktop score of 78/100.
All of the testing sites provided copious amounts of suggestions for improvement. Chief among them was to get help with the CSS file of the theme.
It’s Not All About Speed
When I added actual content to simulate a real post, the overall scores got better on most of the testing sites. Comparing the Hello World post to the one I created with an image and 500 words of content, the overall performance grade went up slightly, even though the requests, load time, and page size all naturally increased.
But, First Byte Time was what changed the most. It went down. And the site got a big red F in WebPageTest for image optimization.
What a Premium Theme Can Do
Next, I installed the Genesis framework, and what a difference that clean code made!
Pingdom now returned these results for the Home page:
- The performance grade shot up 20 points, from 64/100 to 84/100.
- Requests to the host server were cut in half, from 12 down to 6.
- Load time was significantly reduced from 813ms to 534ms.
- Page size was cut to less than half, from 394.5kB to 151.9kB.
Okay, I can hear you say that the Genesis home page out of the box doesn’t have as much on it as the Twenty Fourteen theme. Right! And let that be a lesson to you about design. Your site design choices significantly impact your site performance. Flashy is super to look at, but only if folks don’t abandon your site before it loads.
Let’s get even more apples to apples tests going and compare the 500 word post with image on both themes.
- The overall Performance Grade remained the same at 76/100.
- Requests with Genesis were slashed from 17 to 7.
- Load time with Genesis was nearly cut in half from 953ms to 555ms.
- Page size with Genesis was cut by one third from 549.7kB to 154.5kB. And that’s with an image that wasn’t even fully optimized!
Remember those CSS file hits I mentioned in the first tests? Now you can clearly see the difference in optimized code between a free theme and a premium theme.
Step 2 to improve your site performance – invest in a premium theme.
Clean code matters. And Genesis has it. So do the child themes that run on it. StudioPress is the in-house child theme development arm of Genesis (aff link).
On top of that, WordPress 3.6 and higher is HTML5 compliant. If your theme isn’t also HTML5 compliant, you’re missing a huge SEO boost. (Read more here.) Genesis 2.0 is HTML5 compliant, as are most of the child themes from StudioPress (and those that aren’t yet can be converted.)
Speed Equals Money
How far your host server is from the person requesting the file also factors significantly into site performance. Stock traders who have computer hookups closer to Wall Street have an edge over every other trader. Their trade requests get to the floor sooner. A few nanoseconds makes billions of dollars of difference. No kidding.
Okay, so you don’t need to worry about nanoseconds. But just one second can mean the difference between someone seeing your site or abandoning before the page finishes loading.
So far I’ve shown you loading speeds of less than a second with a handful of requests. Real sites full of content are going to be more like 2-3 seconds with 40-60 requests. It adds up fast.
Low bandwidth on mobile just makes it all worse.
When your site loads slower than 3 seconds, count on having less traffic and more abandonment. (Here’s a sweet infographic from Kissmetrics with the data.)
Get in the Cloud
Unlike setting up shop across the street from the stock trading floor, you can’t move your host servers to every place your visitors are.
But you can mirror those files all over the globe.
Mirrored sites get your files closer to your viewers, and that means faster load times and a better experience for everyone.
I connected the test site to a CDN (Content Delivery Network), which mirrors the files all over the globe.
Here are the numbers.
Pingdom scores for the Home page.
- The performance grade went up 2 more points, from 84/100 to 86/100.
- Requests to the host server increased by 2 from 6 to 8.
- Load time was reduced again from 534ms to 454ms.
- Page size remained unchanged at 152.9kB.
So, we got what we came for; a decrease in load time.
But the real winner was the post with an image and content, which is more like the type of content we serve up in the real world.
Pingdom scores for the 500 word post.
- The performance grade jumped 10 points from 76/100 to 86/100.
- Load time was cut from 555ms to 454ms.
GTMetrix scores were significantly improved too. For the Home page:
- Page Speed Grade jumped from 83% to 94%.
- YSlow Grade increased from 94% to 96%
All other pages experienced similar improvement.
WebPageTest scores were equally impressive. For the Home page:
- Overall score jumped from 77/100 to 90/100.
- First Byte Time decreased from 1.346s to 1.191s.
That’s the kind of improvement that’s going to help your posts rank better with Google.
Step 3 to improve your site performance – get a CDN (Content Delivery Network).
I used the free version of CloudFlare. It also has a Pro, Business, and Enterprise level, all with more features.
MaxCDN is another service worth checking out.
The 3 Steps Again
Step 1 – get faster hosting (like A2 Hosting).
Step 2 – get a premium theme (like Genesis).
Step 3 – get a CDN (like CloudFlare.)
The Limits of this Test
There are three conditions on this test site that are artificial.
One, it has no active traffic. Two, it has no active bot attacks. Three, it has no active plugins.
All of these things eat system resources. And when your site hits those resource limits, it becomes slow and/or unavailable.
How to deal with that problem is what I’ll cover in the next post on this series.
More and Bigger Site Improvements
Get a 1400% performance improvement. (That’s not a typo.)
The improvements listed in this post are only the beginning.
Read this free case study I did on a site that already had all three things listed in this post. And then we improved site performance another whopping 1400%. And we’re still tweaking.