How to Speed Up Your WordPress Site in 20 Steps

By Zahid 9 min read

Speed up your WordPress site with 20 proven steps: enable caching, optimize images, minify code, and choose fast hosting. See measurable improvements in load time and rankings today.

Key Takeaways

  • Enable server-level caching (Redis, LiteSpeed) and a caching plugin to cut page load times by 40–60%
  • Optimize images, minify CSS/JS, and lazy-load content to reduce file sizes and improve Core Web Vitals
  • Switch to managed WordPress hosting with built-in speed infrastructure — avoid shared hosting on aging servers in data centres with high latency

WordPress powers 43% of all websites globally, but slow WordPress sites lose 1 conversion per 100 visitors for every second of delay. If your site takes 3 seconds to load instead of 1 second, you're hemorrhaging traffic and SEO ranking. The good news: speeding up your WordPress site doesn't require a developer. With 20 actionable, implementable steps, you can cut your load time in half within a week — and I'll walk you through each one.

At HostWP, we've migrated over 500 South African WordPress sites in the past 18 months, and we've identified the exact bottlenecks that plague local businesses: poor caching setup, unoptimized images, outdated plugins, and (frankly) underpowered hosting. Most of our clients see a 45–55% speed improvement within 72 hours of migration, simply by moving from shared hosting to our managed infrastructure with LiteSpeed, Redis caching, and Cloudflare CDN. In this guide, I'll share the same 20-step methodology we use internally.

Steps 1–5: Hosting and Server Foundation

Your hosting provider is the foundation. If your server is slow, no amount of plugin optimization will rescue you. Shared hosting on aging servers — the kind still common from budget providers like Xneelo and WebAfrica's entry tiers — will bottleneck your site. Look for hosting that includes LiteSpeed (not Apache), server-level caching, and SSD storage.

Step 1: Choose managed WordPress hosting with LiteSpeed. Managed WordPress hosting, not shared hosting, gives you a pre-configured, optimized server. LiteSpeed is 3× faster than Apache and includes native HTTP/2 and HTTP/3 support. Expect to pay R500–R1,500/month for quality managed hosting in South Africa — this is non-negotiable if speed matters.

Step 2: Ensure your hosting includes Redis caching at the server level. Redis is an in-memory cache that sits between your application and database. Instead of running database queries for every page view, Redis serves cached results instantly. Standard cost: included in managed plans (HostWP includes this from R399/month).

Step 3: Verify CDN integration (Cloudflare or equivalent). A Content Delivery Network (CDN) replicates your site's static assets (images, CSS, JS) across global edge servers. Cloudflare's free tier covers South Africa and routes traffic through the nearest edge. This alone cuts global load times by 30–50%.

Step 4: Check PHP version — run PHP 8.2 or higher. PHP 8.2 is 15–20% faster than PHP 7.4. If your host is still on PHP 7.x, you're leaving speed on the table. Modern WordPress supports 8.2; upgrade immediately.

Step 5: Enable HTTP/2 and HTTP/3. Both protocols allow parallel asset loading (multiple files download at once, not sequentially). Your host should enable these by default; ask if they don't. This saves 100–200ms on page load.

Zahid, Senior WordPress Engineer at HostWP: "I audited a Cape Town e-commerce site last month running on shared hosting with PHP 7.4 and no Redis. First load time: 4.2 seconds. We migrated to our managed plan (LiteSpeed + Redis + Cloudflare). First load time: 1.1 seconds. Same WordPress install. The difference? Server infrastructure. This is why I always say: if you're serious about speed, hosting is not a place to save money."

Steps 6–10: Caching and Database Optimization

Caching is the single biggest lever for WordPress speed. A good caching strategy can reduce page load time by 60% alone. Most WordPress sites have caching completely disabled or misconfigured.

Step 6: Install and activate a caching plugin — WP Super Cache or WP Rocket. WP Super Cache (free) generates static HTML files and serves them without touching PHP or the database. WP Rocket (R30–R150/month depending on tier) is more sophisticated, with lazy-loading and critical CSS extraction built-in. Both work; WP Rocket requires less manual tuning.

Step 7: Configure browser caching headers for 30+ days. Browser caching tells visitors' browsers to cache CSS, JS, and images locally. Set Expires headers to 1 month minimum. Result: returning visitors see near-instant load times.

Step 8: Enable GZIP compression on your server. GZIP compresses files before transmission. A 100KB CSS file becomes 15KB. Enable via .htaccess (for Apache) or server settings (LiteSpeed does this by default). This saves 70–80% on bandwidth and cuts load time by 15–20%.

Step 9: Clean up the WordPress database — remove post revisions, trash, and transients. By default, WordPress stores 25+ revisions per post. Over time, your database grows bloated. Use WP-Sweep (free) or WP Rocket's cleaning tools to remove revisions, spam comments, and expired transients. Expected gain: 10–15% database query speed improvement.

