Skip to content
WordPress 3 min read

The WordPress Speed Checklist I Run on Every Build

A practical, ordered checklist for getting a WordPress site to load fast — the things that actually move Core Web Vitals, and the ones that just feel productive.

By Muhammad Shahbaz

A fast-loading WordPress tools website

Most “speed up WordPress” advice is a list of plugins. Plugins are the last step, not the first one. Here is the order I actually work in, after five years and forty-odd builds.

1. Fix hosting before anything else

You cannot optimise your way out of bad hosting. If your server’s time to first byte is 800ms, every other improvement is decoration. Check TTFB first — if it is above roughly 400ms on a cached page, the host is the problem and no plugin will fix it.

Shared hosting at the bottom of the market is the single most common cause of slow WordPress sites I am asked to diagnose.

2. Pick a theme that is not fighting you

A page builder that ships 400KB of CSS on every page has already cost you more than caching will give back. I have rebuilt sites where removing the builder halved the load time before I changed anything else.

If the site is already built on a heavy builder and a rebuild is not on the table, the next best thing is aggressively removing the modules you are not using.

3. Images, properly

This is where most of the weight is, and it is the easiest win:

  • Serve WebP or AVIF, with a fallback
  • Size images to their display size — a 3000px hero scaled to 1200px is wasting two thirds of its bytes
  • Set explicit width and height so the browser reserves space (this is most of your CLS score)
  • Lazy-load everything below the fold, and nothing above it

That last point matters more than people expect. Lazy-loading your hero image delays your Largest Contentful Paint, which is the opposite of what you wanted.

4. Cut the request count

Every plugin that enqueues its own stylesheet and script on every page is a tax. Audit what is actually loading:

  • Remove plugins you are not using — deactivating is not enough
  • Dequeue assets on pages that do not need them (a contact form script does not belong on your blog posts)
  • Consolidate anything you genuinely need

5. Then cache

Now caching helps, because you are caching a light page rather than a heavy one. Page caching, object caching if your host supports it, and a CDN in front.

6. Fonts

Self-host them or preconnect, subset to the characters you use, and always set font-display: swap. A blocking font request is a blank page for however long it takes to arrive.

What I skip

I do not chase a perfect PageSpeed score. Past a point you are optimising for a testing tool rather than a person. The targets that matter are the field data ones: LCP under 2.5 seconds, INP under 200ms, CLS under 0.1. Hit those and stop.

The order matters

If you do these out of order, you will spend a lot of effort on the last three steps while the first two quietly undo your work. Host, theme, images, requests, cache, fonts. In that order.

Tags

  • WordPress
  • Page Speed
  • Core Web Vitals
  • Technical SEO

Together, we can build and expand it

Whether you are a small business or an established company, I can help you grow your digital presence with a plan that survives contact with reality.