Skip to content
Website Performance 3 min read Sajid Aslam

Why Is My WordPress Website Slow?

Four kinds of slow, four different causes. Work out which one you have before changing anything.

Diagnostic order for a slow WordPress website

Short answer

Usually one of four: oversized images, too many plugins loading everywhere, no caching, or hosting too small for the site. Work out which kind of slow you have first — a slow server and a heavy page look identical to a visitor and need completely different fixes.

"Slow" is four different problems that look identical from the outside. Identifying which one you have is most of the work.

What the visitor noticesMetricCause
Long blank wait before anythingTTFBServer, uncached PHP, database
Content appears lateLCPHeavy images, render-blocking resources
Feels unresponsive when tappedINPJavaScript on the main thread
Content jumps while loadingCLSMissing dimensions, injected content

Start by running PageSpeed Insights on a page that feels slow and reading which of these is actually bad.

Cause 1: images

Almost always the biggest single problem, and almost always the last thing checked.

Typical: a hero image uploaded at 4000px, rendering at 1200px, in JPEG, uncompressed, at 2.4MB. That one file can be more than the rest of the page combined.

Fix: correct size, modern format, compressed, explicit dimensions, lazy-load below the fold but never the hero. How images affect website speed and SEO covers it fully.

Cause 2: plugins loading everywhere

Not the count — what they load and where.

Most plugins enqueue their CSS and JavaScript on every page regardless of whether the page uses them. A slider plugin used only on the homepage shipping its assets to your contact page is pure cost.

Audit: list everything, note what each does and where it is used, deactivate anything unjustifiable on staging, and delete rather than leave dormant.

Cause 3: no caching, or caching configured badly

Without page caching, every visitor triggers PHP execution and database queries to build a page that has not changed. On an uncached site this is a large, immediate win.

Configured badly is its own problem — two caching plugins fighting each other is worse than one done properly. WordPress caching explained covers the layers and how they interact.

Cause 4: hosting

At some point you have optimised what you can and you are simply on a plan too small.

Signs: server response consistently above ~600ms with caching active, admin sluggish even when the front end is cached, or WooCommerce on shared hosting — where cart and checkout cannot be cached and hit PHP on every request.

Cause 5: the theme or page builder

Sometimes the weight is architectural. Builders ship assets for every feature they support, whether the page uses them or not.

If you have done images, plugins and caching and mobile performance is still poor, this is usually what is left — and it is a rebuild decision rather than an optimisation one. When should you rebuild your site covers that call.

Diagnosing in order

  1. Check field data in Search Console — which metric, which pages
  2. Check total page weight and the largest single asset
  3. Check server response time
  4. Count what is enqueued on the slow page
  5. Confirm caching is actually active *(look for the cache header)*

Change one thing at a time. Batching five changes and seeing improvement tells you nothing about which one worked.

What not to bother with

  • Aggressive minification. Modest gains, frequent breakage.
  • Removing jQuery. Rarely the bottleneck.
  • A second caching plugin.
  • A perfect lab score.

If you want it diagnosed properly rather than guessed at, that is what the website maintenance service covers — and speeding up a slow WordPress site is the method written out.

Worked examples

Related services

Related reading

FAQ

Questions about this

If yours isn't here, send it over — I reply within one working day.

It will fix one kind of slow — repeated server work — and do nothing for the others. If the page is heavy, caching serves the same heavy page faster. If the JavaScript is blocking interaction, caching does not touch it.

There is no number. Twelve well-behaved plugins can be lighter than four badly-written ones. The question is what each one loads and where, not how many there are.