How to Improve WordPress Website Speed
Most WordPress speed advice is a list of twenty tips in no particular order. Here they are ranked by how much they actually move the number.
Most WordPress speed guides give you twenty tips in no useful order, which means you spend an afternoon minifying CSS while a 4 MB hero image sits untouched. This is the same work ordered by how much it actually moves the number.
Measure before you touch anything
You cannot tell whether a change helped if you never recorded where you started. Before any of this:
- PageSpeed Insights on your three most important pages — usually the homepage, your best service page, and a product or blog page. Screenshot the results.
- Search Console → Core Web Vitals for field data. This is what real visitors experienced, and it is what Google actually uses. Lab scores are a diagnostic; field data is the truth.
One warning: chasing a single composite score is a trap. A site can score 95 and still feel slow, and a site scoring 70 can feel instant. Optimise the three metrics below, not the number on the dial.
What you are actually optimising
- LCP — how long until the biggest visible thing renders. Usually your hero image or headline. Target under 2.5s.
- INP — how quickly the page responds when someone interacts. Almost always a JavaScript problem. Target under 200ms.
- CLS — how much the layout jumps while loading. Target under 0.1.
1. Hosting (the one nobody wants to hear)
If you are on £3-a-month shared hosting, everything below has a ceiling you cannot get above. Your site sits on a machine with hundreds of others, competing for the same CPU.
Check your Time to First Byte in PageSpeed Insights. Above ~600ms consistently means the server is thinking too long before it sends anything, and no amount of image compression fixes that. Decent managed WordPress hosting is the single highest-leverage change available to a slow site, and it is the one most often skipped because it is the least fun.
2. Images
On most business sites images are 60–80% of total page weight, and they are usually the LCP element. This is where the fastest wins live.
- Serve modern formats. WebP typically saves 50–70% over PNG or JPEG at visually identical quality. On this site, converting the project images cut 1,627 KB to 676 KB — a 58% reduction — for no visible difference.
- Stop uploading full-resolution photos. A 4000px-wide image displayed in a 800px slot is roughly 25 times more data than needed.
- Lazy-load everything below the fold, and explicitly do not lazy-load your hero image — that delays your LCP rather than improving it.
- Always set width and height. Missing dimensions are the most common cause of layout shift.
3. Audit your plugins
Every active plugin is code loading on your pages. The problem is rarely the count; it is that most plugins load their assets on every page whether or not they are used. A contact form plugin loading its JavaScript on all forty pages is normal and wasteful.
Deactivate plugins one at a time and re-measure. Look particularly for: sliders, page builders you no longer use, social feeds, chat widgets, analytics duplicated across three tools, and anything installed for a campaign that ended.
4. Caching
Without caching, WordPress rebuilds every page from PHP and MySQL on every single request. Caching stores the finished HTML and serves that instead. It is the largest single improvement after hosting, and it is close to free.
Set up page caching, browser caching and object caching if your host supports Redis. Many managed hosts do this at the server level already — check before installing a plugin that duplicates it, because two caching layers fighting each other causes stranger problems than no caching at all.
5. Fonts
Web fonts block text rendering. Three families at four weights each is twelve files before a single word appears.
- Two families is almost always enough. Load only the weights you actually use.
- Use
font-display: swapso text renders immediately in a fallback. - Add
<link rel="preconnect">for your font host, or self-host the files.
6. JavaScript and CSS
Render-blocking scripts in <head> stop the page drawing until they download and execute. Add defer to anything that is not needed for first paint.
This site had exactly that problem: two animation library files loading synchronously in the head, roughly 70 KB on the critical path. Deferring them cost one attribute and changed nothing visually.
Minification and combining files help, but far less than people expect. Do them after everything above.
7. Database
Worth doing once a year, not once a week. Post revisions accumulate indefinitely — a page edited fifty times stores fifty copies. Clear expired transients, spam comments and orphaned metadata from removed plugins. Take a backup first.
What barely matters
- Chasing 100/100. The difference between 90 and 100 is invisible to users and irrelevant to ranking.
- Removing jQuery if half your plugins depend on it. High effort, high breakage risk, modest gain.
- Switching themes for speed alone. A well-configured heavy theme beats a badly configured light one.
- Stacking three optimisation plugins. They conflict, and diagnosing the result takes longer than the work you were avoiding.
A realistic order of work
- Record baseline: PageSpeed on three pages, plus Search Console field data.
- Check TTFB. If it is bad, fix hosting before anything else.
- Compress and correctly size every image; convert to WebP.
- Set explicit width and height on all images.
- Enable page caching.
- Audit plugins, remove what is unused.
- Reduce and preconnect fonts.
- Defer non-critical JavaScript.
- Re-measure and compare against your baseline.
Most sites see the bulk of their improvement in steps 2 to 5.
When it is not fixable
Sometimes the honest answer is that a site cannot be optimised into good shape. A build with four page-builder plugins layered on a theme with a decade of accumulated patches will resist every fix, and each hour spent is an hour not spent on a rebuild that would solve it permanently. I would rather tell a client that early than bill them for the discovery.
If you are not sure which situation you are in, that is precisely what an audit is for — see WordPress development or the SEO services page, where speed work sits alongside the rest of the technical picture.

