Performance

The WordPress Performance Checklist: 12 Steps From Slow to Sub-Second

Why Most WordPress Speed Guides Are Backwards

Most WordPress speed guides tell you to install a caching plugin first. That is not wrong, but it is backwards. If your hosting environment is not configured correctly, caching is a band-aid over a structural problem. This checklist is ordered by impact-to-effort ratio.

Step 1: Choose the Right Hosting (Impact: Enormous)

No amount of plugin optimisation overcomes a slow server. If your Time to First Byte is above 600ms, your host is the problem. Target TTFB under 200ms. Test yours at tools.pingdom.com. Best TTFB in our testing: Cloudways at 89ms median, Hostinger at 147ms, SiteGround at 183ms.

Step 2: Use PHP 8.1 or Higher (Impact: High)

PHP 8.1 is roughly twice as fast as PHP 7.4 for WordPress. This is a free zero-risk upgrade on any modern host. In cPanel, go to Select PHP Version and switch to 8.1 or higher.

Step 3: Implement Server-Side Caching (Impact: Very High)

Page caching stores rendered HTML and serves it directly to visitors, bypassing PHP and database queries. For a page that takes 400ms to generate dynamically, caching reduces serve time to 5–20ms. If your host includes server-level caching, use it. Otherwise WP Rocket is the best caching plugin.

Step 4: Use a CDN (Impact: High for International Traffic)

A CDN stores copies of your static files on servers distributed globally. Cloudflare’s free plan is the easiest entry point — enable it by changing your domain’s nameservers to Cloudflare’s. The performance improvement for visitors far from your server is dramatic.

Step 5: Optimise Your Images (Impact: High)

  • Format: Use WebP instead of JPEG or PNG — 25–34% smaller at equivalent quality.
  • Size: Never upload a 4,000px image for an 800px column. Resize before uploading.
  • Lazy loading: WordPress has native lazy loading built in — ensure no plugin is disabling it.

Step 6: Minimise Render-Blocking Resources (Impact: Medium-High)

CSS and JavaScript files that load in the document head block the browser from rendering the page. Defer all non-critical JavaScript. WP Rocket and LiteSpeed Cache both handle this automatically.

Step 7: Reduce Your Plugin Count (Impact: Variable)

Use the Plugin Performance Profiler to measure how much time each plugin adds to your page load. Plugins adding more than 50ms should be candidates for replacement or removal.

Step 8: Optimise Your Database (Impact: Medium)

WordPress databases accumulate post revisions, spam comments, and expired transients. WP-Optimize cleans these automatically on a schedule. A bloated database can add 50–200ms to every page load.

Step 9: Use a Lightweight Theme (Impact: Medium)

GeneratePress and Kadence are the two best lightweight themes for WordPress — both score consistently above 95 on PageSpeed Insights on clean installations.

Step 10: Configure Browser Caching (Impact: Low-Medium)

Browser caching tells returning visitors’ browsers to store your static files locally. Set cache-control headers for at least 1 year on images, fonts, CSS, and JavaScript. Most caching plugins handle this automatically.

Step 11: Enable HTTP/2 or HTTP/3 (Impact: Low-Medium)

HTTP/2 allows multiple files to download simultaneously over a single connection. Most modern hosts support HTTP/2 by default. Cloudflare enables HTTP/3 automatically. Verify via browser DevTools Network tab — look for h2 or h3 in the Protocol column.

Step 12: Monitor and Iterate (Ongoing)

Install Google Search Console and check the Core Web Vitals report monthly. Speed regressions are easier to catch early — a plugin update adding 300ms is much easier to roll back immediately than to diagnose three months later.

zavallcode@gmail.com
Senior analyst and independent reviewer at HostRank. Testing servers since 2017.