Web Development

How to Speed Up a Slow WordPress Website Step by Step

CLOUD INFRASTRUCTURE

The WordPress Speed Problem Is Mostly Self-Inflicted

I've audited hundreds of WordPress sites over the years. The pattern is almost always the same: a server that's perfectly capable of delivering fast pages, crippled by a combination of unoptimized images, a dozen active plugins, no caching, and a theme loading 800KB of CSS that's 90% unused.

The good news is that most of these are fixable without switching platforms or spending a lot of money. Here's the order I work through it.


Step 1: Measure First

Before touching anything, establish a baseline. Open PageSpeed Insights and run your homepage and two or three high-traffic pages.

Write down: - LCP (Largest Contentful Paint) — target under 2.5 seconds - INP (Interaction to Next Paint) — target under 200ms - CLS (Cumulative Layout Shift) — target under 0.1 - Overall performance score

These are the numbers that matter for SEO. The total score is secondary. Run the test three times and average the results — PageSpeed scores can vary by 5-10 points between runs depending on server load.


Step 2: Fix Images — This Is Usually the Biggest Win

Images are responsible for the majority of page weight on most WordPress sites. Three things to address:

Convert to WebP. JPEG and PNG files are 30–50% larger than WebP equivalents at the same visual quality. ShortPixel and Imagify both have WordPress plugins that convert on upload. The free tiers cover most small sites.

Resize images to display dimensions. Uploading a 4000x3000px photo from your phone and letting WordPress scale it down in CSS is wasteful. The browser still downloads the full-size file. Resize before uploading, or configure your plugin to auto-resize on upload.

Enable lazy loading. Images below the fold shouldn't load until the user scrolls to them. WordPress has had native lazy loading since version 5.5. Check that your theme isn't overriding it with loading="eager" attributes.

On a typical content-heavy site, image optimization alone often cuts 40–60% off page weight.


100 PERFORMANCE LCP: 0.8s FID: 12ms CLS: 0.01 TTFB: 45ms

Step 3: Install a Caching Plugin

Every WordPress page without caching is generated fresh from a database query on every visit. For a site with 1,000 visitors per day, that's 1,000 database queries for the same content.

A caching plugin generates static HTML files from your pages and serves those files directly, bypassing PHP and MySQL. The difference in response time is dramatic — typically 200-400ms for a cached page vs. 800-2000ms for an uncached one.

WP Rocket is the best option if you're willing to pay ($59/year). It handles page caching, browser caching, CSS/JS minification, lazy loading, and several other optimizations automatically.

W3 Total Cache (free) is powerful but configuration-heavy. Easy to misconfigure in ways that break things.

LiteSpeed Cache (free) is excellent if your host uses LiteSpeed servers — ask your hosting provider.

For the caching plugin to deliver maximum benefit, your hosting environment matters. Shared hosting on a congested server won't perform like managed WordPress hosting (WP Engine, Kinsta, Flywheel) even with identical caching configuration.


Step 4: Audit Your Plugins

WordPress plugins are the primary source of performance bloat beyond images. Open the Health Check & Troubleshooting plugin and time your page load with specific plugins deactivated to identify the culprits.

Common performance problems: - Page builder plugins (Elementor, Divi) load substantial JavaScript and CSS on every page, not just pages using them - Slider plugins are notorious for load overhead relative to their actual value - Multiple SEO plugins — you only need one - Social sharing plugins that load third-party scripts for every share button - Comment plugins loading libraries even on pages with comments disabled

The diagnostic approach: disable plugins one by one and check PageSpeed after each. Some plugins cause no perceptible impact; others shave seconds off load time when removed.


Step 5: Minify and Defer CSS/JS

CSS and JavaScript files contain whitespace, comments, and long variable names — all readable for humans, all unnecessary bytes for browsers.

Minification removes this unnecessary content, reducing file sizes 20–40%.

Deferring JavaScript tells the browser to continue rendering the page without waiting for scripts to load. Scripts that aren't needed for initial render can be deferred with the defer attribute, improving LCP significantly.

Most caching plugins (especially WP Rocket) handle both. If you're doing it manually, Autoptimize is a free option, though it requires more careful configuration to avoid breaking functionality.


MENU Dashboard ► Posts Pages Media Users Settings search content... 24 published posts 1.2K total visitors 10 Best SEO Tools...LIVE How to Choose Hosting...DRAFT

Step 6: Use a CDN

A Content Delivery Network stores copies of your static files (images, CSS, JS) on servers around the world and delivers them from the location closest to each visitor.

Cloudflare has a free tier that works well for WordPress sites and takes about 20 minutes to set up. Point your DNS to Cloudflare, configure basic caching rules, and your static assets are delivered from edge locations rather than your origin server.

This matters most if your audience is geographically distributed. A server in Dallas is 150ms away from New York and 280ms away from London. A CDN makes both receive similar response times.


Step 7: Evaluate Your Hosting

If you've done everything above and your site still loads slowly, the bottleneck is often the hosting infrastructure itself.

