Can we just start off by saying how awesome WordPress is?
A completely free, open source system that currently powers more than one in three of ALL websites online. That's pretty amazing.
As WordPress has grown and matured the range of plugins, themes and extensions available for it has grown massively allowing people to create pretty much any kind of website or application you can think of.
There is a problem though. Speed.
As things grow and make it easier for users to add features and functions this tends to come at the cost of performance. Google has recognised this issue and is now pushing for websites to perform better, especially on mobile devices where many users are still on metered connections.
Research also shows that the average user will only wait around 3 seconds for a site to load before starting to think about going elsewhere.
WordPress itself is pretty good from a performance perspective, but for every plugin, theme and feature you add there is a performance hit. Some themes and plugins are better written than others so careful selection is key but once you have your swanky new website what can you do to improve performance?
Caching (pronounced like "cashing") is the process of storing data in what is known as a cache. Think of a cache like a filing cabinet or a hard drive. Somewhere the server can save a static version of the data once, which can then be accessed multiple times without having to be generated again.
Normally, when you access a page on a WordPress site the server has to read and process the code, request and receive the data from the database then combine all this together to form the web page response. This all takes time and puts load on the server.
When you have caching enabled the server is simply serving a pre-processed static page stored on the server.
There can be various different types of caching:
- Page Caching
- Database Caching
- Object Caching
- Browser Caching
We will not go into these in more detail here but they all server the same purpose of storing data in a more static format so it can be quickly accessed. All of these can be deployed on a WordPress site to make a big difference in the speed and performance of the website.
Assets on a website can include:
- Stylesheet files (rules that dictate how the website should look)
- Script files (code the website uses to function)
- Image files
A standard WordPress website will have numerous stylesheet, script and obviously image files as part of any single page. In fact the more plugins and features you have the more of these files you will have.
Asset optimisation focuses on two things:
- Size reduction
- Request reduction
For each asset linked to a web page the browser has to request that asset as part of the page loading routine. Obviously if the page has 100 assets over 10 then it will take longer to request and load those assets.
Likewise the size of the assets has a direct impact on the time it takes for a page to load.
By reducing the size of individual assets and (where possible) combining assets together (E.g. adding all the individual style sheets to one file) the page load time can be greatly improved.
For images, ensuring they are optimised in terms of physical size and file size is vital to optimising performance. It is also vital to ensure images are using the optimal format for their needs. With advances in technology new image formats are emerging such as the WebP format which offer greater image compression without noticeable loss in quality.
With modern commercial WordPress themes there is also an issue with the loading of assets not actually required by the website. Commercial themes need to offer a huge range of functionality in order to be as flexible as possible so out of the box tend to load all of the assets required to support that functionality. We find a fair amount of work is required to identify only those assets actually needed for the specific website, removing the rest to increase performance.
Content Delivery Network (CDN)
A content delivery network compromises a network of servers that are distributed around the world.
The website content is stored across this network of servers.
When a user requests a web page the content for that page (normally the page assets) are served from the server that is geographically closest to that user.
This provides a performance improvement, especially for sites that are accessed by users in different geographical locations.
How do you know how well your site is performing?
There are a number of online tools and websites that can be used to analyse and report on your website performance.
Google provide a few different tools to help you with performance and more importantly how to improve it:
Google PageSpeed Insights - simply enter your website address to get a speed score and comprehensive report.
Google Lighthouse -a new Chrome browser extension designed to provide deep insight into overall performance and ways to improve it.
Google Mobile Friendly - whilst not strictly a performance tool this is also important to ensure your website is as mobile friendly as possible.
A few other useful tools to evaluate performance include:
GTMetrix - provides a speed score for Google and YSlow along with details breakdown of issues and fixes.
Pingdom - similar to GTMetrix but also covers other aspects of the site performance including server performance and SSL / DNS.
Summing it all up
We hope this article has highlighted the issues and options to resolve the common performance issues faced on WordPress websites.
It is well worth spending the time on optimising your website to ensure the user gets the best possible experience and does not decide to hop off to your competitor as your site is too slow to load.
Need help with optimising the performance of your WordPress website? We can help! Contact us today for a no obligation chat on 02 8097 7957 or contact us online.