If you want to know how to speed up a WordPress website, work in this order: measure where the time is going, fix the server response (hosting, PHP and caching), shrink your images, cut heavy plugins and scripts, then fine-tune fonts, CSS and JavaScript. Most slow WordPress sites have two or three big problems rather than dozens of small ones, so measuring first stops you wasting hours on tweaks that don’t matter.
This guide walks through each step, what to look for, and the tools to use, without assuming you’re a developer.
Step 1: Measure before you change anything
Speed is not one number. Use a couple of tools and record a baseline before you touch anything.
- PageSpeed Insights shows lab results for a single page and, if your site has enough traffic, real-user data from Chrome users for that page and your whole origin.
- Google Search Console has a Core Web Vitals report that groups your URLs into good, needs improvement and poor, based on real-user data.
- Your browser’s developer tools (the Network and Performance panels) show exactly which files load and how long each takes.
Focus on Google’s Core Web Vitals, described in Google Search Central’s documentation:
- Largest Contentful Paint (LCP): how quickly the main content, often a hero image or headline, appears.
- Interaction to Next Paint (INP): how quickly the page responds when someone taps or clicks.
- Cumulative Layout Shift (CLS): how much the layout jumps around while loading.
Test your home page, a typical blog post, a key landing page and, for stores, a product page and the cart. Different templates often have different problems.
Step 2: Fix the server response first
If the server takes a long time to send the first byte of the page, nothing else you do will fully fix it. Look for “server response time” or “Time to First Byte” in your test results.
Common causes and fixes:
- Underpowered or overcrowded hosting. Cheap shared hosting often struggles once a site has real traffic or a heavy page builder. Moving to hosting tuned for WordPress can make a large difference; our guide to managed WordPress hosting explains what to look for.
- An old PHP version. Newer supported PHP versions generally run WordPress faster. Check your version in Tools > Site Health > Info > Server.
- No object cache. WordPress repeats many database queries on every page. A persistent object cache such as Redis stores those results in memory. Your host needs to support it.
- A bloated database. Years of post revisions, expired transients, spam comments and leftover tables from deleted plugins slow queries down. Clean them up carefully, after a backup.
Step 3: Turn on page caching
Without page caching, WordPress builds every page from scratch for every visitor: running PHP, querying the database and assembling HTML. Page caching saves the finished HTML and serves it straight away.
You can add page caching in three places:
- At the server level, for example Nginx FastCGI cache or a host’s built-in cache. This is usually the fastest option.
- With a caching plugin, if your host doesn’t provide server caching.
- At the edge, with a CDN such as Cloudflare caching HTML close to visitors.
Use only one page caching layer you understand well, plus a CDN for static files. Stacking two caching plugins causes conflicts. Make sure carts, checkouts, account pages and logged-in users are excluded from the cache.
Step 4: Optimise images
Images are often the heaviest part of a page and frequently the LCP element.
- Resize before uploading. Don’t upload a photo straight from a camera when it will display at a fraction of that width.
- Use modern formats such as WebP or AVIF, either through an image optimisation plugin, your CDN or your host.
- Compress images to a sensible quality level; most people can’t tell the difference.
- Let below-the-fold images lazy-load. WordPress adds lazy loading to many images by default, but make sure your hero image is not lazy-loaded, because that delays LCP.
- Set width and height on images so the browser reserves space for them, which prevents layout shift.
Step 5: Cut plugin and theme weight
Every plugin can add CSS, JavaScript, database queries or external requests. The number of plugins matters less than what each one loads.
- Review your plugin list and remove anything you don’t use or that duplicates another plugin’s feature.
- Check which plugins load files on every page when they’re only needed on one, such as a form plugin loading scripts site-wide.
- Be wary of heavy page builders and multipurpose themes that load large libraries for features you don’t use. A lighter theme or the block editor can be dramatically leaner.
- Replace sliders, animated counters and similar effects with static content where they don’t earn their weight.
Step 6: Tame CSS, JavaScript and fonts
Once the big items are fixed, these finer adjustments can help LCP and INP:
- Defer or delay non-critical JavaScript, so it doesn’t block the page from rendering. Test carefully; deferring the wrong script can break menus or forms.
- Remove unused CSS where your optimisation tool supports it safely.
- Limit web fonts. Use fewer font families and weights, host them locally if possible, and use font-display settings so text appears quickly.
- Audit third-party scripts. Chat widgets, heatmaps, ad pixels and embedded videos can be the slowest things on a page. Keep only the ones you actively use, and load video embeds only when clicked.
How to speed up a WordPress website without breaking it
Speed work touches caching, scripts and the database, so it can break things if you rush.
- Take a full backup before changing caching, optimisation settings or the database.
- Make one change at a time and retest, so you know which change helped or hurt.
- Test on mobile as well as desktop, and in a private window so you see what a new visitor sees.
- Check forms, checkout, search and logins after every optimisation change.
- Remember that real-user data in Search Console updates gradually, so improvements take a while to show there.
If you want to see what this process looks like on a real project, our Durga Steel website speed case study shows a site built with Core Web Vitals in mind.
Common speed mistakes
- Chasing a perfect PageSpeed score instead of fixing what real visitors experience.
- Installing several optimisation plugins that fight each other.
- Optimising images but leaving a slow server untouched.
- Caching pages that should never be cached, such as carts and account pages.
- Adding new tracking scripts without checking their impact.
When to get help
Knowing how to speed up a WordPress website is half the job; the other half is having a server set up to make it fast. If your site is still slow after the basics, the bottleneck is often the hosting itself. Our fast WordPress hosting runs on Nginx with page caching, a Redis object cache and Cloudflare in front, so the server stops being the problem and you can focus on your content.
FAQ
What is the fastest way to speed up a WordPress site?
Measure first, then fix the biggest bottleneck. For many sites that is slow hosting or missing page caching, followed by oversized images. Fixing those usually helps more than small tweaks to CSS or JavaScript.
Do too many plugins slow down WordPress?
It depends on what each plugin loads, not just the count. A few heavy plugins that load scripts on every page can slow a site more than many lightweight ones. Remove unused plugins and check what the rest load.
Will a caching plugin fix a slow WordPress site?
Page caching helps a lot, but it can’t fully make up for an underpowered server, very heavy pages or slow third-party scripts. Treat caching as one step in a wider speed plan.
How do I check my WordPress site’s Core Web Vitals?
Use PageSpeed Insights for individual pages and the Core Web Vitals report in Google Search Console for site-wide real-user data. Check mobile results as well as desktop.


