Pretty much everywhere you look these days, someone seems to be talking about the importance of having a website that’s fast. It makes perfect sense, right?
Nobody likes the idea of presenting a poor user experience or seeing their position in the SERPs slip because Google has inadvertently decided that your website is too slow.
The talk about speed is so pervasive that at times you might find yourself feeling like fast is never fast enough. That maybe you've been outdone in the search results simply because the site ahead of you can afford better hosting or has a full-time developer on staff.
While we all know that speed is now a ranking factor for Google, the industry has led most of us to believe that faster is always better. But is it really?
If you listen to what he says about website speed, it sounds nothing like “faster is better and results in improved SERP placement”. What Matt Cutts did say is this:
“All things being equal, if your site is really, really slow, we’ve said that we do use page speed in our rankings. And so all of the things being equal, yes, a site can rank lower. Look at your neighborhood of websites; look at the site that are returned along with you. And then if you’re the outlier, if you’re at the very bottom end because your site is really slow, then yes, it might be the case that your site will rank lower because of its page speed.”
Keeping those comments in mind, it’s clear that the best thing you can do is focus on making changes that improve your user experience. Focus on the speed changes that make things better for your visitors and quit worrying so much about Google.
The great news when it comes to speeding up your WordPress website is that you have plenty of options. Even making one or two small changes can have a potentially dramatic impact.
To help you sort through the maze of WordPress speed improvements, we’ve put together a list that can help you target potential problem areas.
Measuring Website Speed
Before we jump into the process of actually speeding up your website, it’s a good idea to understand how you can measure speed and even load-test your site if necessary.
With WordPress speed being an industry in itself, there are plenty of options when it comes to both measuring and optimizing for speed. To kick things off, we’re going to cover a few of the more common tools that you can use to get an idea of how fast (or slow) your website really is as well as what might be causing those results. One thing I’d recommend is testing your site using more than one tool and at various times of the day. The average of several results is more reliable than just running a single test.
Google PageSpeed Insights
PageSpeed Insights is the first place you should look when assessing your overall page speed. Although Google’s tool doesn’t return as much information as some of the other options in our list, it’s their general opinion we’re looking for.
Since we’re optimizing speed for user experience first and rankings second, we may as well know where we stand in Google’s eyes. A few of the elements that PageSpeed Insights will assess include:
- Is the server response time reasonable?
- The potential for image optimization
- Are you utilizing browser caching?
- Are there any redirects present?
- Is GZIP compression enabled?
Depending how many fixes Google recommends and how short of time you are, an easy solution to optimize your WordPress site for PageSpeed insights is to visit UpWork and perform a search for Freelancers who specialize in WordPress optimization and Google PageSpeed Insights.
GTMetrix is another popular website speed testing tool that offers both a free version as well as plans that start at $14.95/month. GTmetrix test results provide you with a Google PageSpeed score, a YSlow score and a waterfall report.
Pay close attention to your waterfall report as it’s your best indicator of any bottlenecks that might be present while you're website is being rendered in your visitor's browser.
Pingdom is yet another tool you can use to assess your website speed. Pingdom returns information that is very similar to GTMetrix with a few exceptions. First, it does not provide a YSlow score. Second, Pingdom offers the ability to test your website from 4 locations across 3 continents even in their free plan.
Keep in mind you’ll notice discrepancies between your Pingdom and GTMetrix scores, even when the tests are run concurrently. For this reason, it’s a good idea to rely on multiple tools and to vary the timing of your tests. Pingdom also offers ongoing monitoring of site speed and uptime via their paid plans that start at $14.95/month.
Perform Load Testing
When you’ve got just a handful of visitors on your website, maintaining speed is not a big issue. However, if your site is being tweeted by an influencer or on the front page of Reddit, you’ll quickly appreciate the value of load testing. That is: roughly how many concurrent users can your server/hosting account handle before website performance is negatively affected or your site crashes.
One of the more popular tools that offer free load testing (although only 25 virtual users) is Load Impact. Be aware that 25 concurrent virtual users (VUs) are a drop in the hat. If you’re a little more serious, Load Impact also offers a variety of one-month plans available which are capable of testing site performance for up to 100k VUs. Another option is Load Storm which has one-time plans that range from 5k-500k VUs.
The chart above presents a great example of why it's important to run your tests more than once and at varying times of the day —running a single speed or load test is not an adequate sample size. I ran the above test multiple times and came up with different results for each test. In the end, you have to consider the big picture.
7 Things You Can Do to Speed Up Your WordPress Website
To keep things simple, we’re going to run through a broad list of ideas you can implement in order to speed up your WordPress website.
The first item on our list will discuss the importance of web hosting. It's a critical piece of the “speed puzzle” that can't be overlooked.
Items number two through five will cover what we can consider “basic housekeeping” — essentially maintaining a neat and tidy WordPress installation.
The final two items we cover include caching and using a content delivery network (CDN). Both of which have the potential to provide a noticeable performance boost.
A word of caution before you get started: Not every action on our list will provide the same return on invested time or money. For this reason, we recommend that you spend some time using the tools described above in order to understand exactly where your bottlenecks are occurring.
For example, if you run various speed tests and discover that there is a consistently slow server response time, you’ll have a great idea of where to start. If you see slow loading times for specific images then you know that some optimization is in order. As you make small changes, be sure to retest and record the results you achieve.
Let's get started!
1. Select a Decent Hosting Company
Selecting a web host is an important decision. It's not an area where you should consider cutting corners for the sake of saving a few dollars. When building or launching a website, I consider hosting to be an integral part of your website's foundation.
Like any physical structure, if you build upon a weak foundation, you're almost guaranteed to experience ongoing problems down the road.
By selecting a high-quality and reputable hosting company, you'll have a foundation in place that is capable of supporting future growth while minimizing potential problems (such as slowness, downtime and security issues).
The good news is that there is plenty of competition in the hosting industry and that translates to no shortage of options. Hosting is, by and large, broken down into three categories although there’s some overlap between features depending on the company.
If you are in the market for shared hosting you’ll find more companies here than in the other categories. Shared hosting is typically where you find the worst performing servers and sometimes the least favorable customer service.
The largest drawback to shared hosting is the fact that your website will be hosted on a server that contains potentially thousands of other hosting accounts and websites. Unfortunately, in a shared hosting environment, the actions of one website owner can potentially affect other websites hosted on the same server.
Typically, shared hosting might be OK to use in the event that you receive very little traffic to your website and you really aren’t that concerned about speed.
That said, there are some decent shared hosting companies like SiteGround who have optimized their servers for WordPress and offer some feature overlap with managed hosting.
Another example would be a company like HostGator WordPress Cloud Hosting which although inexpensive, has consistently demonstrated decent speed test results. The caveat being, if your website is high-traffic or mission-critical, shared hosting isn’t where you want to be.
Managed hosting represents a significant step up from shared hosting usually in terms of speed, customer service and usually scalability as well. While managed hosting typically comes in at a higher price point, you can usually count on the following additional speed-enhancing features:
- Fewer websites on each server which takes up fewer resources.
- Better server resources such as SSD, faster processors and more RAM.
- WordPress optimized servers with single or multiple layers of caching.
- Content Delivery Networks are either included or available as an option.
- Sometimes you’ll have the ability to select a geographical server location as well.
A few examples of managed WordPress hosting would include WP Engine and Flywheel both of which offer affordable starter plans. A little farther up the food chain are companies like Pagely and Kinsta (who we here at aThemes host with).
VPS or Dedicated Servers
Although not necessarily faster than managed hosting, both VPS and dedicated servers will provide you with more control. In the case of dedicated hosting, you won’t need to worry about other sites residing on your servers. 100% of the server resources are yours to use and control as you see fit. VPS is similar but there will be more than one VPS account on a server.
The one issue to look out for with dedicated and virtual private servers is that you want a managed service. If they are self-managed, make sure you either have the experience required to act as a server administrator or have an employee who is.
2. Minimize the Use of Plugins
Not because more plugins necessarily translate to a slower website but because more plugins increase your odds of using one that is poorly coded. Plugins that load multiple scripts, frequently query your database or rely on API’s are a common cause of sluggish websites. WP Engine has a great article on WordPress plugins that you can check out.
You can also use a simple plugin to test your site called P3 Plugin Performance Profiler. It’ll help you to identify any problem areas.
3. Keep Your WordPress Database Clean and Organized
Have you ever rummaged through a drawer of loose socks looking for a pair? Have you ever noticed how much easier it is to find a pair of socks when they are together and the drawer is well organized?
Your WordPress website is similar to your sock drawer when it comes to organization (no really, it is.). Delete pages and posts that are no longer needed. Then, make sure you delete excessive revisions that were automatically generated by WordPress. You can do this manually in MySQL using a query but it’s easier to rely on a plugin like WP-Optimize. Using a plugin will also help to clean up table overhead, optimize your database tables and keep your spam comments from overflowing.
4. Minify Files Wherever Possible
Whenever possible, make sure your CSS and JS files are minimized. Minimizing is essentially the process of removing all extra characters (including spaces and blank lines) in an effort to minimize the size of individual files. Lines and spaces are added to make things more readable but many are unnecessary.
Technically, you could minimize your files by hand but seriously, who has time for that? For more experienced individuals there are plenty of online tools such as CSS Minifier and Closure Compiler for JS.
On the topic of minimizing: Sometimes it a better option to consider reducing the number of files altogether. This is quite common with CSS files because users frequently add CSS customizations in a variety of locations. You might have a custom CSS file for your theme, another in JetPack and yet another for a home page slider. An extra file here or there is not a big issue but be wary of the total number of files and individual HTTP requests being created — they tend to add up quickly.
5. Optimize Your Images
Image optimization has become a very simple process thanks to a wide variety of great image optimization plugins designed specifically for WordPress.
We won’t go into to much detail on this topic because we recently published an in-depth article on the best image optimization plugins. Needless to say, you shouldn’t be uploading full-size images directly from your phone or DSLR unless you’ve optimized them using PhotoShop, another program or if you have an image optimization plugin such as EWWW, Imagify or ShortPixel installed in WordPress.
6. Use a Caching Plugin
The idea of caching, especially for new WordPress users can seem confusing. But it’s actually a simple concept once you understand how a visitor to your website interacts with the server on which your website is hosted.
Each time someone visits a page or clicks on an internal link, WordPress turns to your database and asks for the required information. All of your pages, posts, content, images and graphics are stored in a database. WordPress simply requests the required information and then delivers it to the end user's browser in a format that we recognize.
If 50 different users visit your landing page over the course of one hour, WordPress will request the necessary information from your database 50 times. Not very efficient, right?
Caching is simply a way of “recycling” the same information that was recently requested. So for example, your landing page becomes cached (temporarily stored) in memory or on the disk. When the next user comes along and asks to see the same landing page, your cache steps in and says:
“Hey, I’ve got a copy of that right here for you to look at. No need to ask the database.”
Caching can be used by browsers (called client-side caching) and at the server level as well (called server-side caching). We could also get into the different ways of caching such as memcache (storing cache in memory) vs storing cache on a physical disk drive but it gets to the point where you’re splitting hairs.
Whichever method you use, caching is always better that no caching and virtually guarantees a significant speed boost.
Many managed WordPress hosts (and a few shared) have built-in caching. If not, we recently published an article that covered nine of the best WordPress caching plugins — all of which are more than capable of providing your website with a performance boost.
7. Utilize a Content Delivery Network
In many ways, CDNs appear to perform the same functions as caching. However, although CDNs often rely on caching, they take the whole process one step further.
The primary difference between caching and CDNs is that CDNs actually change the physical location of the stored information. For example, if your website is hosted in the United States and a visitor from Australia arrives on your website, the information must travel half-way around the world. Granted this happens very quickly but there are still plenty of opportunities for the data to be delayed or interrupted.
CDNs resolve this issue by storing a copy of your website on various servers in different geographical locations. Even though your website is hosted in the USA, your visitor from Australia will be served a temporary version of your website from their server in Australia. If you update or change your website, the CDN will also update their copy.
Managed Hosting companies often implement CDNs automatically or at least make them available for a small extra charge. Shared hosting (such as HostGator) will provide access to basic CDN functionality but you’ll have to pay for a higher level of service. Alternatively, you can use your own CDN such as KeyCDN (which we use here on aThemes), StackPath, CloudFlare or CDN77.
Like caching CDNs will provide a noticeable performance boost plus they have a multitude of security benefits as well.
Approach Your Website Speed With a Strategy
We’ve covered a lot of different topics related to improving the speed of your WordPress site. Several of the items discussed would easily qualify for a post of their own. But in many cases, that’s making the process more complicated than it needs to be.
Nobody can debate the fact that a reasonably fast site is important. Between Google and your visitors, there are some pretty high underlying expectations.
The good news is that almost any action you take is better than no action at all. However, that doesn’t mean you should start making random or haphazard changes.
Instead, spend some time testing your site — including trying different services and testing at a variety of times. Once you’ve pinpointed the areas which demonstrate the greatest opportunity for improvement, you can get started on the actions that will provide the highest return on invested time and dollars.
If you’ve spent time optimizing your WordPress website for speed, we’d love to hear about your experiences in the comments below.