Have you ever visited a website and got tired and frustrated because the pages load so slowly? It’s frustrating to interact with a site which isn’t snappy! That’s why you MUST speed up WordPress if you don’t want your visitors to bounce – right to your competitor’s business (raking down your organic rankings with them!)

Because, not only is a slow website a frustrating experience, but an increased bounce rate will also drop your organic rankings like a stone. In fact, it’s been proven time and time again, website speed is a ranking factor – fast sites actually rank higher on Google and other search engines.

A fast website truly improves your visitor’s experience.

Funnily enough, a user will not notice that a website is fast, but they will definitely notice and probably go away (never to return) if your site is slow. Unfortunately, it’s not typically very easy to make your WordPress fast, usually, the steps are quite technical – particularly for those who are not into web development and design.

Fortunately, we’re here to help make sure that you speed up WordPress such that your web site loads up really really quickly. Here are 9 simple steps you can perform to make your WordPress fast. In fact, we’ve used these very steps to make most of our sites load in less than 1 second – this is one of the proven positive user experience benchmarks.

Tools for website performance

Tools for website performance



When optimizing a website to load faster and specifically to speed up WordPress, there are three fundamental things you need to work on:

  • Easing the load on your server
  • Reducing the overall size of your site and files (less content takes less time to download – especially over slower connections such as mobile data)
  • Reducing the number of resources your end user needs to download each time they visit your pages

Any performance optimization revolves around one of the above basic fundamentals, and though sometimes the way it’s done may differ, it always comes back to the basics!

Before you start: visit gtmetrix.com or tools.pingdom.com and test the speed of your site and the number of requests.

Our site went from loading in 4.5 seconds to loading in 0.55 seconds. Can you get an improvement like that using just the below optimizations? Let’s see.

Incidentally, if you were ever wondering about whether WordPress is the right tool for you, have you looked at our list of WordPress alternatives?

Make your WordPress fast

Speed up your WordPress site



1. Speed up your website by reducing the number of WordPress plugins

This is one of the key factors you need to take care of if you really want to speed up WordPress.

Simply put, each plugin you add to your installation introduces a performance overhead.

Keep your site clean of plugins, and only use those that are absolutely necessary. Think very carefully about this, if you can combine one plugin to perform several functions, so much the better. This reduces the overhead and makes your WP fast.

Things to consider:

  • Remove any plugins you tried but no longer use
  • Switch off or deactivate plugins which come with your theme which you are no longer using
  • If you can use one plugin which performs multiple functions, it’s better than having multiple plugins
  • Be ruthless in removing plugins and “functions” – a simpler site is better than one that is “fancy” but which loads slowly
  • Remove such stuff as sliders, videos, or other heavy resource plugins
  • Less is more. Be aggressive on the culling of plugins which you use sparsely
  • Get a developer to review and tweak your theme with scripts where necessary to replace “simple” plugins which just add scripts.



2. Install a caching plugin

Ok, so maybe this is a counter recommendation to the previous one, but the intention and overall benefit of this plugin makes this one a need rather than an overhead (so this is is a plugin which we can afford to have).

In essence, you speed up a WordPress site and make it fast, by ensuring you have a lighter load on the hosting server – and the load can be eased by reading contents from a cache.

But what the heck is a cache?

In simple words, what the cache does is make sure that rather than loading the content of the website from the database each time (because this is a heavy operation in terms of performance and load on the server), it saves a temporary copy of each page to disk and use this for some time (because this operation is much lighter in terms of performance).

The following diagram is a great explanation of how caching works. Just keep in mind that reading a cached copy from a disk is much much faster than executing and rendering the page from the database.

Speed up WordPress with caching

This eases the load on the server significantly making WordPress blazingly fast!

One also needs to know that a caching plugin such as WP Rocket – which is a premium solution for speeding up WordPress, does tens of other optimizations besides create a cached copy of each page of your site.

Some of the features of WP Rocket:

  • Page caching (which we have just described)
  • GZip Compression (zips the content to decreases the size we need to transfer between the server and the visitor)
  • Browser caching (reuses local files downloaded on previous visits)
  • Database optimization (implements performance tweaks on your host)
  • Lazy loading (only loads heavy resources such as images when they are required)
  • DNS prefetching (runs DNS queries as soon as a page to starts to load, to reduce the time it takes to return those queries)
  • plenty more

Now, WP Rocket costs $39, but given the sheer number of optimizations, spending $39 is a no-brainer, given that amount of time you’re going to save, besides the massive improvements in speed.

Click here to visit WP Rocket



3. Enable a Content Delivery Network

A CDN’s basic premise is to serve web content to end-users with very high performance.

Essentially, a CDN will reduce the load on your site, and serve content such as images and other static files very quickly from a location that is physically closer to your end user (hence it will take less time to load). Ultimately, this makes your WordPress fast(er) than if it were hosted by your server alone.

