Some of the images in this blog post are generated by AI
Every once in a while we'll run into an issue that is both hard to identify and difficult to implement a solution for after figuring it all out.
It sounds dead simple, a client has a wordpress website with a home page that takes almost 7 seconds to load. Wordpress is a great system for hosting websites that has expanded to support almost any type of website conceivable thanks to its plugin oriented nature. Have a problem? Fix it with a plugin! The problem is that every plugin you add slightly slows down the website.
Normally the amount of features you gain by installing a plugin outweigh the usually imperceptible speed hit to the website. However, what happens when you have over 50 plugins installed and running on every load of the homepage? Well that's when you have to start digging to figure out the root cause of your speed issues, and it's a little more complicated than "Stop using so many plugins."
The first thing we wanted to do is figure out if it was the server itself that was causing the issue. A server is a computer configured to distribute data or information, like a website, to another computer in an efficient manner. Servers are more specialized than your average home computer in that they are designed to process and serve information quickly and securely while using as little power, and generating as little heat, as possible. This quality allows servers to be stacked together, further increasing efficiency in the form of physical space usage.
Some hosting providers are faster than others; We're particularly happy with Siteground's speed results in the websites we host. There are two main types of hosting plans that are relevant to this discussion:
Shared hosting plans allow you to save money as a customer by sharing the resources of one server with other customer's websites. Most websites don't need that many resources and can run fine sharing processing power with other low-intensity websites. The IP address used to connect to the website is shared with those other websites. If for some reason the shared server goes down, which is known to happen automatically if one client on that server catches a virus or gets hacked as a mitigation against spam and malware distribution, then every website hosted on that server becomes inaccessible.
Dedicated hosting plans are a little more premium as the hosting provider walls out an entire server just for your website. All the electricity and computational power goes to serving just your website. Additionally you get your own IP address allocated specially for you. However you will pay more, in some cases a lot more. Your website will run much faster, however, and in some cases is a requirement for complicated setups.
We decided to clone the wordpress site to Siteground and see if that helped. Siteground has a migration plugin that does the the cloning automatically, it's super useful!
Once we migrated the site over we ran both the original site and the migrated site through some speed tests using https://gtmetrix.com/ .
Original Site
Ouch! The migrated site was faster, but only by about a second and a half, not bad for shared hosting, but not enough to convince our client of the need to move servers. This required further investigation.
We downloaded some more wordpress plugins Help! in order to identify if there were any specific plugins that were causing the most slowdown but the results weren't very conclusive.
In the end we ended up using our browser's build in speed analysis tools! Every modern browser includes a suite of developer tools built in, one of those tools is the network analyzer tool.
Example of a website's network analysis:
It shows how long all the pieces of the web page take to load completely. After careful analysis and research into some of the plugins we came to some conclusions.
The website was needing to dynamically program the way the homepage looked, from scratch, on every load, then needed the visitor's browser to connect to different analytics services, download the tracking script files, generate a collection of data in the browser, send the data to the website, have the server process that data, and finally send that data back to the analytics services!
When we disabled all tracking on our clone site, just to test it, we got a 4 and a half second reduction in load times! 7 seconds to just 3 and half.
We discussed potentially reducing the amount of analytics but it turned out each individual service was being used extensively. In fact every single plugin had a reason for being there. The question then became a question of which had more value, the data being collected, or the speed of the site. The client decided that the speed issues weren't so terrible that it would necessitate reducing the amount of data coming in. The site generates a lot of sales so in this particular case it was not deemed necessary to work on the issue any further.
Sometimes when you find the solution to a problem you find out you never had a problem in the first place. If you think your website is too slow, contact us!