Shared hosting — where your site shares a server with hundreds of other sites — introduces variable performance that no amount of optimization can fully compensate for. If a neighbor site on your server has a traffic spike or runs a resource-intensive process, you're affected.

The upgrade path: managed WordPress hosting. WP Engine and Kinsta start around $25–$35/month and provide server environments tuned specifically for WordPress, with built-in caching, staging environments, and faster base infrastructure. For business sites where speed translates to revenue, the cost is usually justified.


Frequently Asked Questions

My PageSpeed score is 65 on mobile. What's a realistic target?

For WordPress without major technical optimizations, 65-75 is common. After implementing the steps above, reaching 85-90+ on mobile is achievable for most sites. 95+ requires more aggressive optimization and often a hosting upgrade.

Do I need a developer to do all this?

Steps 1-4 can be done by any WordPress admin. Minification and CDN setup are somewhat technical but well-documented. Hosting migration requires more technical confidence or brief developer help.

Will caching break anything?

It can, if misconfigured. The most common issue is logged-in users seeing cached pages meant for logged-out visitors. WP Rocket handles this correctly by default. If you use W3 Total Cache, test logged-in behavior carefully after enabling.


Marcus Reed is Senior Editor & Digital Strategist at High5Expert. He has audited and optimized WordPress sites across dozens of industries over the past 11 years.

Share this article
Marcus Reed
Senior Editor & Digital Strategist at High5Expert

Marcus is a digital strategist with over 11 years of experience helping businesses build and grow their online presence. A self-taught developer who started building sites for local shops in Orlando, he now consults on everything from technical SEO to full-stack web architecture. Every article he writes comes from hands-on client work — never from guesswork.

Discussion

9 comments
JR
James Rodriguez Apr 07, 2026

The plugin audit step changed everything for me. Disabled Elementor on my blog posts (was using it for landing pages only) and page load dropped from 4.1 to 1.8 seconds. Elementor was loading its full JS bundle on every page whether the page used it or not.

Marcus Reed
Marcus Reed — High5Expert Editor

That's the best compliment we can get! Glad it helped resolve the debate. Data-driven decisions are always the way to go.

SR
Steven Reed Question Apr 16, 2026

The image optimization point is undersold. I ran ShortPixel on a client site that had never been optimized — 847 images, average 340KB each. After WebP conversion and resize, average dropped to 67KB. Site went from 12MB to 2.3MB per page load.

Marcus Reed
Marcus Reed — High5Expert Editor

We review and update our guides regularly to keep them current. This one was last updated recently, and we plan to add new sections as the landscape evolves. Bookmark it and check back!

MR
Marcus Reed Mar 26, 2026

847 images averaging 340KB — that's a pattern I see constantly on sites that have been running a while without any image policy. The cost of not optimizing on upload compounds for years. ShortPixel's bulk optimization is one of those tools that immediately pays for itself.

Marcus Reed
Marcus Reed — High5Expert Editor

True

MR
Marcus Reed Mar 26, 2026

Elementor loading its full asset bundle on every page regardless of usage is one of the most common WordPress performance problems I see. The fix is usually either using Elementor's own asset loading optimization settings, or using a different tool for content pages and saving Elementor only for the pages that actually use it.

Marcus Reed
Marcus Reed — High5Expert Editor

True

MT
Michael Thompson Question Apr 10, 2026

WP Rocket has a setting called 'Load JavaScript Deferred' that I was afraid to enable because I thought it would break things. Tested it on a staging site first. It broke one slider plugin, fixed that, then enabled it on production. LCP went from 3.8s to 1.9s. Worth the testing overhead.

Marcus Reed
Marcus Reed — High5Expert Editor

Thank you! We do offer consulting and implementation services. Feel free to reach out through our contact page and we can discuss your specific needs.

AT
Andrew Taylor Question Apr 13, 2026

Question: I'm on shared hosting at about $8/month. My PageSpeed score is 44 on mobile. Is it worth trying all these optimization steps first, or should I just move to managed hosting immediately?

Marcus Reed
Marcus Reed — High5Expert Editor

Great question! You can bookmark our blog page — we publish new content regularly. We're working on a newsletter feature that will be available soon!

KW
Kevin Wright Question Apr 22, 2026

For the shared hosting question — I'd try steps 2 and 3 first (image optimization and caching). If you go from 44 to 70+, shared hosting might be sufficient for your traffic. If you're still under 60 after those steps, managed hosting will make a bigger difference than any plugin tweak.

MR
Marcus Reed Mar 26, 2026

Kevin's answer below is the right framework. A 44 score on shared hosting is low, but the ceiling varies by server. Do images first — that's free and often the biggest gain. Add a caching plugin. If you're still under 65 after those two changes, the bottleneck is likely the server, and managed hosting will solve what optimization can't.

Marcus Reed
Marcus Reed — High5Expert Editor

True

PM
Patrick Murphy Apr 19, 2026

Cloudflare's free tier combined with a caching plugin is what I recommend to everyone now. Added Cloudflare to three client sites this month and saw 30-40% reduction in TTFB across the board. Takes 15 minutes to set up and costs nothing.