Emberpress Emberpress Start a project
← Back to the journal Performance

The real reason your WordPress site is slow (it's not the theme)

Reese Calloway
Reese Calloway
Founder & Lead Engineer · 8 min read · June 2026
Analyzing a slow page load

Every week a new client tells us the same thing: "Our site is slow, and we think it's the theme." Nine times out of ten, they're wrong — and the real cause is something far cheaper to fix.

Themes get blamed because they're visible. When a page feels sluggish, the design is the thing staring back at you, so it takes the fall. But a theme is mostly HTML and CSS — and HTML and CSS are almost never what makes WordPress slow. The bottleneck is what happens before a single pixel is painted: the database.

The database is doing too much thinking

A default WordPress page can fire anywhere from 20 to 200+ database queries before it returns a byte. Add a few popular plugins and that number balloons. Every uncached query is a round trip your server makes while the visitor stares at a blank screen.

The three most common culprits we find in an audit:

  • Unbounded queriesposts_per_page => -1 hiding in a widget, quietly loading every post you've ever written.
  • Autoloaded options — plugins dumping megabytes into the wp_options table that load on every single request.
  • No object cache — the same expensive queries recomputed for every visitor because nothing remembers the answer.
Fixing the database is almost always cheaper, faster and more durable than rebuilding the front end.

Images are the other half of the problem

Once the server responds quickly, the browser still has to download the page — and images are usually 70% of that weight. We routinely find 4000px hero images being served to phones, uncompressed PNGs where a WebP would be a tenth the size, and no loading="lazy" anywhere in sight.

What actually moves the needle

Here's the order we tackle things in, because it maps almost perfectly to effort-versus-impact:

  • Add a persistent object cache (Redis) and full-page caching.
  • Audit and trim autoloaded options.
  • Convert and resize images; serve WebP with proper srcset.
  • Defer non-critical JavaScript and remove unused plugins.
  • Only then, if it's still needed, look at the theme.

The payoff

On a recent publishing client, this exact sequence took Largest Contentful Paint from 3.8 seconds to 1.1 — without touching the design at all. The theme they were ready to throw out turned out to be perfectly fine. It was the plumbing behind it that needed the work.

So before you commission an expensive rebuild, get an audit. The fix is often a few hours of focused work, not a few months of redesign. If you want a second opinion, we're happy to take a look.

Reese Calloway
Reese Calloway

Founder of Emberpress and a WordPress core contributor. Fifteen years spent making sites faster than the people who built them thought possible.

Keep reading

{{ r.cat }}

{{ r.title }}

{{ r.meta }}

Think your site is slower than it should be?

We'll run a free performance audit and tell you exactly where the time is going.

Request an audit →