Why your website is slow, in the order worth checking

Five causes, ordered by how often they turn out to be the real one. You can check the first three yourself in about ten minutes, with no tools at all.

Contents
  1. 1. The images
  2. 2. Too much JavaScript
  3. 3. A render blocking wait at the start
  4. 4. A slow origin
  5. 5. Distance
  6. Why this order matters commercially
  7. If you would rather someone just fixed it

When a business owner tells me their website is slow, they have usually already been told it is the hosting. Sometimes it is. Usually it is not, and they are about to pay to move a heavy site onto a faster server, which makes a heavy site load slightly sooner.

Here are the five real causes, in the order they actually occur in the work we see. Check them in this order and you will find yours faster.

1. The images

This is the answer more often than the other four put together.

A photograph off a modern phone is somewhere between three and eight megabytes. Dropped into a page without being resized, it is still three to eight megabytes when your visitor downloads it, and the browser then shrinks it to fit a 400 pixel wide box on a phone screen. You have just sent someone twenty times more data than their screen can display, and on a mobile connection they wait for all of it.

How to check with no tools: load your own site on your phone with wifi switched off. If the text appears and the pictures fill in slowly from the top, one band at a time, the images are too big. That behaviour is the tell.

What correct looks like: every image resized to the sizes it is actually displayed at, served in a modern format, with the dimensions written into the page so nothing jumps around while it loads. A hero photograph on a well-built page is usually between 60 and 200 kilobytes, not three megabytes.

2. Too much JavaScript

The second most common cause, and the one most invisible to the owner, because it usually arrives as plugins and tracking rather than as anything anyone chose.

Every analytics tag, chat widget, popup builder, review carousel, font loader, and cookie banner is code that must be fetched and then run before the page becomes usable. Each one looks small. Eleven of them are not.

How to check with no tools: count them. Open the page and count the things that are not your content: the chat bubble, the newsletter popup, the spin-to-win wheel, the “23 people are viewing this” badge. If it is more than two, that is your answer.

3. A render blocking wait at the start

Some pages spend their first second doing nothing visible because they are waiting on something before they are allowed to draw: a stylesheet from another domain, a web font, a script in the head of the document.

How to check with no tools: watch a reload closely. If you get a blank white screen for a beat, then the whole page appears at once, something is blocking. If you get text first and then styling, that is a different and usually smaller problem.

This is a build problem, not a hosting problem. No server upgrade fixes it.

4. A slow origin

Now we are into hosting, and it is fourth on the list rather than first.

An origin is slow for two honest reasons. Either the machine is oversubscribed, which is what “shared hosting” means when your neighbours are busy, or the page is being assembled from a database on every single request when it did not need to be.

How to check: load a page, then load the same page again. If the second load is much faster, something is being cached and the first request was doing work. If both are equally slow, the machine is the problem. If your site is a CMS with no caching layer in front of it, it is rebuilding the same page from scratch for every visitor, which is the most common version of this.

5. Distance

Last, and the one people buy first.

If your server is in Arizona and your customers are in Maharashtra, every request crosses the planet twice before anything happens. That is real, it is measurable, and it is roughly a fixed penalty on everything.

The fix is either a server in India or a content network with a presence here. It is a genuine improvement and it is worth doing. It is also, in the work we see, a smaller effect than the four causes above it, which is why moving a three megabyte page to a Mumbai server disappoints people.

Why this order matters commercially

Google uses page experience as a ranking signal, and the measurement it cares most about is how long the largest thing on screen takes to appear. The target is under two and a half seconds. Causes one, two and three all push that number up on every visit for every visitor, and none of them are fixed by hosting.

They are also free to fix. Resizing images and deleting three widgets costs an afternoon. Migrating hosting costs money every month, forever.

So check in this order. If you get to number four and the first three were clean, then yes, it is the hosting, and shared hosting or AWS, and how to actually choose walks through what to move to.

If you would rather someone just fixed it

Fair. Most of this is an afternoon of unglamorous work: resize every image, remove what nobody uses, put the right caching in front of the pages, and measure before and after so you can see what changed. That is part of what our maintenance and support work is, and we will tell you which of the five it turned out to be rather than selling you a migration.

This is what we do

Want this done properly, once?

Maintenance and support for small Indian businesses. Built in Thane, priced honestly, and you own everything at the end.

Written by

Omkar Mhatre

Founder, Mhatre Innovations. Builds websites, apps and cloud for small Indian businesses from Thane. Cofounder and CTO of Geniffy. MSc Advanced Computer Science, University of Liverpool.