Before changing anything, you need to know what is slowing your site down. Stacking caching plugins at random often makes things worse. Here is my method, followed by the 12 causes I come across most often in audits.

Why is my WordPress site slow?

For every page, the server has to run WordPress and query the database, then the browser has to download and display images, fonts and scripts. The slowdown can sit at any of these steps, which is why measuring matters.

What is a good load time?

PageSpeed Insights report for medamineweb.com: Performance 98, Accessibility 100, Best Practices 100, SEO 100; FCP 0.7 s, LCP 0.9 s, TBT 0 ms, CLS 0

Google uses three metrics, measured on real visitors. LCP (when the main element appears) should stay under 2.5 seconds, INP (how quickly the page responds to clicks) under 200 milliseconds, and CLS (layout stability) under 0.1. In PageSpeed Insights, look at the “Discover what your real users are experiencing” section before the lab score.

The 12 most common causes

CauseHow to spot itFix
Underpowered hostingHigh TTFB, even on a simple pageA suitable plan, recent PHP, server caching
No page cachingEvery visit rebuilds the pageServer-side page cache or a caching plugin
Oversized imagesThe LCP element is an image of several hundred KBResize, WebP/AVIF, declared dimensions
Main image lazy-loadedThe LCP waits for lazy loadingNo lazy loading on the top image, high priority
Heavy page builderLots of CSS/JS on every pageA lightweight theme or removing unused modules
Too many third-party scriptsChat, pixels, maps, embedded videosLoad on click, remove what isn’t needed
Unneeded or heavy pluginsSlow queries visible in Query MonitorDeactivate, replace, or build something lighter
Cluttered databaseLarge autoloaded options, revisionsTargeted cleanup, a cap on revisions
Badly loaded web fontsSeveral families and weightsHost them locally, preload one font
Old PHP versionVersion shown in Site HealthMove to a supported version after testing
No compression or HTTP/2Uncompressed filesTurn on Brotli/Gzip with your host
Embedded videos and iframesLoaded as soon as the page opensA clickable thumbnail (a “facade”)

Do I need a caching plugin?

Yes, unless your host already provides page caching. Use one solution and configure it well, because two caching plugins trip over each other. Caching also won’t fix oversized images or a bloated theme.

Does hosting affect speed?

A lot, especially server response time (TTFB). If the TTFB stays high with caching on, the problem is on the server: not enough resources, no object cache or a slow database.

How do I improve LCP?

  1. Find the LCP element in PageSpeed Insights (often the image or heading at the top of the page).
  2. Serve that image in the right format and size, without lazy loading.
  3. Cut the CSS and fonts that block rendering.
  4. Reduce the server response time.

Do images slow WordPress down?

They are often the heaviest part of the page. A photo uploaded straight from a recent phone or camera can be several megabytes while it’s displayed a few hundred pixels wide. WordPress generates intermediate sizes, but the theme may still use the original image.

  • Resize images to the size they’re actually shown at before uploading them.
  • Use WebP or AVIF, which are lighter at the same quality.
  • Declare width and height to avoid layout shifts.
  • Don’t lazy-load the main image at the top of the page.

How do I measure without fooling myself?

The PageSpeed Insights score changes from one test to the next because it’s calculated on a simulated device. The “field” data, collected from real Chrome visitors over 28 days, is more reliable for tracking progress. Always measure the same pages (home, a service page, an article) and write down the results before you change anything.

Where should I start?

  1. The server: if the response time is well over half a second, no front-end optimisation will be enough.
  2. The LCP element of your key pages.
  3. Third-party scripts: every tool you add (chat, pixel, map) has a cost.
  4. The theme and plugins: whatever loads on every page without being used.

What now?

What you can do today:

  • Run PageSpeed Insights on your three most visited pages and note the LCP.
  • Find the LCP element on each page.
  • List the third-party scripts that load and the ones you could do without.

Dig deeper: WordPress Speed Optimisation