WordPress Speed Optimization Checklist for Small Business Sites
A slow website doesn’t just frustrate visitors — it costs you money. Google uses page speed as a ranking factor, and studies consistently show that every extra second of load time reduces conversions by 4–8%. For a small business site, that is real revenue walking out the door.
The good news: most WordPress speed problems are fixable. This checklist covers the ten highest-impact changes you can make, in roughly the order you should tackle them.
The 10-Step WordPress Speed Checklist
1. Fix Your Hosting First
No amount of optimization will save a site on poor shared hosting. If your server takes 800ms just to respond before a single byte reaches the browser, every other fix you make is fighting uphill.
What to look for in a fast WordPress host:
- NVMe SSD storage (not spinning disk or SATA SSD)
- Nginx web server (not Apache on shared resources)
- PHP 8.2 or 8.3 (never 7.x)
- Server in or near your primary audience’s country
If your Time to First Byte (TTFB) is above 500ms, a hosting upgrade will do more than any plugin.
2. Enable Server-Side Page Caching
WordPress builds every page by running PHP and querying the database. Without caching, that happens on every single visit. Page caching saves the finished HTML and serves it directly — skipping PHP and the database entirely for repeat requests.
The fastest approach is server-level FastCGI caching (configured in Nginx). This is what managed WordPress hosts do by default and what we set up on every Trellis-hosted site. If you are on shared hosting, a plugin like WP Rocket or W3 Total Cache is the next best option.
3. Add a Redis Object Cache
Even with page caching active, WordPress makes database queries for logged-in users, WooCommerce sessions, and dynamic pages that bypass the page cache. Redis stores the results of those queries in memory so they don’t hit the database again.
On a busy WooCommerce site, Redis can cut database load by 60–70%. Your host needs to support Redis — it is not available on most shared plans. If you run WooCommerce, it is worth switching to hosting that does.
4. Optimize Every Image
Images are the single biggest contributor to page weight on most small business sites. Three things to check:
- Format: Convert JPEG and PNG to WebP. WebP is typically 25–35% smaller with the same visual quality. WordPress 6.1+ generates WebP automatically if you enable it.
- Dimensions: Upload images at the size they will actually display — not 3000px wide for a 400px thumbnail slot.
- Lazy loading: Images below the fold do not need to load immediately. WordPress adds
loading="lazy"automatically since version 5.5 — confirm your theme is not overriding it.
Your hero image (the first image a visitor sees) is your Largest Contentful Paint (LCP) element. That one should load eagerly — do not lazy-load it.
5. Choose a Lightweight Theme
Heavy page builder themes (Divi, Avada, Elementor-based themes) load 300–600 KB of CSS and JavaScript before any of your content appears. A clean block theme or a well-coded custom theme loads a fraction of that.
If you are not ready to switch themes, audit what your current theme loads with Chrome DevTools (Network tab, filter by JS and CSS). Remove or defer anything that is not needed on the initial page view.
6. Reduce and Defer JavaScript
JavaScript blocks the browser from rendering your page until it has been downloaded, parsed, and executed. Common culprits on small business sites:
- Google Analytics or Tag Manager loaded synchronously in
<head> - Social media sharing widgets that load full SDKs
- Live chat scripts that load immediately even though most visitors never open the chat
- Contact form plugins that load scripts on every page, not just the contact page
Mark non-critical scripts with defer or async. WP Rocket’s “Delay JavaScript Execution” feature handles this automatically for common scripts.
7. Clean Up Your Plugin List
Every active plugin adds PHP execution time, database queries, and potentially CSS/JS to your pages. Audit your plugin list and remove anything you do not actively use.
A useful rule of thumb: if you installed a plugin to solve a one-off problem and have not touched it since, it probably has a lighter-weight alternative or can be replaced with a few lines of code in your theme’s functions.php.
Plugin bloat is one of the most common issues we find when auditing client sites. Twenty plugins doing overlapping jobs is worse than five well-chosen ones.
8. Update PHP to 8.2 or 8.3
PHP 8.3 executes WordPress code roughly 3× faster than PHP 7.4, which many sites still run. This is one of the easiest wins available — it is usually a one-click change in your hosting control panel.
Before upgrading, run a staging test. Most modern plugins are PHP 8.x compatible, but older plugins or custom code may need a small fix. Never update PHP directly on a live site.
9. Optimise Your Database
WordPress accumulates database weight over time: thousands of post revisions, expired transients, orphaned metadata, and spam comments. This bloats table size and slows queries.
- Limit post revisions in
wp-config.php:define('WP_POST_REVISIONS', 5); - Delete expired transients with WP-CLI:
wp transient delete --expired - Run
OPTIMIZE TABLEon large tables after a cleanup
A clogged wp_options table with large autoloaded data is a silent performance killer. Run wp option list --autoload=yes --orderby=size --order=desc to see what is autoloading on every page load.
10. Fix Your Core Web Vitals
Core Web Vitals are Google’s three user experience metrics that directly influence search rankings. For a WordPress small business site, the most common failures are:
- LCP (Largest Contentful Paint) above 2.5s — usually caused by an unoptimised hero image or slow server response. Fix: compress the hero image, add
fetchpriority="high"to it, and improve TTFB with better hosting or caching. - CLS (Cumulative Layout Shift) above 0.1 — usually caused by images without explicit width/height attributes, late-loading fonts, or ads that push content around. Fix: add dimensions to every image, use
font-display: swap, and reserve space for any dynamic content. - INP (Interaction to Next Paint) above 200ms — usually caused by heavy JavaScript blocking the main thread. Fix: defer non-critical JS, reduce plugin bloat, and avoid long tasks over 50ms.
Check your current scores at PageSpeed Insights and in Google Search Console under Core Web Vitals. GSC gives you field data (real user measurements), which is what Google actually uses for ranking.
How Long Does This Take?
Done properly, a full speed optimisation pass takes 4–8 hours for a typical small business site. The breakdown:
- Hosting audit + migration (if needed): 2–3 hours
- Caching + Redis setup: 1 hour
- Image optimisation: 30–60 minutes depending on media library size
- JS/CSS audit and defer rules: 1–2 hours
- Core Web Vitals testing and fine-tuning: 1 hour
If you have a WooCommerce store, add extra time for checkout and product page optimisation — those have unique performance constraints.
What Results Should You Expect?
On a typical small business WordPress site that has not been optimised, working through this checklist produces:
- TTFB: from 600–1200ms down to under 200ms
- PageSpeed Insights mobile score: from 40–60 up to 80–95
- LCP: from 4–6s down to under 2.5s (often under 1.5s)
- Total page weight: from 3–5 MB down to under 1 MB
These are not hypothetical numbers — they are what we see on real client sites. See our Jochen Schweizer case study for a concrete before-and-after example.
Want Results Like These for Your Site?
We provide WordPress speed optimization for SMEs and white-label performance services for agencies. Our typical results: 90+ PageSpeed scores on both mobile and desktop, with measurable improvements to Core Web Vitals and conversion rates.
- Core Web Vitals optimization (LCP, CLS, INP)
- WooCommerce performance tuning
- Server-side optimization (Nginx, Trellis)
- Image optimization and lazy loading