Five things making your website slow (and how to check)
Speed affects rankings and conversions, but most advice is written for developers. Here's what actually causes slow sites, in order of how often we find it.
Site speed matters for two reasons. Google uses it as a ranking factor, and more importantly, people leave slow pages. Every extra second between tapping and seeing something useful costs you visitors.
Here's what actually causes it, ordered by how frequently we find each one.
1. Enormous images
This is the cause maybe seven times out of ten.
Someone takes a photo on their phone — 4000 pixels wide, four megabytes — and uploads it directly. The browser downloads all four megabytes, then displays it in a 600-pixel-wide box. The visitor waited for 90 percent of a file they'll never see.
The fix: resize images to roughly the size they'll display at, then compress them. Save in WebP where you can. A photo that looks identical at 200KB instead of 4MB is a twentyfold improvement on one page.
How to check: load your page, open your browser's network tab, and sort by size. Anything over 300KB is worth a look.
2. Too many plugins
Mostly a WordPress problem. Every plugin can add its own CSS and JavaScript to every page — including pages that don't use it. A contact form plugin loading its scripts on all forty pages, when you have one contact page, is pure waste.
The fix: audit what's installed. Deactivate anything you're not actively using. Be suspicious of plugins that do one small thing you could achieve in a few lines of code.
3. Render-blocking scripts
Some scripts stop the page from displaying until they finish loading. Chat widgets, analytics, tracking pixels, font loaders. Each one is small, but stacked in the head of the document they collectively delay the moment anything appears.
The fix: load third-party scripts with the async or defer attribute so they don't hold up rendering. Then genuinely ask whether you need all of them. Most sites carry tracking scripts for tools nobody has opened in a year.
4. Cheap shared hosting
If your server takes 1.5 seconds to send the first byte, nothing you do on the front end will save you. You're sharing a machine with hundreds of other sites and getting whatever's left.
How to check: look for "time to first byte" in any speed test. Under 200ms is good. Over 600ms means your host is the problem.
The fix: move. Decent hosting is not expensive any more, and it's the rare fix that improves every page at once.
5. Fonts
Custom fonts are downloaded files. Load four weights of two families and that's eight files before any text appears — and depending on configuration, the text may be invisible while they load.
The fix: two font families maximum, only the weights you actually use. Use font-display: swap so text renders immediately in a fallback rather than showing nothing.
How to measure properly
Use Google PageSpeed Insights, but read it correctly. The score is a rough guide; the useful part is the Core Web Vitals underneath.
LCP — how long until the main content appears. Under 2.5 seconds. CLS — how much the page jumps around while loading. Under 0.1. INP — how quickly the page responds when tapped. Under 200ms.
And test on a real phone on mobile data. Your office wifi is lying to you.
A sense of proportion
Going from eight seconds to three is transformative. Going from 1.8 to 1.5 is a hobby. Fix the images, fix the host, cut the scripts you don't need, and then go do something that earns money.
Want to know how your own site measures up?
Run a free audit. Our crawler checks your live pages for the technical and on-page issues covered in articles like this one, and tells you what to fix first. Takes about a minute.