Skip to main content

WebVerix

What actually makes a website slow, and what only looks like it does

Most slow sites are slow for one or two specific reasons. Here is how to find yours instead of guessing at it.

On this page

Every few weeks someone sends us a screenshot of a performance score and asks why their site is slow. The score is usually red. The site is usually fine. Somewhere else on the same site there is a real problem that the score never mentioned.

Why scores mislead

A single number has to compress a lot of detail, and compression loses things. A page can score badly because of one third party script that loads after everything a visitor cares about. It can score well while the largest image on screen takes four seconds to appear on a phone.

The number is a starting point for a question. It is not the answer. What matters is when the page becomes useful, which is a different measurement entirely.

A score tells you something is wrong. It rarely tells you what, and it almost never tells you what to fix first.

Weight is not the problem

Total page weight is the metric people reach for because it is easy to understand. It is also the one that correlates worst with how fast a page feels.

A recent example from our own audit work. A homepage carried 1.3 MB of images across ten files, which sounds alarming until you look at where they sit:

Asset typeFilesWeight
Images101,323 KB
JavaScript19106 KB
CSS3377 KB

Every one of those images sat below the fold and was lazy loaded. None of them delayed the first paint by a millisecond. The 33 CSS files, small as they were, all had to be fetched and parsed before anything rendered at all.

Worth knowing. Resizing those images would have made the site slower. The source screenshots were tall and narrow, and the generated smaller versions were upscaled to a wider standard size. Four of them came out heavier than the originals.

What actually blocks a render

Three things decide when a page becomes useful, and none of them is total weight.

  1. Render blocking requests. Stylesheets and synchronous scripts in the head stop the browser painting until they resolve.
  2. The largest element above the fold. Usually a hero image or a heading. If it is lazy loaded, you have told the browser to deprioritise the one thing the visitor is waiting for.
  3. Layout shift. Content that arrives without reserved space pushes everything else around. The page may be fast and still feel broken.

The lazy loading trap

Lazy loading is good for images a visitor may never scroll to. Applied to the hero, it does the opposite of what you want. A single attribute is the difference:

				
					<!-- delays the thing people are waiting for -->
<img decoding="async" src="hero.webp" loading="lazy">

<!-- loads it first, reserves its space -->
<img fetchpriority="high" fetchpriority="high" decoding="async" src="hero.webp" width="1200" height="675" fetchpriority="high">
				
			

The width and height attributes matter as much as the priority. They let the browser reserve the space before the file arrives, which is what stops the layout jumping.

How we measure it

Before changing anything we take three readings, because a fix that improves one and damages another is not a fix.

That last one catches more than you would expect. It is how we found the upscaled images in the example above, and it takes a few minutes.

Fixing things in the right order

Order matters, because the cheap changes often remove the need for the expensive ones.

  1. Fix the above the fold image. Priority, dimensions, correct format.
  2. Cut render blocking requests. Minify first, and be careful with combining.
  3. Preconnect to any font or asset host you cannot remove.
  4. Only then look at total weight, and only where a smaller file is genuinely smaller.

Most sites we look at need the first two and nothing else. If you want a second opinion on where your own time is going, tell us what you are seeing.

Not sure where your site is losing time?

Send us the URL and what you are seeing. We will look at where the time actually goes and tell you what we would change first.

Keep reading