How to speed up your WordPress website

Those with little knowledge of WordPress often believe WordPress sites to general be slow. Of course a CMS with such a large user base will have good and bad sites. One of the biggest reasons for slow WordPress sites is they are often hosted on low cost shared servers offering a poor hosting performance. The other major cause of slow performing WordPress sites is that they have far too many plugins installed by site administrators with little WordPress and or web development skills. The massive range of free plugins is of course a major benefit but it can also cripple your site speed and leave it vulnerable to hackers and crashes.

So to help you avoid some of the common pitfalls, here are our top tips for a fast WordPress installation.

1. Choose the right theme

If you’re not investing in a custom WordPress theme then you need to choose your theme wisely. The default wp theme is, as you would expect, well made but of course is not going to look unique unless you do a lot of customisation work. I’d therefore recommend choosing a highly rated premium theme as you can expect a significant amount of work has gone into making it. Look to see when the theme was last updated and read the recent reviews. You don’t want to by a popular theme that hasn’t been updated in a couple of years; the web moves so fast that it could be out of date in it looks, performance and from a security perspective.

2. Go easy with the plugins

If you’re not a web developer it’s tempting to just keep installing more plugins to customise your site or fix some issue you have. As well as slowing your site down, a lot of plugins can lead to other issues:

  • increased risk of being hacked
  • keeping all plugins up to date can be a time consuming task (if done carefully and often)
  • the more plugins you have the great the risk of something not working or conflicting with another plugin, so you might find you need to call for help when a problem arises.

To reduce your risk I recommend you pick highly rated plugins, try and limit yourself to no more than 10 and delete any un-used plugins, (not just de activate them). I’d also suggest you think if you really need the plugin you are installing and whether a bit of time from a developer would solve the issue for you without the need for a plugin. For a site on a good web host and with no particular functionality requirements like e-commerce or event management for example, the only plugins you should need are an SEO plugin, a security plugin and a contact form plugin.

3. BW Minify plugin

If you do find you need around 10 plugins it maybe work installing just one more to optimise the plugins you have. Most plugins add calls to extra scripts or CSS files in the header of the web page and before your page appears in front of your visitor the web browser has to fetch all these files. The minify plugin will pull all the extra files your plugins need into one file so your visitors are only waiting for one resource to be requested and loaded before the page renders on screen.

4. Set expire headers

These are often not set by default by your web host so it’s something you need to take action on. Caching is the process of saving resources for later and using these saved resources rather than downloaded them each time from the web server. Expire headers tell web browsers how long to cache certain resources like images, css, js, video formats etc and with these set, your visitors will not need to down the same resources everything they visit your site even if they rarely or never change. To set expire headers you need to add something like the following into the top of your .htaccess file.

<IfModule mod_expires.c>
 ExpiresActive on

 # Default.
 ExpiresDefault "access plus 1 month"

 # Your document html
 ExpiresByType text/html "access plus 0 seconds"

 # Data
 ExpiresByType text/xml "access plus 0 seconds"
 ExpiresByType application/xml "access plus 0 seconds"
 ExpiresByType application/json "access plus 0 seconds"

 # RSS feed
 ExpiresByType application/rss+xml "access plus 1 hour"

 # Favicon (cannot be renamed)
 ExpiresByType image/x-icon "access plus 1 year"

 # Media: images, video, audio
 ExpiresByType image/gif "access plus 1 month"
 ExpiresByType image/png "access plus 1 month"
 ExpiresByType image/jpg "access plus 1 month"
 ExpiresByType image/jpeg "access plus 1 month"
 ExpiresByType video/ogg "access plus 1 month"
 ExpiresByType audio/ogg "access plus 1 month"
 ExpiresByType video/mp4 "access plus 1 month"
 ExpiresByType video/webm "access plus 1 month"

 # HTC files (css3pie)
 ExpiresByType text/x-component "access plus 1 month"

 # Webfonts
 ExpiresByType font/truetype "access plus 1 month"
 ExpiresByType font/opentype "access plus 1 month"
 ExpiresByType application/x-font-woff "access plus 1 month"
 ExpiresByType image/svg+xml "access plus 1 month"
 ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
 
 # CSS and JavaScript
 ExpiresByType text/css "access plus 1 month"
 ExpiresByType application/javascript "access plus 1 month"
 ExpiresByType text/javascript "access plus 1 month"

 <IfModule mod_headers.c>
 Header append Cache-Control "public"
 </IfModule>

