Diagnosing the cause slow load speeds is a bit of a needle in a haystack at times, especially when you are trying to diagnose the problem for someone who is unsure how the technical aspects of a web server work. Thankfully, if you are willing to get your hands dirty, the cause of slow loading websites is almost always something that can be resolved without too much heartache.
When it comes to a website that is slow to load, I would generally split the cause into two main categories. Issues caused by the web server (off page) and issues caused by the website owner (on page). Depending on your web hosting situation, resolving server side issues may not be straight forward, but you should always be able to resolve on page performance issues that lead to a slow page load speed.
If your website is slow to load, you should aim to resolve it as quickly as possible. Page load time directly impacts ranking and can greatly hurt the user experience. Even if there were no ranking penalties, the loss of traffic due to a slow website should be enough to make you get this problem added to the top of your agenda and resolved as fast as possible.
What Causes a Slow Web Page
Before going into the server side issues, I will discuss factors that cause a web page to load slowly that are caused by the web page itself. These are generally HTML related things or things that the author of a page will do as they write the content. One of the main reason websites load slowly is the author of a post not understanding that the things they do are inefficient.
PNGs slow your site, use a lossy image format
I can’t tell you how many times a sales person has told me “the home page is loading very slow”. I look into it and find they have added a 10mb PNG to the home page slider. You need to be using JPGs or even the webp format which has shown to be better than jpg. Make sure your images are compressed and small. The pro plan on cloudflare will do this for you on the fly, saving you time and effort if you have been making this mistake for a long time.
Go easy on the javascript plugins
Yes, it might be awesome to have flashy image galleries and cool popups. For every 1000 visitors, how many actually care about that popup? Not only does the popup itself slow the page down, but the javascript execution also slows it down. Keep javascript and plugins to a minimum. They all come with a cost!
What causes a slow web server?
A slow server is a spanner in the works, literally. It can bring your entire website to a crawl. A web server is just a computer like any other. It has a CPU, RAM, Hard disk and the other usual components you have in your laptop and even your phone. They all perform the same tasks, just on a much bigger level. If you are dealing with too many requests, your CPU, network or RAM may reach 100% usage and end up causing the machine to crash, bringing your website offline.
Resolving server issues needs to be done by the system administrator. If you have a VPS or a dedicated server, you should have full, unrestricted root access to the server and this will allow you to fix everything. If you have a hosting package with a standard hosting provider, you may need to reach out to the support team for some help. A lot of these things are going to be technical, so if you are going to attempt to resolve them, make sure you know what you are doing.
Insufficient System Resources
As your site gets more popular, you will begin to have more visitors on your site at any one time. This is great for you, but for your web server, it means it has to work harder. It can only work as hard as the system resources allow it. If you have a cheap hosting package designed for small websites, you may find that you have hit the limit and there are no longer enough system resources to handle all of the requests. This is a very common thing for small websites as they begin to grow.
Fixing this is normally a matter of upgrading your hosting package. For some, this can be a one click thing to upgrade to the next tier and for others, will require a complete server migration. It is never a fun thing to do, but it HAS to be done, otherwise your website will never grow any bigger.
Outdated Software
There are still lots of websites using old software versions. For WordPress in particular, lots of people using Apache with mod_php running some old 5.x version. PHP 7 is out in the mainstream now and the performance difference is massive. Upgrading is incredibly easy and if you do nothing more than this, you will see site speed improve for php pages. If you go as far as getting a complete replacement for Apache, you might see some gains, but generally they will not be that significant to warrant the amount of work required.
No caching services enabled
IF you use WordPress or other popular CMS systems, you will have come across HTML cache plugins that are seen as the cure for a slow site. There are also caching systems that can be used on the server side to greatly benefit performance.
For php websites, the biggest thing you can do is enable an opcode cache. If you do now know how php works, now is not the time to go into detail as it will take a lot of explaining. The short version that avoids complication is that php code is read and executed every time a php web page is loaded. This takes time to do and also uses up server resources. An opcode cache will cut a huge amount of effort out of this by executing the php once and saving the result. Next time, rather than executing again, it remembers the last time and just uses the same result. The outcome can mean a script that will load faster, sometimes 2 or 3 times faster.
Another caching service is Redis. This is a RAM based cache. Objects from wordpress such as posts are stored in RAM instead of the database. Each time a post is loaded, it will be read from the redis cache instead of the DB. It reduces database queries, frees up resources and improves website loading speed.
No CDN is used
A CDN is a content delivery network. These are web services that are designed to deliver things like .css, .js and image files super fast. Cloudflare is available for free and will do all of this for you. I also do not want to go into huge detail here, but the short and sweet of a CDN is that it will sit in front of your website. If a request comes through for an image, css or js file. It will intercept it and return that file without needing to go to your web server. These CDNs are turbo charged for performance and are all over the globe. Using a CDN will cut down on the requests to your website making the page load faster and taking the load away from your server so you can handle more requests. A CDN is the quickest and easy off page solution to impact website speed. Almost every speed test will suggest you do this to get a faster loading website.