WordPress

How to Increase WordPress Website Speed

Find what is actually slowing your site, then fix it in order of impact. Core Web Vitals, images, hosting, plugins and database — measured, not guessed.

A WordPress site speed test showing improved scores

Most speed advice is a list of twenty tips applied at random. That is why people install six plugins, change nothing measurable, and sometimes make the site slower.

This guide works the other way round: measure first, find the actual bottleneck, then fix in order of impact. Usually two or three changes do almost all the work.

Step 1: Measure properly

Run your slowest page — not the homepage — through PageSpeed Insights. Look at the mobile tab, because that is what Google uses to rank you.

The three numbers that matter

MetricTargetWhat it measures
LCPunder 2.5sWhen the main content appears
INPunder 200msHow fast the page responds to a tap
CLSunder 0.1How much the layout jumps while loading

Ignore the score out of 100. It is a weighted summary. The three metrics above are what Google actually uses, and a site can score 70 while passing all three.

Read the diagnosis, not just the number

Scroll to Opportunities and Diagnostics. PageSpeed tells you exactly which file is slow and how much time it costs. That list is your work order.

Also check the server response time

In the diagnostics, find Initial server response time (TTFB). Above 600 ms means the problem is your hosting or your database, and no amount of image compression will fix it.

Step 2: Images — usually most of the problem

On a typical WordPress site, images are 60 to 80 percent of the page weight. Fix these first.

Compress and convert to WebP

A phone photo is often 4 MB. The same image at the right size, as WebP, is under 150 KB — and looks identical on screen.

Use a plugin that converts automatically: ShortPixel, Imagify or Converter for Media. Set it to bulk-convert what you already have.

Stop uploading enormous files

Resize before uploading. Nothing on a web page needs to be wider than about 2000 pixels, and most images need far less.

Lazy loading

WordPress does this by default now. One exception matters: the main image at the top of the page should not be lazy loaded, because that delays LCP. Most image plugins have a setting to exclude the first image.

Always set width and height

An image without dimensions makes the page jump when it loads, which is exactly what CLS measures. WordPress adds them automatically; check that your theme is not stripping them.

Step 3: Hosting — the floor you cannot beat

If TTFB is over 600 ms, this is your bottleneck and everything else is decoration.

  • PHP 8.1 or newer. PHP 8 is roughly twice as fast as 7.4 for WordPress. Switch it in cPanel — it is free and takes a minute.
  • Enough memory. The cheapest shared plans run out and start swapping.
  • A server near your visitors. A server in the US serving readers in Asia adds real latency before anything else happens.
  • LiteSpeed or NGINX handle WordPress better than default Apache under load.

See what actually matters in cheap web hosting.

Step 4: Caching

Without caching, WordPress rebuilds every page from the database on every visit. Caching saves the finished page and serves that instead.

Pick one caching plugin:

  • LiteSpeed Cache — if your host runs LiteSpeed. The best option by a distance, and free.
  • WP Super Cache — simple and reliable.
  • W3 Total Cache — most control, most settings to get wrong. See the dedicated setup guide.

Never run two caching plugins. They fight, serve stale pages, and produce bugs that are extremely hard to trace.

Step 5: Plugins — count them

Every plugin adds code to every page load. The number is less important than what they do, but in practice the two correlate.

  1. Delete what you do not use. Deactivating is not enough — delete it.
  2. Find the expensive ones. Install Query Monitor, load a page, and see which plugin is running the slow queries.
  3. Replace heavy page builders where you can. Elementor and similar add significant weight to every page. The block editor is much lighter.
  4. Watch for plugins loading everywhere. A contact form plugin often loads its scripts on all pages, not just the contact page.

Step 6: The database

An old WordPress database fills with things nobody needs: post revisions, spam comments, expired transients, leftover tables from deleted plugins.

Back up first, then use WP-Optimize to clear revisions, spam and transients.

Limit revisions going forward in wp-config.php:

define( 'WP_POST_REVISIONS', 5 );

Without that line, a page edited fifty times stores fifty full copies.

Step 7: A CDN

