Skip to content

← All posts

30 July 20264 minElementor / Performance / WordPress

Why Elementor sites feel slow — and what actually fixes them

Elementor gets the blame; the causes are more specific. Most of the weight is assets the page never uses.

Elementor has a reputation for slow sites, and the reputation is unfair in an instructive way. The builder itself renders pages that can be perfectly quick. The problem is what accumulates around it on a typical install: every plugin queueing its scripts and styles on every page whether that page uses them or not, a theme loading its whole feature set for a site using a tenth of it, and nobody ever removing anything. Slowness on WordPress is almost never one bad component — it is sediment.

Where the weight actually comes from

  • Assets loaded sitewide by plugins the current page never touches. A contact-form plugin’s scripts on every page of a hundred-page site, for one form on one page, is the canonical example.
  • Render-blocking stylesheets that hold the first paint hostage — the browser will not draw anything until every queued CSS file has arrived.
  • Widget libraries shipping their whole catalogue for the two widgets actually in use.
  • No caching layer, so every single visit makes WordPress rebuild the page from PHP and database queries — work that produces an identical result every time.
  • Oversized images: photographs uploaded straight from a camera and scaled down by the browser, paying full download cost for pixels nobody sees.

Notice that Elementor appears nowhere on that list as a cause. It appears as a context — because page-builder sites accumulate plugins faster, every widget pack and add-on bundle adds its own assets, and the person assembling the page never sees the weight arriving.

How to tell what is actually slow

Before fixing anything, measure. Run the page through Lighthouse or PageSpeed Insights and read past the score to the actual complaints: which files block rendering, which images are oversized, how much JavaScript goes unused. The waterfall tells you where the time goes, and it regularly contradicts the guess. Optimising by instinct on WordPress usually means installing another optimisation plugin — which is how the site got here.

What actually fixes it

The fixes are unglamorous and they compound. Conditional loading first: assets only enqueued on pages that use them. This is a design decision, not an optimisation pass — it is why the plugins I ship load nothing on a page that does not use them. The cheapest asset is the one never requested.

Then caching, at two levels. Page caching, so WordPress builds each page once and serves the built copy instead of re-running PHP and database queries per visit. Browser caching, so returning visitors download nothing that has not changed. Together they remove the largest and most repeated costs on the typical install.

Then critical CSS, per template: the styling the top of the page needs is inlined so the first paint does not wait for the full stylesheets, which arrive without blocking. And a script manager, to unqueue what a page does not need — the surgical version of conditional loading for the plugins that were never built with it. Add markup cleanup and image sizing, and that is the whole honest playbook. It is also, not coincidentally, the exact feature list of the performance plugin on this site — built because this is the work that moves the needle, in that order.

What about hosting?

Hosting matters, but it is usually the second problem, not the first. The tell is time-to-first-byte: if the server takes ages to begin responding even with caching in place, the site has outgrown its plan or its host, and no amount of front-end optimisation will paper over it. But moving a heavy, uncached install to premium hosting just makes the sediment arrive from a faster server — the page is still doing all the unnecessary work, somewhere more expensive. Fix the build first, then judge the hosting on what remains.

The fix that costs nothing

Fewer plugins. Every install is a standing invitation for assets, database queries and update conflicts, and most long-lived WordPress sites carry plugins whose job ended years ago. A quarterly half-hour of asking “what is this for, and is it still true?” outperforms most optimisation tooling. Performance on WordPress is mostly the discipline of not shipping what the page does not use — and discipline, unlike plugins, has no overhead.

Performance is mostly the discipline of not shipping what the page does not use.

The pluginsCorSpeed and CorLayers came out of exactly this work — both free to download.

Got something like this to build? Let's talk.

Start a project ↗