Have a look at the below. The original server is your website’s hosting server. The Edge server is the CDN server. Essentially, when a visitor comes to your website, the images and other resources are served from edge servers which are physically closer than your original server.

This significantly speeds up WordPress page load times.

CDN Network diagram

Cloudflare offer a free plan which gives your website an instant boost of speed, and involves very little configuration, specifically if your hosting server supports Cloudflare.

Integration with a CDN such as Cloudflare will make your WordPress fast

Integration with a CDN such as Cloudflare will instantly speed up WP



4. Combine and minify CSS and JS files

One of the things which makes your website slow is the fact that there are many CSS and JS files. When a user visits your site, each of these files need to be downloaded individually and each of this constitutes a “Request”. In general, you want to keep the number of requests as low as possible – because each request introduces a performance penalty. A minification plugin, will do several things to improve performance

  • Combine multiple CSS files into a single file thus reducing the number of requests
  • Combine multiple JS files into a single file thus further reducing the number of requests
  • Reduces the size of the resultant (combined) files so that any extra unnecessary content is removed (and thus not downloaded)

P.S. Should you install another plugin and go against Step 1? Nope – if you enable WP Rocket which we mentioned in step 2, one of the features it performs is the Minification and combination of files.

Essentially, if you’ve already installed WP Rocket, this step has already been performed.

Mininfication / combination of CSS / JS files



5. Enable GZIP compression

Just like zipping a file reduces the size that file occupies on disk, zipping the content of your site will reduce it’s overall size, making it quicker to transfer.

Textual content in particular, such as CSS / JS and HTML is highly compressible, thus enabling GZIP compression reduces the size to be transferred by a significant amount

You can do this via a switch on your hosting server many times or via .htaccess

Once again, if you’ve installed the WP Rocket plugin discussed above, this setting has already been enabled for your website, because it is one of the built-in features which helps to speed up WP.

# compress text, html, javascript, css, xml:

  • AddOutputFilterByType DEFLATE text/plain
  • AddOutputFilterByType DEFLATE text/html
  • AddOutputFilterByType DEFLATE text/xml
  • AddOutputFilterByType DEFLATE text/css
  • AddOutputFilterByType DEFLATE application/xml
  • AddOutputFilterByType DEFLATE application/xhtml+xml
  • AddOutputFilterByType DEFLATE application/rss+xml
  • AddOutputFilterByType DEFLATE application/javascript
  • AddOutputFilterByType DEFLATE application/x-javascript
  • AddType x-font/otf .otf ddType x-font/ttf .ttf
  • AddType x-font/eot .eot AddType x-font/woff .woff
  • AddType image/x-icon .ico AddType image/png .png

 

GZipping the contents of your site will reduce the site of the whole site - making  Wordpress fast

GZipping the contents of your site will reduce the size of the whole site – making  WordPress fast



6. Reduce/Optimize the size of your images

Images which have not been optimized can increase the overall size of your website by a significant amount and detract from the efforts to make your WordPress fast.

When images are created, many times they are not optimized for the web – typically the size of the file is larger than it really needs to be. Tools such as  Smush it from WPMUDEV (or other similar services) can reduce the size of your images to an optimal size, without sacrificing the quality of the image.

The great thing about this service is that it is done automatically, each time you upload a new image on your site. So even if you forgot to save the image in an optimized way, Smush it, will “smush” this image, making is as small as possible.

The overall effect of this service is that the total size of each page on your site becomes much smaller, speeding up your website significantly.

Another nice feature of this plugin is the Bulk Smushing. Essentially, if you’ve already got a lot of media files and images which need to be optimized, you can run a task which goes through the images one by one, optimizing them. Best of all, this task is run with low priority, so you won’t kill the performance of your site as this process is running.

Optimize image size



7. Add ‘Expires Headers’

This ensures we keep the resources we have to download to a minimum, it’s a good idea to instruct the browser to reuse certain files that do not change often.

Technically, this is called browser caching and is typically shown on speed testing sites as leverage browser caching – CollectiveRay has an excellent article about how to enable this in multiple ways, using either a WordPress plugin or just using particular configurations in the .htaccess file in your site.

So for example, CSS and JS files and many of the images that are used to create the look and feel of your site rarely change. Even if the content changes (they might change frequently during the design and development of your website – but that’s it). The Expires Headers instructs the browser to reuse files which they have downloaded already, to ensure they are not downloaded again. This is done by “marking” these files as having a

So for example, CSS and JS files and many of the images that are used to create the look and feel of your site rarely change. Even if the content changes (they might change frequently during the design and development of your website – but that’s it). The Expires Headers instructs the browser to reuse files which they have downloaded already, to ensure they are not downloaded again. This is done by “marking” these files as having a