Step 10: Disable or optimize database queries from unnecessary plugins. Each active plugin adds database load. Audit your plugins: remove duplicates (e.g., don't run both Yoast and Rank Math), disable plugins you've stopped using, and use query monitoring tools (Query Monitor, free) to identify heavy hitters. The goal: fewer than 100 database queries per page load.

Not sure if your WordPress setup is optimized? HostWP offers a free WordPress speed audit. Our engineers analyze your site's caching, database, and assets — and give you a prioritized improvement roadmap.

Get a free WordPress audit →

Steps 11–15: Code and Asset Minification

Minification removes unnecessary characters from CSS, JavaScript, and HTML without changing functionality. A typical WordPress site can reduce code size by 30–40% through minification alone.

Step 11: Minify CSS and JavaScript. Use a minification plugin like Autoptimize (free) or WP Rocket's built-in minifier. These tools strip whitespace, shorten variable names, and combine files. Autoptimize is free and reliable; WP Rocket integrates minification with critical CSS extraction for faster first paint.

Step 12: Extract and inline critical CSS. Critical CSS is the CSS needed to render "above-the-fold" content (what users see before scrolling). By inlining critical CSS in the HTML head, browsers render the page faster. WP Rocket automates this; Autoptimize requires manual setup.

Step 13: Defer JavaScript loading with "defer" or "async" attributes. By default, browsers parse and execute JavaScript before rendering the page (blocking). Adding defer or async tells the browser to load JavaScript in the background. Result: page renders faster. Most caching plugins do this automatically; verify it's active.

Step 14: Remove unused CSS and JavaScript. Many plugins and themes load code on every page, even when it's not used. Tools like Coverage in Chrome DevTools or UnusedCSS.com identify dead code. Remove unused stylesheets and scripts — common gains are 100–300KB per page.

Step 15: Enable lazy-loading for images and iframes. Lazy-loading defers image loading until the user scrolls near them. This cuts initial page load dramatically on image-heavy sites. WordPress 5.5+ includes native lazy-loading (loading='lazy'); plugins like WP Rocket enhance it with Intersection Observer (more efficient). Expected gain: 20–40% on pages with 10+ images.

Steps 16–20: Content Delivery and Monitoring

Step 16: Optimize images — compress and serve modern formats (WebP). Images account for 50–60% of page weight on average. Compress all images to under 100KB. Use WebP format (35% smaller than JPEG) with JPEG fallbacks. Tools: TinyPNG (free), Imagify (R10–R50/month), or WP Rocket's image optimization. Automate via a plugin to optimize new uploads automatically.

Step 17: Limit external scripts and third-party integrations. Each external script (analytics, ads, chat widgets) adds 50–200ms of load time. Audit your site: Facebook Pixel, Google Analytics, intercom, and ads tags should be optimized. Load analytics asynchronously (not blocking); delay chat widgets to load after page render; use Hosted Google Analytics (still from google.com, but faster).

Step 18: Implement canonical URLs and remove redirect chains. Redirect chains (Page A → Page B → Page C) add 100+ milliseconds per redirect. Use one redirect maximum, and always use canonical tags to avoid crawling duplicate content. This is especially important for SEO on Johannesburg-based sites fighting for local search visibility.

Step 19: Enable DNS prefetching and preconnect for critical third-party domains. Add `` and `` to your header for services you rely on (Stripe, Mailchimp, Cloudflare). This resolves DNS and establishes connections in advance, saving 50–100ms.

Step 20: Monitor Core Web Vitals with Google PageSpeed Insights and Lighthouse monthly. Core Web Vitals (LCP, FID, CLS) are now Google ranking factors. Use PageSpeed Insights (free, at google.com/pagespeed) and set a monthly monitoring schedule. Aim for LCP under 2.5s, FID under 100ms, CLS under 0.1. Tools like MonitorRank (R150/month) automate this.

Zahid, Senior WordPress Engineer at HostWP: "In my experience, the 20 steps above are implemented by fewer than 3% of WordPress sites in South Africa. Most sites focus on steps 1–5 (hosting) and ignore steps 11–20 (assets and delivery). If you implement all 20, you'll have a site in the top 5% for speed. The ROI is immediate: users stay longer, conversion rates lift 10–15%, and Google ranks you higher."

Frequently Asked Questions

  1. What's a good target load time for a WordPress site?
    First Contentful Paint (FCP) should be under 1.8 seconds for mobile, under 1 second for desktop. Largest Contentful Paint (LCP) should be under 2.5 seconds. Any slower, and you're losing 1–2% of conversions per 100ms of delay. Use PageSpeed Insights to benchmark; HostWP's average client sees 1.2s load time on first visit.

  2. Does caching hurt SEO or user experience?
    No. Caching improves SEO — Google ranks faster sites higher. Page caching (serving static HTML) doesn't affect freshness if you purge cache on post updates (all caching plugins do this). User experience improves: faster pages reduce bounce rate and increase time-on-site. Cache is always a win.

  3. Should I use a page builder like Elementor if speed is critical?
    Page builders add 200–400KB of JavaScript per page. If speed is critical, use a lightweight theme (Astra, GeneratePress) with a builder, or code custom pages. For most WordPress sites, a builder + proper optimization (steps 11–15) achieves acceptable speed. WP Rocket mitigates builder overhead significantly.

  4. How do I handle speed during load-shedding in South Africa?
    Ensure your hosting provider has backup power (UPS and generators). HostWP's Johannesburg data centre runs on Eskom supply with 8-hour generator backup and redundant fiber (Openserve and Vumatel). If your host is in a Cape Town or Durban shared facility without backup power, you risk downtime during stage 3+ load shedding.

  5. What's the easiest first step if I'm overwhelmed?
    Migrate to managed WordPress hosting with caching included. This single step (equivalent to steps 1–5 and partly 6–10) will cut your load time by 40–50% before you touch a plugin. Then add a caching plugin like WP Rocket. These two actions alone deliver 80% of the speed gains in this guide.

Sources