WordPress

Elementor and Performance: The Most Common Mistakes and How to Fix Them

8 Apr 2026 · 8 min read


Elementor is the most widely used WordPress page builder — and it regularly turns up as the root cause in performance audits. But that's only half the truth: Elementor itself isn't the problem, it's how it's used. A cleanly configured Elementor installation can absolutely achieve good Core Web Vitals. A poorly configured one, on the other hand, almost can't.

In this article we cover the five most common performance mistakes on Elementor sites — and what you can concretely do about them.

Why Elementor causes performance problems

Elementor generates a lot of CSS and JavaScript for every page. By default it loads much of this globally — on every page, even where it isn't needed at all. On top of that:

  • Render-blocking scripts that block the browser's main thread before the page becomes visible
  • Google Fonts that are loaded externally by default (extra DNS lookups, GDPR risk)
  • Icon sets such as Font Awesome, which are loaded in full even if you only use three icons
  • Plugin ecosystem: many Elementor add-ons (Essential Addons, JetElements, etc.) load their assets globally instead of per page

The result: pages with 40-60 HTTP requests from Elementor and its extensions alone are not unusual.

The 5 most common mistakes

Mistake 1: All plugins load globally

Contact Form 7 loads its scripts and stylesheets on every page — even where no form is embedded. The same applies to WooCommerce assets on non-shop pages, to slider libraries on pages without a slider, and to many Elementor add-ons in general.

This increases the transfer size and blocks rendering unnecessarily.

Mistake 2: Loading Google Fonts through Elementor instead of hosting them locally

Elementor loads Google Fonts directly from fonts.googleapis.com by default. That means: an extra DNS lookup, an extra connection, and depending on your privacy situation, a GDPR grey area.

Every font you select in Elementor's dropdown triggers an external request — even multiple weights of the same font separately.

Mistake 3: Unoptimised images

Elementor pages often work with large hero images, background images and galleries. If these are served uncompressed or in the wrong format, that's the fastest route to a poor LCP score.

Lazy loading can be enabled in Elementor, but it isn't active by default for every element — background images in particular are often not lazy-loaded.

Mistake 4: No page cache, or the wrong caching plugin

Without a page cache, WordPress has to execute PHP, query the database and generate HTML on every request. On Elementor pages with many widgets and meta queries, that's especially expensive.

Many Elementor users install a caching plugin but don't configure it correctly — or choose a plugin that doesn't work well with Elementor.

Mistake 5: Too many add-ons and widgets

The Elementor ecosystem offers hundreds of widgets via third-party plugins. Every additional add-on plugin typically loads its own CSS and JS files — often globally. If you've installed three add-on plugins and only use two widgets from each, you still pay the full asset price for every widget available.

Concrete fixes

Enable Improved Asset Loading

Since version 3.x, Elementor has offered a built-in option for asset optimisation:

Elementor → Settings → Performance → Improved Asset Loading

This option ensures that widget-specific CSS and JS files are only loaded on pages where the respective widget is actually used. It can noticeably reduce the number of HTTP requests and the amount of data transferred.

In addition:

Elementor → Settings → Performance → Optimized CSS Loading

This option combines and minifies CSS output and can support a critical-CSS approach.

Deactivate Google Fonts and host them locally

There are two places to do this in Elementor:

  • Elementor → Settings → Performance → Google Fonts: set to "Disable"
  • Load fonts locally via @font-face instead — either directly in the theme or via a plugin like OMGF (Optimize My Google Fonts)

Locally hosted fonts avoid the external DNS lookup, are GDPR-compliant, and can be configured with font-display: swap.

Optimise images

For images in Elementor:

  • Use a plugin for automatic WebP conversion: ShortPixel or Imagify are proven and integrate cleanly with the WordPress media library
  • For Elementor background images: manually make sure optimised image sizes are used — Elementor often loads full-size images by default
  • Lazy loading for background images: enable Elementor → Settings → Performance → Lazy Load Background Images

Set up caching correctly

A page cache is especially important on Elementor sites. Two options that work well:

  • LiteSpeed Cache: free, very performant, integrates well with Elementor. On turbopress hosting, LiteSpeed Cache is active and pre-configured by default. Which of its 200-plus settings actually matter is covered in LiteSpeed Cache for WordPress.
  • WP Rocket: paid, but with good Elementor compatibility and little configuration effort

Important: always clear the cache after Elementor changes. Some caching plugins do this automatically, others don't.

In addition: set Elementor → Settings → Performance → Background Image Lazy Load and CSS Print Method to "External File" — this allows better browser caching of the generated CSS.

Reduce add-ons

Go through your installed Elementor add-on plugins and ask, for each one: which widgets do I actually use? If the answer is "two out of fifty", it's worth checking whether you can solve the need directly in Elementor Pro or with custom code instead.

Every add-on plugin you uninstall is assets that no longer need to be loaded.

How to measure success

Optimisations without measurement are guesswork. The relevant metrics for Elementor sites:

  • TTFB (Time to First Byte): shows whether the server and cache are working correctly. Target: under 800 ms, better under 200 ms.
  • LCP (Largest Contentful Paint): the hero image or the main content in the visible area. Target: under 2,500 ms.
  • TBT (Total Blocking Time): how long JavaScript blocks the main thread. Directly influenced by the number and size of JS files. Target: under 200 ms.

Measure before optimising, after every change, and regularly afterwards — because plugin updates can cause regressions.

With turbometrics you can scan your Elementor site for free and see immediately which of these problems apply — including AI recommendations for concrete measures. The scanner checks TTFB, LCP, render-blocking resources, image optimisation and browser caching in a single pass.

Conclusion

Elementor and good performance aren't mutually exclusive — but they don't come for free either. The five biggest levers:

  1. Enable Improved Asset Loading in Elementor
  2. Host Google Fonts locally instead of loading them externally
  3. Serve images as WebP and lazy-load them correctly
  4. Set up a page cache cleanly and clear it after changes
  5. Reduce add-on plugins to what you actually use

Scan your Elementor site for free now →

Try turbometrics for free

Scans, monitoring and live data — start for free, no subscription needed.

Get started for free