Most "speed up WordPress" advice starts and ends with "install a caching plugin." That helps, but it rarely fixes a genuinely slow site on its own. Here's what actually moves the needle.
1. Fix the hosting first
No amount of optimisation compensates for underpowered shared hosting. If your time-to-first-byte is slow before any plugins even load, that's where to start.
2. Audit your plugins, not just your cache
Every active plugin adds database queries and script weight. A lean site with 10 well-chosen plugins will consistently outperform a bloated one with 40, cache or no cache.
3. Serve properly sized, modern-format images
A 4000px photo displayed at 400px wide is pure waste. Resize at upload time and serve WebP where you can.
4. Defer what doesn't need to run immediately
Chat widgets, analytics scripts, and non-critical CSS can almost always be deferred or loaded after the main content without visitors noticing.
5. Use a real caching layer
Page caching plus a CDN handles the traffic spikes and repeat visits that otherwise hit your server directly every time.
6. Clean the database periodically
Years of post revisions, spam comments, and orphaned metadata slow down every query on the site — a routine cleanup is often an instant, measurable win.
7. Measure, don't guess
Run a real PageSpeed or WebPageTest audit before and after each change. Optimising blind wastes time on fixes that don't matter for your specific site.