The Expires Headers instructs the browser to reuse files which they have downloaded already, to ensure they are not downloaded again. This is done by “marking” these files as having a long time-to-live (TTL) before they expire (and need to be downloaded again). It is recommended that the Expires Headers

It is recommended that the Expires Headers of at least 1 week and up to a year. This ensures that if the user browses the site, or visits other pages again in the period when the files have not expired, the previously downloaded copy of these files will be used. Reusing all of these resources ensures new and repeat visitors experience a fast WordPress site 😉

Setting expires headers of specific files types via .htaccess ( for 1 month)

<FilesMatch “.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$”>Header set Cache-Control “max-age=2592000, public”</FilesMatch>

If you want a different expiration time use the following values:

1 day = 86400

1 week = 604800

1 month = 2592000

1 year = 31536000

It is to be noted that this is also handled by the WP Rocket plugin which we mentioned before.



8. Reduce external scripts

External scripts can be the downfall of your website’s performance and eliminate all the efforts to make your WordPress fast. They may be necessary to enable certain functions on your website such as social sharing, advertisements, analytics or other useful functions.

Do note, however, that external scripts typically introduce a severe performance penalty. Think really well about which external scripts are absolutely necessary for your website and get rid of everything else. Remember that you have absolutely no control

Think really well about which external scripts are absolutely necessary for your website and get rid of everything else.

Remember that you have absolutely no control on the speed or size of these scripts – so after all the effort you did to make your website lighting fast, you don’t want an external script to undo all your savings. The less external scripts the better. Just like for plugins, keep your site clean of external scripts you include.

3rd party scripts which people typically include

  • Facebook or other Social networking sharing scripts and buttons
  • 3rd party fonts
  • Google Analytics
  • Optimization tools such as Hotjar
  • Sumo and other list-building plugins
  • Chat plugins
  • AdSense or other advertising scripts

If you look at the result of any of the testing tools, any URL which is not the domain of your site is essentially a script which is coming from a 3rd party source and is adding overhead to your site.

Look at each of these carefully and evaluate whether you really need these. Kill of any which aren’t critical to your site.

You can do most of the above steps to make your WordPress fast by performing one very simple step – installing WP Rocket. This plugin performs many of the above optimizations to make WordPress fast, and more, including:

  • Performing multiple levels of caching to ease the load on the server
  • Integrating your site with a CDN to improve its speed overall by serving static resources from a server close to your user
  • Performing minification of JS and CSS files to decrease the size of the website
  • Combining JS and CSS files to reduce the number of different resources a user needs to download
  • Enabling GZIP compression to make the total content to download smaller
  • Adding Expires headers to make sure files which are already downloaded are reused and not downloaded again



9. Upgrade to a VPS / Premium hosting

One of the biggest reasons why websites are slow is also one of the most common: most people opt for a cheap shared hosting plan to host their website.

The problem is this with shared hosting. The cost of the server hardware and resources needs to be split between hundreds of clients – this means, that the same server is being used to serve hundreds / even thousands of users together.

Obviously, each server has only so many resources, so your website’s users are “queued up”. The cheaper the hosting plan, the longer the “queue”.

It is typical for shared hosting plans to introduce a “performance hit” of 2 or more seconds.

This is a HUGE problem – your website can never be fast if each of your users has to wait in a queue.

This is NOT an exaggeration. If you see the following warning, “Improve server response rate”, it means that your server has a significant overhead when trying to serve users.

If you see an initial graph (such as the below) with more than 200ms, your server has a slow response rate.

GTMetrix Waterfall graph

How do you fix this?

You need to make sure your website is hosted on a plan which is NOT a shared hosting plan. For most sites, this means upgrading to a plan which involved a VPS or Virtual Private Server.

A VPS plan is like buying a “slice” of a dedicated server. It is still “shared” between a number of other clients, but with a VPS you have dedicated resources (CPU and RAM) which are dedicated exclusively to your site.

VPS vs Shared hosting

If we have to make a recommendation, we would suggest that you opt for a WPEngine – this is a service which is focused 100% on providing websites which are lightning fast. They have invested heavily in creating a server infrastructure dedicated to speeding up WordPress sites hosted on their service.

Is this cheap? Heck no – it isn’t. But really, why should you be thinking “cheap” when your website is generating money for your business. Cheap is actually losing you money in the form of visitors.

If you had to spend money on one thing – we would suggest you invest in a good website host.

As WPEngine partners, we have gotten our visitors a 20% OFF on the plans at WPEngine.

Click here for the lowest price on WPEngine

So there is it is, you should now have a significantly faster website. What’s your new improvement if you test again with gtmetrix.com? What other steps do you suggest to speed up WordPress and make it faster?

 

Our site is loading in 0.55 seconds. Can you beat our score?

Do you like this blog – we’ll post great stuff every so often – Want to join us?