How to speed up a WordPress website, step by step

A practical order of work for a slow WordPress site: measure, fix hosting and caching, then the theme, plugins, images, scripts and database. No guesswork.

BeginnerHow-to9 min readUpdated October 30, 2026

In this guide
  1. Why WordPress sites get slow
  2. Step 0: measure before you touch anything
  3. Step 1: hosting and PHP
  4. Step 2: add a page cache
  5. Step 3: look at the theme and any page builder
  6. Step 4: audit the plugins
  7. Step 5: images
  8. Step 6: scripts, styles and fonts
  9. Step 7: the database and background work
  10. Step 8: a CDN and compression
  11. A quick diagnosis
  12. What not to do
  13. Keep it fast
  14. Check your own page
  15. Sources

Why WordPress sites get slow

WordPress is built to be flexible, and every bit of flexibility costs work. For each visit, the server runs PHP code from WordPress, your theme and every active plugin, asks the database many questions, builds the page and sends it. The browser then loads whatever the theme and plugins add: stylesheets, scripts, fonts, images. Nothing in that chain is slow by design, but all of it adds up as a site grows.

Three facts explain most of what follows:

For what the 2025 data says about WordPress sites as a group, see is WordPress slow?

Step 0: measure before you touch anything

Run your home page and your most important page through PageSpeed Insights on the mobile tab. Write down:

Then take a full backup, and do the work on a staging copy if your host offers one. Without numbers you will not know what helped, and without a backup one wrong change can cost you the site.

Step 1: hosting and PHP

Everything starts with the server's answer. If the first byte takes more than about 600 milliseconds, the host is the limit. Read choosing hosting for speed, and at minimum check these:

Step 2: add a page cache

Because core does not cache pages, the single biggest change for most slow sites is adding a cache. Core provides the mechanism: a drop-in file in the content folder that WordPress loads very early when caching is switched on, which is how caching plugins work. Use the cache your host provides if it has one. Otherwise use one well-maintained caching plugin, not two: two plugins doing the same job fight each other.

What to look for, and to set:

Check that it works: reload a page and look at the response headers in DevTools for the cache's header, and watch the server response time fall. Then check what logged-in visitors see, because many caches do not apply to them.

For a dynamic site, such as a store or a membership site, also add an object cache. It keeps the results of database queries in memory, and WordPress loads it from a drop-in file when one is present. Ask your host whether Redis or Memcached is available.

Read caching explained for the layers and what each one does.

Step 3: look at the theme and any page builder

A theme decides the markup, the CSS and the JavaScript on every page.

Step 4: audit the plugins

The number of plugins is not the measure. Their cost is.

  1. List them and write down what each one does and who needs it.
  2. Delete what is not used. An inactive plugin does not run, but it can still be a risk, so remove it.
  3. Find the heavy ones. On staging, switch plugins off one at a time and test the page, or use a debugging plugin such as Query Monitor to see which plugin runs which queries, scripts and requests on a page.
  4. Check what each loads where. A contact form plugin that loads its scripts and styles on every page, though the form is on one, is a common find. Many plugins have a setting to load assets only where needed.
  5. Replace the worst offenders with lighter ones, or with a few lines of code. Many plugins depend on jQuery, which WordPress then loads on that page; see removing jQuery and other legacy libraries before you try to change that.
  6. Avoid duplicates. Two slider plugins, two SEO plugins, two backup plugins.

Be careful with optimization plugins that promise everything: one that combines, delays and rewrites scripts and styles can break pages. Turn on one feature at a time, and test the site like a visitor after each.

Step 5: images

Images are usually the biggest part of a page. WordPress helps with several defaults, and a theme or builder can override them:

What you still have to do:

Step 6: scripts, styles and fonts

Step 7: the database and background work

This is the last step for a reason: it rarely changes the front end, and it needs a backup.

Step 8: a CDN and compression

A CDN serves your images, scripts and styles, and possibly the cached HTML, from locations close to visitors. Make sure compression (Brotli or gzip) is on for text files, as described in text compression. Most managed hosts and CDNs do both. If the server itself is slow to answer, see how to reduce server response time.

A quick diagnosis

What you seeThe usual causeStart with
A slow first byte on every pageNo page cache, slow hosting, old PHPSteps 1 and 2
A slow first byte only when logged inCache does not apply, heavy pluginsSteps 2 and 4
The main image appears lateLazy loading, a slider, a CSS backgroundStep 5
A long wait, then the page appearsRender-blocking CSS and scriptsStep 6
Taps respond slowlyHeavy scripts, builders, third partiesSteps 3, 4 and 6
The page jumps while loadingImages without size, fonts, bannersSteps 5 and 6
The admin is slow tooHosting, plugins, database, cronSteps 1, 4 and 7

What not to do

Keep it fast

Speed slips. Every new plugin, script and large image makes it a little worse. Test your top pages once a month, and every time you add a plugin or change the theme. Keep a short record of what you changed and what the numbers were.

Check your own page

Run the free audit on your home page and your most important page. Compare the server response time with the rest of the load: if the first byte is the biggest part, start at Step 1 and Step 2. If it is small, start with the main image and the scripts.

Sources

Start here

Free website audit

Live Google data for any public page: mobile and desktop.

Mobile + desktop · Lighthouse lab test · Real-user Chrome data when Google has it

Rather have this done for you? WordPress speed · Book a call

Related guides

All guides →