Most WordPress speed advice is a list of plugins. This is the actual process — the same order of operations I run on client sites, where the typical result is a 6-second load dropping to under 2. Work through it top to bottom, because the order matters: fixing caching before fixing images is polishing a car with a flat tire.
Speed is not a plugin you install. It is weight you remove.
Step 1: Measure before you touch anything
Run your homepage and your most important inner page through PageSpeed Insights and note three numbers: LCP (how fast the main content appears), CLS (how much the layout jumps), and total page weight. These are your before photos. Without them, you cannot tell which fixes worked — and half of them won’t apply to your site.
Step 2: Fix images — the biggest win on 90% of sites
Images are usually 60–80% of a slow page’s weight. Three fixes, in order:
Serve modern formats
Convert JPG and PNG to WebP. The quality is indistinguishable and files shrink 25–40%. WordPress supports WebP natively now; older uploads need converting.
Size images to their containers
A 2400px photo displayed at 400px wide wastes every byte past 400. Set proper sizes and let WordPress’s srcset serve smaller versions to phones.
Lazy-load below the fold — and only below
Everything the visitor can’t see yet should wait. But never lazy-load your hero image; that delays LCP, which is the score Google weighs most.
Step 3: Cut the code you’re not using
Every plugin loads its CSS and JavaScript on every page by default, whether the page uses it or not. Audit your plugin list ruthlessly — deactivate anything you added “to test” and never removed. Then look at your theme: page builders like Elementor ship megabytes of CSS for widgets you never touch. If you’re stuck on a builder, enable its optimized asset loading; if you’re rebuilding, a hand-coded theme skips the problem entirely.
Step 4: Get caching right — once
Caching means the server hands visitors a saved copy of the page instead of rebuilding it every time. You need exactly one caching layer, configured properly. On LiteSpeed servers (most Hostinger plans), that’s LiteSpeed Cache — it works at the server level and outperforms plugin-only caching. Stacking a second caching plugin on top doesn’t double the speed; it causes conflicts. Enable page caching, browser caching, and CSS/JS minification, then stop.
Step 5: Fonts and third-party scripts
Each font family and weight is a download that blocks text from rendering. Two families, three weights total, is plenty. Preload your primary font and use font-display: swap so text shows immediately. Then open your site with the network tab and look at third-party scripts — chat widgets, tracking pixels, embedded maps. Each one is someone else’s slow server on your page. Keep the ones earning their weight; delay or drop the rest.
Step 6: Clean the database
Years of post revisions, expired transients, and autoloaded options from deleted plugins add drag to every page WordPress builds. Clean revisions and transients, and check your autoloaded data size — over ~1MB of autoloaded options is a red flag worth investigating.
Step 7: Know when it’s the hosting
If your TTFB (time to first byte) stays above 800ms after all of the above, the server itself is the bottleneck and no amount of optimization on top will fix it. Good LiteSpeed hosting starts cheap; moving is a smaller job than people fear.
The maintenance reality
Speed decays. New plugins, new images, new tracking scripts — six months of normal use undoes an optimization pass. Re-measure quarterly, or put the site on monthly maintenance where performance checks are part of the routine.
If you’d rather hand the whole checklist to someone who does this weekly: my WordPress speed optimization service starts at $199 with a measured before/after report.