WordPress Speed Optimization Checklist for Agencies

3D Google crawler robot next to a stack of web pages and a magnifying glass

A slow site costs the client visitors and leads. It costs the agency too, in support tickets and in awkward calls about why the site “feels slow”. Most WordPress sites can get a lot faster, but only if you work through the causes in a sensible order instead of installing three optimization plugins and hoping.

The list is in order of impact. Measure first, then work down from the top.

Before you touch anything: measure

Run PageSpeed Insights on mobile for the homepage and two or three key templates. Open Search Console and note the Core Web Vitals field data. Write down page weight, request count and server response time.

Then take a backup and move to staging.

Without these numbers you can’t show the client what changed. If the metrics themselves are unclear, our guide to Core Web Vitals for WordPress explains them.

1. Hosting and server

Start at the bottom of the stack. Is the site on a PHP version its plugins support, and a recent one? What’s the server response time (TTFB)? If it’s slow on every request, no amount of caching will fully hide it.

Check that the host offers HTTP/2 or HTTP/3, compression and enough resources for the traffic. For sites the business depends on, managed WordPress hosting is often worth the extra cost.

2. Caching

  • Full-page caching, at server level or with one reliable plugin.
  • Object caching (Redis, for example) on dynamic sites and WooCommerce.
  • Browser caching headers for static files.
  • On stores, keep cart, checkout and account pages out of the page cache.

3. CDN

Put static assets on a CDN. If visitors come from many regions, look at full-page caching at the edge as well.

4. Images

Images are usually where the biggest easy wins are. Convert to WebP or AVIF, serve them at the size they’re displayed with srcset, and lazy-load everything below the fold. Don’t lazy-load the hero image, because it delays the main thing the visitor came to see. Set width and height on every image so the layout doesn’t jump.

5. Fonts

Load only the families and weights the design actually uses. Self-host the files or preconnect to the provider, use font-display: swap, and preload the one or two font files the first screen needs.

6. CSS and JavaScript

  • Remove unused CSS and JavaScript where you can.
  • Defer or delay scripts that aren’t needed for the first screen.
  • Load plugin assets only on pages that use them. A form plugin has no business loading on the blog.
  • Hold back chat widgets, heatmaps and similar third-party scripts until the visitor interacts.

7. Plugins and theme

Delete inactive plugins and question the active ones. A heavy plugin used for one small feature can often be replaced with a lighter one or a few lines of custom code.

Sometimes the theme or page builder is the real problem. When it is, tuning gets you only so far, and a lightweight custom theme is the long-term fix.

8. Database

Clear out old revisions, spam comments, expired transients and data left behind by plugins you removed years ago. Look at autoloaded options: an old plugin can leave megabytes there that load on every request. On WooCommerce stores with big catalogs, find the slow queries and fix them.

9. Embeds and tracking

Swap embedded videos for a lightweight preview that loads the player on click. Open Google Tag Manager and remove the tags nobody can explain.

10. Measure again

Rerun the same tests on the same pages. Check field data in Search Console again after a few weeks, because lab scores and real-user data don’t always move together. Send the client a short before-and-after report.

Keeping it fast

Sites get slower again as content, plugins and scripts pile up. A monthly speed check in your care plans catches that early.

Handing it over

If you’d rather not work through the list yourself, our WordPress speed optimization service does it for you: changes go to staging first, and the before-and-after report carries your logo.

Request a speed audit for a client site.