How to Speed up Your Website
What are the benefits of speeding up a website?
As a website owner, the impact of your website speed on traffic, conversions and revenue should not be underestimated; research conducted by Akamai found that 47% of people expect a web page to load in less than two seconds and that 40% of people will abandon a web page if it takes more than three seconds to load.
A 2010 study by Gomez, titled “Why Web Performance Matters: Is Your Site Driving Customers Away?”, that interviewed 1,500 consumers about how website performance impacts their shopping experience, revealed the following insights:
- An increase in website loading time from 2 to 10 seconds increased page abandonment rate by 38%.
- During peak traffic periods, more than 75% of consumers left for a competitor’s website instead of suffering a delay.
Many other studies have been published on the impact of website speed, and a study by Aberdeen Group found that a one second delay in site loading time resulted in a 7% decrease in conversions, an 11% decrease in page views and a 16% decrease in customer satisfaction. It’s also important to note that Google now uses website speed as a ranking factor.
In a nutshell, having a slow website will negatively impact the following:
- Traffic and page views
- Brand image and perception in the mind of your visitors
Since it’s my goal to make WebsiteSetup.org the premier resource for building successful websites, I’ve decided to prepare a guide on how to boost your website speed. Below are 21 ways to increase your website speed:
1. Remove Unnecessary Plugins and Add-ons
Unnecessary plugins and add-ons can reduce your website speed by A LOT, and it’s especially important to pay attention to them if you use blogging CMSs like WordPress or Drupal.
A good case study about the impact plugins can have on a website’s speed is this one by Mike in which he reveals how he was able to take his website speed from 4.23 seconds to 1.33 seconds; while analysing his website to see what was slowing things down, Mike realised that plugins contributed to a whopping 86% of his website load time.
It’s very important to note that it’s not just about the number of plugins you have installed on your website but about the quality as well; a website with 50 plugins can load much faster than a website with 10 plugins if the website with fewer plugins have crappy plugins; generally, you want to avoid plugins that load a lot of scripts and styles, plugins that perform lots of remote requests and plugins that add extra database queries to every page on your website.
Indeed, plugins help enhance your website’s functionality but it is also important to only use a plugin if you’re convinced that it is absolutely necessary.
If you’re a WordPress user, you might want to install the P3 (Plugin Performance Profiler);
This plugin will scan all of your WordPress plugins to find the bottlenecks, and it’ll give you a report so that you can see how each plugin affects your website performance.
2. Significantly Limit, or Remove, Social Sharing Buttons on Your Website
If you believe that you need to have 100 social sharing buttons on your website, think again; it’s hard to pinpoint research that establishes a massive boost in website traffic due to having social sharing buttons (if anything, too many social sharing buttons will confuse your readers), but research shows that a slow website does reduce traffic.
The solution to this is to either limit/remove social sharing buttons or to configure them to load asynchronously so that an outage of a particular social media site won’t slow down your website.
3. Load Analytics and Ad Networks Code Asynchronously
Analytics tracking codes and ad networks’ codes can also significantly impede your website speed, especially if the remote server is slow or down; you can easily prevent this problem by configuring all of your tracking codes to use asynchronous delivery; this way, a server outage or delay with your Ad network or analytics service won’t slow down your website.
4. Enable Expires Headers
There are several factors that influence how fast a website is, but the server response time contributes a great deal to site speed; the more requests are being made to your server, the slower it’ll take your website to load.
Expires Headers tell your visitor’s browser when to request certain files from your server vs. from their browser cache; if an Expires Headers is configured so that your visitor’s browser only request a file once in a month, and that file has been stored in their cache from a recent visit, then their browser won’t request that file again until a month is over. This is like a double-edged sword for boosting site speed because it limits the number of HTTP requests on your server and at the same time reduces the load on your server since the same file won’t be requested repeatedly.
If you want to implement Expires Headers on your website, this tutorial by GTmetrix shows you how to do just that.
5. Enable Caching
Caching ensures a much faster experience for your website users by storing a version of your website on their browser and serving them that version until your website is updated or until you instruct it to refresh the version of your website they are served.
Enabling caching for your website can boost its speed significantly, and research shows that enabling a full cache for a website can reduce the website loading time from 2.4 seconds to 0.9 seconds; now, that’s massive!
There are different ways to enable website caching depending on what platform you are using; for WordPress, you can install the following plugins:
If you want something more advanced, go ahead and buy WP Rocket (it’s probably the best!). For Drupal, you can follow this resource.
Here are more tutorials on how to enable caching for your website:
6. Use a Content Delivery Network (CDN)
Most sites are hosted on servers in the US, and while these websites will generally be faster for people in the US or people visiting with a US VPN, your website will be a slower for people from other parts of the world. A CDN solves this problem by distributing your website files across a network of servers in different locations of the world so that someone trying to visit from India will get served from a server in Asia instead of from a server in Europe. This will lead to significant increase in your website speed.
To determine how effective CDNs can be, Matthew Woodward conducted an experiment and found that using a CDN can increase website speed by up to 60%.
Here are some of the best CDN options for you:
7. Get a Better Web Host
If everything you’re doing to make your website faster isn’t working, or you’re only noticing little, insignificant difference in site speed from following best practices, perhaps it’s time to change your web host.
In an article for Smashing Magazine, Marcus Taylor revealed how the web host that was being used impacted the site speed of two of his clients; both clients have similar websites but a different hosting provider. One of the clients hosts on a reliable dedicated server while the other hosts on a cheap server, the result was a massive difference in site response time; the DNS response time of the client on the dedicated server was 7 milliseconds while the response time of the client on the cheap server was 250 milliseconds. No tweak or plugin can remedy such a difference!
Your web host is very important when it comes to your website speed, so choose something good from our hosting reviews here. Alternatively, you can use this article to do some due diligence.
8. Your Website Theme
Exactly how much of an impact does your website theme have on site speed? A lot! Julian Fernandes was able to take his website load time from 630ms to 172ms just by switching themes; this was the same site, with the same host, and nothing else was changed but the website theme and this resulted in a massive boost in site loading time.
Even the best server configuration won’t save your site if you use a crappy theme with bloated code; make sure you also consider performance when looking for a website theme, not just aesthetics.
9. Install Google PageSpeed on Your Server
The PageSpeed module is an open source server module from Google that automatically optimises your website speed; it makes modifications to your server and files, following web site performance best practices, without requiring you to do anything else.
If you’re tech savvy, you can install Google PageSpeed yourself. If you’re not tech savvy, you can ask your web host/developers to install it for you.
10. Optimise and Reduce Image Size
Un-optimized images can be very heavy, and as a result use a lot of server resources and take longer to load; if the average image size on your website is 1mb or 2mb+, you’ve got serious work to do. You can significantly reduce the size of your image while ensuring that its quality is not negatively impacted by making use of the following tools:
- WP Smush (for WordPress users)
- EWWW Image Optimizer (for WordPress users)
- Kraken (for everyone – Drupal and Joomla)
11. Enable Gzip Compression
You’ve probably tried compressing a file on your computer and you’ve seen what a massive reduction in size this can result in; a 60mb file can be compressed to just 5mb. Gzip compression works in the same way, but for websites; Gzip automatically compresses your website files into zipping files, drastically reducing the size of your files and increasing your site speed as a result.
In the Smashing Magazine article we referenced earlier, a site went from being 68KB to 13KB solely due to Gzip being enabled.
If you want to enable Gzip compression on your website, this guide by GTmetrix is a good place to start.
12. Regularly Optimise Your Database
This is an often ignored but very powerful way to boost your website speed; it is especially effective if you use WordPress or any CMS that rely heavily on database usage.
Some CMSs, and the plugins you install rely a lot on your database to save data; this increases data stored in your database as you use the CMS/plugin, making your website gradually slower. This especially applies to plugins that save logs, statistics and user data. It also applies if you use WordPress and enable post revisions, pingbacks and trackbacks.
You can make your website much faster by regularly cleaning up your database, a process that can be automated with the WP-Optimize plugin if you use WordPress, or manually (for other platforms) by following this tutorial.
14. Combine Your Background Images into Image Sprites
The more requests a user’s browser has to make to your server, the slower your website will be for that user; most website templates are made up of multiple background images, and this ends up creating several different requests whenever visitor tries to load the website. The solution to this is to combine those images into one so that a visitor’s browser only has to request one image when trying to load your website; this can be achieved with image Sprites.
By combining background images into image sprites, you’ll be able to reduce request overhead, the number of bytes your visitor’s browser downloads and delay caused by roundtrips made when your server is downloading other resources. This will lead to a much faster website.
15. Enable HTTP Keep-Alive
Usually, when a visitor’s web browser tries to request a file from your web server, it will grab each file individually; in other words, a connection closes when a file has been grabbed and then reopens to request a new file. This uses more processor, network and memory and eventually leads to a slower website if there’s a lot of load on your server. Enabling HTTP keep-alive ensures that all file requests to your server will be made via a single open connection, leading to a much faster website for your users by limiting the number of connections to your server.
You can enable keep-alive by copying and pasting the code below into your .htaccess file:
Header set Connection keep-alive
16. Fix All Broken Links on Your Website
17. Avoid Image Hotlinking
Image hotlinking, also known as “inline linking” is the act of linking to an image on another person’s website, instead of loading the image on your own server. On the surface, this seems like an act that will save you a lot of bandwidths, especially if you have a high-traffic site, but it can actually make your website really slow if the website that hosts the image you hotlink is experiencing a downtime or is slow.
Whether it is images inside your content or banner images for your ads, be sure to first host your images on your website before linking to them.
18. Limit the Number of External Requests
To ensure a fully functional website, you have to rely on files and resources from other websites; as a result, you have to embed videos, presentations and other multimedia files. While this isn’t necessarily bad, if it’s too much or if you’re requesting external files from slow web sites, it can have an impact on your site load time.
Try to limit the number of external requests your website will make; if possible, host as many files as you can on your server. For other files, only let your website request them from very reliable websites.
19. Use a Reliable CMS
Your CMS is the framework of your website; if you use simple HTML or popular and reliable CMSs like WordPress or Drupal you should be fine. If, however, you’re using a less popular CMS or something you built for yourself, you risk having a slow website; make sure you run appropriate tests and do the right research to ensure that a CMS is fast and reliable before using it.
20. Use a PHP Accelerator
PHP reduces the need to keep entering the same information on your website all the time but it can add to your website loading time. You can either try replacing PHP files with static HTML files when possible, or you can use a PHP accelerator to make your website much faster if it relies a lot on PHP.
This Wikipedia entry includes a list of several PHP accelerators you can use.
21. Prevent Others from Hotlinking Your Images
Just as it is important to avoid hotlinking other people’s images, you should also prevent others from hotlinking your own images.
When people hotlink your images, they are basically stealing your bandwidth since a request will be made to your server every time their readers tries to view the images on their website. You can prevent this by disabling hotlinking of images hosted on your server.
This article on Hongkiat will teach you how to prevent hotlinking of your images, and this tool will help you automatically generate a .htaccess file that prevents your images from being hot linked.
Your Turn – Test Your Website Speed
After implementing the above suggestions, you should go ahead and test your website speed to see if there’s a difference (leave a comment below if you see difference :). Here are my top recommendations for testing your website speed:
Pingdom Website Speed Test: With this tool, you should aim to get a reduced site load time as well as a reduced number server requests. This tool also compares your website speed to other websites online.
GTMetrix: This tool analyses your website speed using Google Pagespeed Insights and Yslow and gives you a rating from A to F. It also offers suggestions for improvement.
Webpage Analyser: This tool gives you information on your page size and website download time, and it offers suggestions on how to improve your site load time.
Google Pagespeed Insights: You should aim towards a score closer to 100. It also has a mobile speed test tool that you can use.
Yslow: This tool analyses your website speed based on Yahoo!’s rules for website performance.
WebPage Test: The closer your score is to 100, the faster your website is.