The lightweight themes at the top of every speed comparison — Astra, GeneratePress, Kadence, Blocksy — all ship a few tens of kilobytes of CSS and JavaScript on a default install. That difference is real and it is usually a rounding error next to the two megabytes of unoptimised hero image sitting above it.
Theme comparison articles benchmark a fresh install with demo content, which is a fair way to compare themes and a poor way to predict your site. Your site has a page builder, a slider, three analytics scripts, a chat widget, six web fonts, and images exported straight from a designer’s machine. Swapping the theme changes the smallest variable in that list.
Table of contents
- Measure before you change anything
- The things that usually dominate
- When the theme genuinely is the problem
- The fixes that actually move the number
- The honest theme recommendation
- Performance as maintenance, not a project
- How this fits the rest of the stack
- FAQ
Measure before you change anything
Every performance decision should start with a waterfall, not a listicle. Open your slowest real page — not the homepage, the one people actually land on — in your browser’s network tab, or run it through a field-data tool.
The numbers worth writing down:
- Total page weight, and the split between images, JavaScript, CSS, and fonts.
- Number of requests. Ninety requests on a blog post is a plugin problem.
- Largest Contentful Paint, and which element it is. Usually an image, occasionally a heading blocked by a font.
- Time to First Byte. If this is over half a second, the problem is server-side and no front-end change will fix it.
- Total Blocking Time, which tells you whether JavaScript is making the page unresponsive.
That last split is the diagnostic. If images are 80% of the weight, the theme is irrelevant. If TTFB is 1.2 seconds, you have a hosting or database problem and a lighter theme changes nothing. If there are forty JavaScript files, you have a plugin problem.
Lab tools score a single synthetic load. Field data from real visitors is what search engines use and what your users experience. Prefer field data where you have enough traffic to produce it.
The things that usually dominate
- Images. Almost always the largest share of page weight. Unresized uploads served at full resolution, no modern format, no lazy loading below the fold.
- Plugins. Each one may add CSS and JavaScript to every page whether or not that page uses it. A slider plugin loading its bundle on a text-only post is standard behaviour, not an edge case.
- Hosting and TTFB. Shared hosting with a slow database and no object cache produces a slow first byte on every request, regardless of front-end work.
- Page builders. They generate deeply nested markup and load their own runtime. This is a genuine cost and it buys real editing convenience — a trade worth making consciously.
- Third-party scripts. Analytics, tag managers, chat widgets, ad scripts, embedded video. Each one is a connection to somebody else’s server whose performance you do not control.
- Fonts. Four weights of two families, each a separate request that blocks text rendering.
- The theme. Real, and last on this list.
Fix them in that order. Compressing images and removing two unused plugins typically beats any theme migration, and it takes an afternoon rather than a rebuild.
When the theme genuinely is the problem
It happens, and the symptoms are recognisable:
- The theme bundles a page builder, a slider, an icon library, and a portfolio plugin, all loading everywhere.
- It ships jQuery plugins for effects that CSS handles natively now.
- It loads five font weights you do not use.
- It has not been updated in two years, which is a security problem before it is a performance one.
- A demo import brought in a hundred pages of placeholder content and a dozen bundled plugins.
- CSS is a single 400KB file covering every layout the theme supports, of which you use one.
That describes the multipurpose theme category — the ones sold on marketplaces promising every layout for every industry. The weight is the direct consequence of the flexibility, and it is loaded whether or not you use any of it.
If that is your situation, switching to a lightweight theme genuinely helps. Just be honest about the cost: a theme change on an established site means rebuilding templates and re-styling, and it is a project rather than a setting.
The fixes that actually move the number
In descending order of impact per hour spent:
- Resize images before uploading. A 4000px photo displayed at 800px is wasting 90% of its bytes. Set sensible dimensions and stop uploading camera originals.
- Serve modern formats. WebP or AVIF, with a fallback. Frequently halves image weight for no visible difference.
- Lazy load below the fold — WordPress does this natively now — and explicitly do not lazy load your LCP image, which is a common own goal.
- Set width and height on images so the browser reserves space and layout does not shift.
- Audit plugins. Deactivate one at a time and re-measure. The results are usually surprising.
- Page caching. Turns a database-driven page into a static file. The single biggest TTFB win on most sites.
- Self-host fonts, subset them, and use
font-display: swap. Two weights is almost always enough. - Defer non-critical JavaScript. Chat widgets and analytics do not need to block first render.
- A CDN for static assets, which matters more the further your audience is from your server.
Page caching deserves emphasis. WordPress builds every page by running PHP and querying MySQL. A cache turns that into serving a file. On a site whose content changes a few times a day, that is nearly free performance and it is the first thing to configure.
The honest theme recommendation
If you are starting fresh and want a fast foundation, the lightweight, block-friendly themes are the sensible default. They share the same qualities:
- A small CSS and JavaScript footprint on a default install.
- Conditional loading, so features you do not use are not shipped.
- Sensible defaults for accessibility and semantics.
- Active maintenance, which matters more over a five-year site life than any benchmark.
- No bundled page builder you did not ask for.
Which specific one wins any given benchmark changes with each release and each tester’s methodology, and the differences between the leaders are small enough that the choice should come down to whether the styling options fit how you work.
The thing not to do is pick a theme from a speed article, install it on an existing site, and expect the number to move. The benchmark measured a clean install. Your site is the variable that article controlled for.
Performance as maintenance, not a project
Sites get slower on their own. A plugin is added for one page and loads everywhere. A marketing script goes in and never comes out. Images accumulate. Nobody is at fault and the trend is one direction.
A twenty-minute check each quarter keeps it in hand: measure the same three pages, compare against last time, and look at what changed. That is enough to catch a regression while it is still one plugin rather than a rebuild.
Worth knowing where the ceiling is, too. If TTFB is 800 milliseconds, front-end work is polishing while the foundation is slow. That number is set by your host, your PHP version, your database, and whether a cache is doing its job — and it is the one variable a theme cannot touch.
How this fits the rest of the stack
Because a slow first byte caps everything else, the hosting layer is where a performance conversation should start rather than end. Managed WordPress on RunxBuild runs on its own plan ladder from $3 a month with autoscaling, and puts a file manager and a database browser directly in the dashboard — so checking which plugin is generating four hundred queries, or removing a bloated theme’s leftovers, is a browser action rather than an SFTP session. WordPress files on RunxBuild covers the file manager. When you are working out what a faster plan and its bandwidth actually cost, the RunxBuild hosting calculator shows the site plan, storage, and bandwidth as separate numbers rather than one bundled figure.
Useful related references:
- WordPress Featured Image Size: 1200x630 and Why Your Theme Crops It
- Is WordPress Multisite One Theme or Multiple? How Themes Actually Work Across a Network
- Squarespace vs WordPress: The Question Behind the Question
- Services on RunxBuild
FAQ
What is the fastest WordPress theme?
The lightweight block-friendly themes — Astra, GeneratePress, Kadence, Blocksy — consistently lead speed comparisons, and which one wins depends on the tester and the release. The differences between them are small enough that styling and workflow fit should decide, not the benchmark.
Will switching themes make my site faster?
Usually less than you hope. Theme comparisons benchmark clean installs with demo content. On a real site, images, plugins, third-party scripts, and server response time typically dominate. Measure your page weight split first — if images are most of it, the theme is not your problem.
What actually slows down a WordPress site?
In rough order: oversized images, plugins loading assets on every page, slow time to first byte from hosting and an uncached database, page builder overhead, third-party scripts, and web fonts. The theme matters but sits near the bottom of that list.
How do I find which plugin is slowing my site?
Deactivate plugins one at a time and re-measure the same page, or use a query monitoring plugin that attributes queries and asset loads to their source. The results are usually surprising — a plugin used on one page frequently loads its assets everywhere.
Does page caching help WordPress performance?
Substantially. Without it, every request runs PHP and queries MySQL to rebuild the same page. A cache serves a static file instead, which is normally the single largest improvement to time to first byte on a content site whose pages change a few times a day.