“My website’s slow — I think I need to switch hosting.”
Sometimes that’s true. But in most of the sites we review, hosting isn’t the main problem. People switch servers, things improve a little, and the site is still slow — because the real cause was somewhere else all along.
Let’s look at where the problem usually actually is, and how you can check it yourself before spending any money.
First: measure, don’t guess
Without data, it’s all just a feeling. Run Google PageSpeed Insights (free, just search for it) or GTmetrix. Scan your site and pay attention to two numbers more than the overall score:
- TTFB (Time to First Byte): how long the server takes to start responding. Above 600ms points to a server or caching problem
- LCP (Largest Contentful Paint): should be under 2.5 seconds
And one important thing: always test on mobile. That’s where most of your traffic comes from, and where slow load times hurt the most.
Cause 1: no caching (or caching that isn’t actually working)
By far the most common cause, and the easiest to fix.
Without caching, every single visit forces WordPress to build the page from scratch: query the database, run every plugin, assemble the HTML. With caching, that page is already built and just gets served as-is.
The difference isn’t subtle. It can mean going from two seconds down to two hundred milliseconds.
One thing to watch for: having a caching plugin installed doesn’t mean it’s working. We’ve found sites with the plugin active but caching never actually generating — expired licenses, half-finished setups, that sort of thing. Check it properly: look for cache files actually being created, or just run the same test twice in a row and see if the second load is faster.
Cause 2: unoptimized images
The second most common cause, and usually the heaviest one.
Someone uploads a blog photo straight off the camera or phone: 4,000 pixels wide, 5MB. WordPress displays it smaller on the page, but the visitor still downloads the full 5MB.
Three or four images like that and the page weighs 20MB. On an average mobile connection, that’s several seconds staring at a blank screen.
What to do:
- Resize before you upload. For a typical content width, 1,500–2,000 pixels is plenty
- Compress. Some plugins do this automatically on upload
- Use WebP. Noticeably smaller than JPG at equivalent quality
- Lazy load images: anything below the fold shouldn’t download until the user scrolls down to it. WordPress already does this by default
Cause 3: too many plugins (or a few very heavy ones)
Worth being precise here, because this one gets oversimplified a lot: the problem isn’t the number, it’s what they do.
Twenty lightweight plugins can run better than three badly coded ones. The usual culprits are page builders, sliders, analytics plugins that load scripts on every single page, and security plugins that scan every request that comes in.
A useful test: install a performance profiling plugin (Query Monitor is the standard, and it’s free) and check how many database queries each page makes. Above 100 queries, something’s worth looking into.
Cause 4: the database has years of clutter built up
Over time, junk piles up that slows down every single query:
- Post revisions: WordPress saves every version of every piece of content. A page edited fifty times has fifty copies sitting in the database
- Spam comments sitting in the trash
- Leftover data from uninstalled plugins that nobody ever cleaned up
- Autoloaded options: data that loads on every single visit. If this grows too large, it slows down every page on the site
Cleaning up the database is straightforward with the right plugins, but back up first — this touches what sits underneath your content.
Cause 5: the hosting (sometimes it really is the hosting)
After ruling out everything above, there are cases where the server genuinely is the bottleneck:
- Outdated PHP. Modern versions are noticeably faster. If you’re running anything below PHP 8, updating usually brings an immediate improvement
- Overcrowded shared hosting, where you’re sharing resources with hundreds of other sites
- A server far from your visitors. If your audience is in the UK and the server’s sitting in the US, it shows
- No HTTP/2 or no compression enabled
Where to start tomorrow
If you only had time for three things, in order of impact:
- Confirm you have caching, and that it’s actually working. It’s the biggest win for the least effort
- Optimize your images. This is usually half the page’s total weight
- Update your PHP version from your hosting control panel (after backing up)
Those three alone are enough to noticeably speed up most small business websites — no need to switch providers or rebuild anything.
Why this matters more than it seems
Speed isn’t a technical nice-to-have. It’s been a Google ranking factor for years now, and more importantly, it’s a conversion factor: every second of load time costs you a share of your visitors, and the effect is even bigger on mobile.
Put another way: you could be paying for ads that bring people to a site they leave before it even finishes loading.
If you’d rather not deal with any of this yourself, speed optimization is included in our maintenance plans. But as you can see, a good chunk of it you can handle on your own. Start by measuring.
Would rather have us take care of it? Get in touch with our team and we’ll get back to you within 24 hours.