A CDN serves your files from a location near the visitor. Cloudflare's free tier is enough for most sites, and it also gives you free SSL and basic attack protection.

It matters most when your audience is spread across countries. If everyone is in one city and your server is there too, the gain is small.

Step 8: Fonts and third-party scripts

Often the last unexplained second.

  • Host fonts locally rather than loading from Google Fonts. It removes a DNS lookup and a connection to another domain.
  • Load only the weights you use. Loading nine weights when the design uses two is common and wasteful.
  • Audit third-party scripts. Chat widgets, heat maps, multiple analytics tools — each one is a separate connection. Remove what you do not read.

What order to do this in

Fix in this sequence and stop when you pass the metrics:

  1. Switch to PHP 8.1+ — one minute, free, immediate
  2. Compress images and serve WebP — usually the largest single gain
  3. Add one caching plugin
  4. Delete unused plugins
  5. Add Cloudflare
  6. Clean the database
  7. Fix fonts and third-party scripts
  8. Only then consider changing host

Most sites pass after the first three.

Common problems

The score went up but the site still feels slow

You are looking at the lab score. Check the real user data at the top of the PageSpeed report, which comes from actual visitors. That is what Google uses.

The site broke after enabling caching

Usually JavaScript minification or combining files. Turn those two options off, keep page caching on. Clear the cache and test again.

Changes do not show up

You are seeing a cached page. Clear the plugin cache, clear Cloudflare, and hard-refresh the browser. In that order.

CLS is high and I cannot see why

Usually images without dimensions, ads reserving no space, or a font swap moving text. The PageSpeed report highlights the exact element.

Everything is optimised and TTFB is still bad

The host. No plugin fixes a slow server. Move.

What not to bother with

  • Chasing 100/100. Diminishing returns after you pass the three metrics.
  • Stacking optimisation plugins. They overlap and conflict.
  • Aggressive JS combining. Breaks more sites than it speeds up, and HTTP/2 made it largely pointless.
  • Removing jQuery unless you know exactly what depends on it.

Where to go next

Questions people ask

What actually makes WordPress slow?
On most sites, uncompressed images are 60 to 80 percent of the page weight. After that it is slow hosting, no caching, and too many plugins. Measure before fixing — the bottleneck is rarely what people assume.
What PageSpeed score should I aim for?
Ignore the score out of 100. Google ranks on three metrics: LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1. A site can score 70 and pass all three, which is what matters.
Which is the best WordPress caching plugin?
LiteSpeed Cache if your host runs LiteSpeed — it is free and the strongest option. Otherwise WP Super Cache for simplicity, or W3 Total Cache for control. Never run two caching plugins together.
Does switching to PHP 8 really speed up WordPress?
Yes, noticeably. PHP 8 is roughly twice as fast as PHP 7.4 for WordPress. It is free, takes a minute in cPanel, and is usually the single easiest gain available. Test the site afterwards in case an old plugin breaks.
How many plugins is too many for speed?
What they do matters more than how many, but the two correlate in practice. Install Query Monitor to find which plugin is running slow queries, and delete anything unused — deactivating is not enough.
What is TTFB and what should it be?
Time to first byte — how long the server takes to start responding. Aim under 600 milliseconds. If it is higher, the bottleneck is your hosting or database, and image compression will not help at all.
Why did my site break after enabling caching?
Usually JavaScript minification or file combining rather than page caching itself. Turn those two options off, keep page caching on, clear the cache and test again.
Should I use a CDN for a small website?
It helps most when visitors are spread across countries. If your audience and server are in the same city, the gain is small. Cloudflare free is still worth adding for the SSL and basic protection alone.
How do I fix a high CLS score?
CLS measures layout jumping while the page loads. The usual causes are images without width and height attributes, ads that reserve no space, and fonts swapping after load. The PageSpeed report names the exact element.
Is it worth chasing a 100 out of 100 score?
No. Once you pass the three Core Web Vitals, further work gives diminishing returns and often means aggressive settings that break things. Effort is better spent on content at that point.

Written by Habib Baloch

I build Android apps, websites and Ubuntu servers, and write down exactly how I did it.

Ask me about this guide →