</IfModule>

5. Set gzip headers

Gzip compression is the web server sending compressed, up to 30% smaller files to the web browser which then decompresses the file or use. Smaller files are of course quicker to load, but you need to add gzip headers to your .htaccess file in order to take advantage of this. Depending on your web server set up you may need to activate Gzip with either mod_deflate or mod_gzip. The former has the widest browser support and is recommended but you may want to check with your server support before adding the necessary code to your .htaccess file.

<IfModule mod_deflate.c> 
 AddOutputFilterByType DEFLATE text/html 
 AddOutputFilterByType DEFLATE text/css 
 AddOutputFilterByType DEFLATE text/javascript 
 AddOutputFilterByType DEFLATE text/xml 
 AddOutputFilterByType DEFLATE text/plain 
 AddOutputFilterByType DEFLATE image/x-icon 
 AddOutputFilterByType DEFLATE image/svg+xml 
 AddOutputFilterByType DEFLATE application/rss+xml 
 AddOutputFilterByType DEFLATE application/javascript 
 AddOutputFilterByType DEFLATE application/x-javascript 
 AddOutputFilterByType DEFLATE application/xml 
 AddOutputFilterByType DEFLATE application/xhtml+xml 
 AddOutputFilterByType DEFLATE application/x-font 
 AddOutputFilterByType DEFLATE application/x-font-truetype 
 AddOutputFilterByType DEFLATE application/x-font-ttf 
 AddOutputFilterByType DEFLATE application/x-font-otf 
 AddOutputFilterByType DEFLATE application/x-font-opentype 
 AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
 AddOutputFilterByType DEFLATE font/ttf 
 AddOutputFilterByType DEFLATE font/otf 
 AddOutputFilterByType DEFLATE font/opentype 
 # For Olders Browsers Which Can't Handle Compression 
 BrowserMatch ^Mozilla/4 gzip-only-text/html 
 BrowserMatch ^Mozilla/4\.0[678] no-gzip 
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

6. Optimise your images

An obvious cause of slow loading web pages is large images. Most phones these days take large images much too big to use on a web page without being resized. This process of resizing is often difficult for most WordPress web site owners. The first challenge is knowing what size you need an image to be and the next is how to resize it. WordPress does a lot to help you out with images, when you upload an image it automatically creates a number of different sizes (these can be configured if you need other sizes). It also gives you image editing tools to crop and resize images in the Media area. These tools are pretty good but they are not that easy to use even for the experienced. We refer you to our post on How to producing optimised images for WordPress.

7. Choose a good WordPress web host

You can all the above but if you’re on a shared server with lots of other sites you can be fighting a loosing battle. If after completing the above points and performance is still poor it’s time you re-evaluated your hosting. If you’re on cheap hosting and it’s poor you should look at increasing your budget a little. It probably only needs to be a little to get you much better hosting. We suggest you look at hosts offering specialised WordPress hosting. At this time we like Siteground as they offer reasonably priced hosting with specialist WordPress caching features normally only available on much more expensive hosting environments. Web hosting varies a lot it both price and performance and our recommended hosts will certainly vary over time.

Summary

To get the fastest loading WordPress site you need to commission a custom theme design and build. This can ensure the minimum number of plugins and that all external scripts and stylesheets are optimised for the fastest possible load speed. Load speed is not only important for your users and conversion rate, but Google also considers loading speed as one of it’s ranking factors.

If you’re looking for a high performing custom WordPress design and build we’d be pleased to discuss your requirements with you.