WordPress site slow? What to fix first, in the order we check it
In short
A WordPress site is slow for one of a few reasons: pages built fresh on every visit with no cache, heavy images, too much data loaded from the options table, or a plugin doing slow work. Measure from your visitors' country first, then fix them in that order. Our 17 Oct 2026 lab reproduced the options one.
Seeing this on your own site? Send us the address for a free site check, and a written report comes back within 2 business days.
Key points
- Measure before you change anything, and measure from where your visitors are. A test from another continent adds distance to every number.
- Page caching and image weight are the two checks that most often pay off first; we did not test them in this lab.
- In our lab, 30 plugin style options of 100 KB each took the autoloaded data from 39 KB to 3 MB, and Site Health turned that check from good to critical.
- Deleting those 30 rows put the check back to good. The fix was in the database, not in a new plugin.
On this page (10)
Why is my WordPress site slow?
A WordPress site slow to load is nearly always doing too much work per visit, or sending too much to the browser. The work is PHP and database queries on the server. The weight is images, scripts and fonts on the way to the visitor.
So the question is not which plugin to install. It is which of those two is slow on your site, and where.
Finding that is the first step of our WordPress maintenance work, and we do it on a copy before anything changes on the live site.
Where should you measure from?
From the country your visitors are in. Every request travels to the server and back, and a test run from the other side of the world adds that trip to every number it reports.
We run PageSpeed Insights for that reason. The test runs on Google’s servers, not your own connection, and when the site has enough traffic it also shows real visitor data from Chrome users, measured wherever those visitors are. Note the mobile score and Largest Contentful Paint for the home page and your busiest page. Google’s Web Vitals guide treats 2.5 seconds or less for that paint as good.
That is your baseline. Without it you cannot tell if a change helped.
Is the page cached?
Without a page cache, WordPress builds each page from scratch for each visitor: load the plugins, query the database, run the theme. With one, most visitors get a stored copy.
Ask your host first: many cache at the server, and a second caching plugin on top can clash with it. If neither is on, turning one on is usually the biggest single change. We did not test caching in this lab, so treat that as our experience, not a lab result. WordPress’s own performance guide also sends anyone who needs a quick fix straight to caching.
Are the images too heavy?
A phone photo straight from the camera can be several megabytes. Uploaded as the hero image, it is often the Largest Contentful Paint element itself. PageSpeed names that element in its diagnostics, and finding the one LCP element first is how we fix a poor mobile score.
Look at the biggest image on your slow page. Resize it to the width it shows at and save it as WebP. We covered why WordPress keeps several copies of each upload in how WordPress image sizes multiply your files. Not lab-tested here.
Can the database slow every page?
Yes, and this is the cause we reproduced. WordPress loads every option marked autoload on every request, before your page even starts. Plugins keep settings there, and some keep logs or cached data there and never clean up.
Our test site ran on WordPress Playground on 17 Oct 2026: WordPress 7.1.3, PHP 8.3.33, no plugins. Here is what Site Health said:
| Step | Autoloaded options | Site Health |
|---|---|---|
| Fresh site | 117 rows, 39 KB | “Autoloaded options are acceptable” |
| After 30 rows of 100 KB | 147 rows, 3 MB | “Autoloaded options could affect performance” |
| After deleting the 30 | 117 rows, 39 KB | acceptable again |
The critical result also said: “You can review the options being autoloaded in your database and remove any options that are no longer needed by your site.”
We timed the load inside the lab too, but on one computer with no network and a SQLite database that number says nothing about a real host, so we leave it out. The useful part is the check itself: Site Health has read this since WordPress 6.6.
To fix it, back up the database, find the largest autoloaded rows, and match each to a plugin. Rows from plugins you removed long ago can usually go. Rows from active plugins can often be set to not autoload.
Could one plugin be the cause?
It can. A plugin that calls another server while the page builds, or runs a heavy query on every visit, slows every page by the time that call takes.
The way to find it is on a staging copy: turn plugins off one at a time and measure the same page each time. We did not reproduce a slow plugin in this lab. If you suspect your server’s PHP is old, our guide to checking your WordPress PHP version is a quick look.
What should you fix first?
In this order, measuring after each step:
- Measure the two pages from your visitors’ country and write the numbers down.
- Confirm a page cache is on, at the host or in one plugin.
- Shrink the largest image on each slow page.
- Open Tools, Site Health and read the autoloaded options check.
- Test plugins one at a time on staging.
When a site is slow and the cause is not obvious, we take it as one job: we measure with PageSpeed Insights, trace the slow step on a staging copy, fix it, and send you the before and after numbers.
Site Health flags more than speed. What Site Health critical issues mean goes through the rest of that screen.
What did we not test?
- Page caching plugins and host caches.
- Image weight and formats.
- Slow plugins or calls to other servers during page load.
- Hosting plans and PHP versions.
- Any speed number from a US test location. The lab ran on one machine, so we quote its Site Health result only.
Is your site slow right now?
Tell us the page that is slow and where your visitors are, and we will say which of these checks to start with.
Want a written look first? Ask for the free site check with your site address, and a reply comes within 2 business days. Already know the fix you need? It may be on our list of one-off fixes.
Where did these facts come from?
- DistroCode lab, WordPress 7.1.3 on PHP 8.3.33 in WordPress Playground (17 Oct 2026, 2:04 PM ET), autoloaded options size and the Site Health result before, after and on cleanup, checked Oct 17, 2026
- Make WordPress Core, Options API, disabling autoload for large options (WordPress 6.6, with the Site Health check), checked Oct 17, 2026
- WordPress documentation, Site Health screen, checked Oct 17, 2026
- WordPress advanced administration, Optimization (caching and performance), checked Oct 17, 2026
- web.dev, Web Vitals (what Largest Contentful Paint measures and the 2.5 second mark), checked Oct 17, 2026
Questions and answers
Why is my WordPress site slow only for some visitors?
Distance and caching. A visitor far from the server waits longer for every request, and a visitor who gets a page the cache has not stored yet waits for WordPress to build it.
Does a speed plugin fix a slow WordPress site?
Sometimes, when the cause is a missing page cache. It does nothing for a bloated options table or a plugin that waits on another server, so find the cause first.
How do I see autoloaded options without a plugin?
Open Tools, Site Health. Since WordPress 6.6 it has an autoloaded options check that names the count and size, which is how we read it in our lab.
Still stuck? Send us the page address and what you see Want to know if the problem stops here? Ask for the free site check.
We write up one real fix or build a few times a week. Follow DistroCode on LinkedIn


