Tech Tips, Web Development 10:00 am

Performance Optimization: Making WordPress Fly

From 8-second load times to under 1 second. Real optimization techniques that actually work.

5 min read

I’ve been managing my own server for 15 years. Linode box, cPanel, LiteSpeed, 19 client sites. Not 50+, not some fabricated enterprise fleet - 19 real sites belonging to real people who pay me real money and call me when something is slow. And after a decade and a half of keeping WordPress sites fast on a server I’m personally responsible for, I have opinions about performance optimization that come from experience, not from reading “Top 10 Speed Tips” articles.

The First Thing Nobody Wants to Hear

Your hosting matters more than anything else you’re going to do. Full stop. I’ve seen sites go from a 6-second load time to under 2 seconds just by moving off shared hosting. No other changes. Same theme, same plugins, same unoptimized images. Just better hosting.

I run LiteSpeed on my Linode server, and it makes a massive difference for WordPress specifically. LiteSpeed has a WordPress cache plugin (LSCache) that’s genuinely excellent and free - it handles page caching, object caching, image optimization, CSS/JS minification, and CDN integration in a single plugin. Most of my clients don’t need anything else for caching.

If you’re on shared hosting with 64MB of memory and you’re wondering why your WooCommerce site is slow, I can save you hours of debugging: it’s the hosting. Move first, optimize second.

PHP Version: The Free Speed Upgrade

Upgrading from PHP 7.4 to PHP 8.2+ is often the single biggest performance improvement you can make, and it takes about 30 seconds in cPanel. PHP 8 is dramatically faster than PHP 7. Like, measurably, meaningfully faster on every request.

The catch: some plugins don’t support PHP 8. But in my experience managing 19 sites, this is increasingly rare. Test in staging (or just check the plugin’s support page), flip the switch, and enjoy free speed.

The Database: Where Speed Goes to Die

WordPress databases accumulate garbage like a junk drawer. Post revisions, spam comments, transient options, orphaned metadata - it all adds up, and it all makes queries slower.

Here’s what I actually do on client sites:

# Limit revisions going forward
# In wp-config.php:
define('WP_POST_REVISIONS', 5);

# Clean up existing garbage via WP-CLI
wp post delete $(wp post list --post_type=revision --format=ids)
wp comment delete $(wp comment list --status=spam --format=ids)
wp transient delete --all
wp db optimize

On one client site, cleaning up 14,000 post revisions dropped the average query time by 40%. Fourteen thousand revisions. For a site with about 200 posts. WordPress was saving every single draft save for years.

Object Caching: The Thing Most People Skip

Page caching gets all the attention, but object caching is what makes the backend fast. Redis or Memcached stores the results of database queries in memory so WordPress doesn’t have to hit the database for every request.

On my Linode server, I run Redis. The difference on the admin side is dramatic - the dashboard loads noticeably faster, plugin settings pages are snappier, and WooCommerce admin stops feeling like it’s running through molasses.

If your host supports Redis, enable it. If they don’t, consider that a reason to switch hosts.

Images: The Obvious One That People Still Mess Up

Images are usually 60-80% of a page’s total weight. This is not news. And yet I still take on client sites serving 4MB hero images because someone uploaded a photo straight from their phone.

The fix is boring but effective:

  • WebP conversion: 25-35% smaller than JPEG at identical quality. WordPress supports it natively now, and LiteSpeed Cache can auto-convert existing images.
  • Responsive images: WordPress generates srcset attributes automatically. Make sure your theme actually uses them and isn’t forcing full-size images everywhere.
  • Lazy loading: Native loading="lazy" on images below the fold. WordPress adds this by default since 5.5, but some themes override it.
  • Compression: ShortPixel or Imagify on upload. Set it and forget it. Your clients will never notice the quality difference.

The Plugin Audit

Every plugin adds overhead. Some add a lot of overhead. The approach I take with client sites:

Install Query Monitor. Load the homepage. Look at the “Queries by Component” section. Find the plugins making the most database queries. Ask yourself: does this site actually need this plugin?

Common offenders I’ve removed from client sites:

  • Social sharing plugins that load 200KB of JavaScript to display four buttons. Replace with static SVG links.
  • Slider plugins that load jQuery, their own JavaScript framework, and a CSS file on every page even when the slider only appears on the homepage.
  • “All-in-one” SEO plugins that do 47 things when the client only needs meta titles and a sitemap. Swap for something lighter.
  • Page builders on simple sites. If the site has 5 pages and they’re mostly text, a page builder is overhead with no benefit.

LiteSpeed-Specific Wins

Since I run LiteSpeed (and if you’re on your own server, you should seriously consider it), here are the optimizations that have the most impact:

  • LSCache page caching: Serves static HTML for logged-out visitors. This alone handles most performance needs.
  • Browser cache: LiteSpeed’s built-in browser cache headers are more reliable than plugin-based solutions.
  • QUIC.cloud CDN: LiteSpeed’s own CDN integrates natively. The free tier is enough for most small sites.
  • Image optimization: LSCache can handle WebP conversion, lazy loading, and responsive placeholders without a separate image plugin.

The Monitoring Part Everyone Forgets

Optimization isn’t a one-time thing. Clients add plugins. Content grows. That WooCommerce store that loaded in 1.5 seconds with 50 products might be struggling with 500.

I check Core Web Vitals in Google Search Console for all my client sites monthly. When something degrades, I catch it before the client notices. This is part of why I can include maintenance in my $20/month hosting - catching problems early is way cheaper than fixing them after they’ve been festering for six months.

The 80/20 Priority List

If you’re staring at a slow WordPress site and don’t know where to start, do these things in this order:

  1. Upgrade PHP to 8.2+. Five minutes, biggest single improvement.
  2. Install a caching plugin. LiteSpeed Cache if you’re on LiteSpeed, WP Rocket if you’re not.
  3. Enable object caching. Redis if available.
  4. Optimize images. WebP conversion + compression on existing images.
  5. Audit plugins. Remove or replace the heavy ones.
  6. Clean the database. Revisions, spam, transients.

Those six steps will fix 90% of WordPress performance problems. The other 10% is stuff like critical CSS inlining, JavaScript defer strategies, and CDN configuration - important, but not where you start.

WordPress performance isn’t magic. It’s maintenance. It’s knowing your server, knowing your stack, and caring enough to actually look at the numbers instead of guessing. I’ve been doing it for 15 years, and the fundamentals haven’t changed nearly as much as the framework-of-the-month crowd would have you believe.