WordPress & Web Design

How to Improve Core Web Vitals on Elementor Websites

Laptop displaying code in a futuristic corridor lit red and blue

Elementor makes it easy to build good-looking pages without code, and that same flexibility makes it easy to ship heavy pages. If your Core Web Vitals on an Elementor website are in the red, you will rarely improve Core Web Vitals with a single plugin. It takes a handful of decisions about images, fonts, addons, layout structure, and caching, made in the right order.

Below we explain what each Core Web Vital actually measures, which Elementor settings exist to help, and where we see the biggest wins on real small-business sites.

What Core Web Vitals measure

Google’s web.dev Core Web Vitals overview defines three metrics and a “good” threshold for each, measured at the 75th percentile of page loads, split by mobile and desktop:

Metric What it reflects Good threshold
Largest Contentful Paint (LCP) Loading: how long until the biggest image or text block in view is rendered 2.5 seconds or less
Interaction to Next Paint (INP) Responsiveness: how quickly the page visibly responds after a tap, click, or key press 200 milliseconds or less
Cumulative Layout Shift (CLS) Visual stability: how much content jumps around unexpectedly 0.1 or less

INP replaced First Input Delay as a Core Web Vital in 2024, so older Elementor tutorials that talk about FID are out of date on that point.

The 75th percentile matters. Your own fast laptop on office Wi-Fi is not the test. Field data in PageSpeed Insights and the Search Console Core Web Vitals report reflects real visitors, many on mid-range phones and mobile networks. Lab scores are useful for debugging, but field data is what the thresholds refer to.

To improve Core Web Vitals, start with measurement

  1. Check field data first

    Open the Core Web Vitals report in Search Console to see which groups of URLs fail and on which metric. Many sites fail only one metric on mobile, which narrows the work considerably.

  2. Pick representative templates

    Elementor sites are usually built from a few templates: home, service page, blog post, contact. Fix the template and every page using it improves.

  3. Use lab tools to find the cause

    Run PageSpeed Insights or Chrome DevTools on one URL per template. Note which element is the LCP element, which scripts are long tasks, and which elements shift.

  4. Change one thing at a time

    Toggle a setting, clear caches, retest. Changing five things at once makes it impossible to know what helped or what broke.

Elementor’s built-in performance settings

Elementor ships performance options under its settings screens. According to Elementor’s help article Improve performance features, these include:

Optimized Image Loading

Found on the Performance tab. Applies high fetch priority to the LCP image and lazy loading to images below the fold. This lines up directly with Google’s LCP advice.

Lazy Load Background Images

Also on the Performance tab. Lazy loads background images except the first one, which matters because Elementor sections often use CSS backgrounds.

Optimized Gutenberg Loading

Removes unused block editor scripts and styles on pages built with Elementor, trimming CSS that does nothing for your visitors.

Inline Font Icons

A stable feature that renders icons as inline SVG, so the Font Awesome and eicons libraries and their font files do not need to load.

Element Caching

Listed as experimental. Serves a stored copy of an element instead of rendering it on every request, which can reduce server response time.

Elementor renames, graduates, and retires these features between releases, so check the Features and Performance tabs in your own version. Treat experimental features with care: enable them on a staging copy first and test forms, sliders, popups, and any third-party widgets before going live.

Fix LCP: usually the hero image

On most Elementor service sites, the LCP element is the hero image or the large headline over it. Google’s web.dev guide to the most effective Core Web Vitals optimizations recommends making the LCP image discoverable in the HTML, giving it high fetch priority, and never lazy loading it.

  • Prefer an Image widget over a section background for the hero. A CSS background image is discovered later than an <img> tag. If design requires a background, make sure it is not being lazy loaded.
  • Size images for their slot. A 4000-pixel photo straight from a camera does not belong in a 1200-pixel container. Export at a sensible width and let WordPress generate responsive sizes.
  • Use modern formats. WebP (or AVIF where supported) is usually much smaller than JPEG at similar quality. Elementor’s Image Optimizer and several other plugins can convert on upload.
  • Avoid sliders and carousels above the fold. They load several large images and scripts before the first one even shows.
  • Reduce server response time. Slow hosting delays everything, including LCP. Page caching and a CDN help here.

Fix INP: less JavaScript doing less work

INP problems come from the main thread being busy when someone taps. On Elementor sites the usual sources are:

  • Addon packs. Many Elementor addon plugins load scripts and styles for dozens of widgets even if you use two. Audit which widgets you actually use, disable the unused ones in the addon’s settings, and remove addon plugins you can live without.
  • Third-party tags. Chat widgets, heatmaps, multiple analytics tags, and ad pixels all compete for the main thread. Keep what you use, and remove old tags nobody looks at anymore.
  • Heavy animations and motion effects. Entrance animations on every section, parallax, and mouse-tracking effects add script work. Use them sparingly.
  • Large DOM size. Deeply nested sections, inner sections, and columns create many elements. Rebuilding old layouts with Flexbox containers usually produces leaner markup.

Script deferral options in caching plugins can help, but test interactive pieces like menus, forms, and popups afterward. Deferring the wrong script is a common cause of a “fast” page where the mobile menu no longer opens.

Fix CLS: reserve space for everything

Layout shift happens when something appears and pushes content down. Common Elementor culprits:

  • Images without width and height attributes, or with sizes overridden in a way that removes the reserved space.
  • Web fonts that swap in with a very different size than the fallback font, causing headlines to reflow.
  • Sticky headers that change height on scroll, or announcement bars injected by a plugin after load.
  • Embeds such as maps, videos, and review widgets with no fixed height.
  • Popups or cookie banners that push content instead of overlaying it.

The web.dev guidance is simple: set explicit dimensions or an aspect ratio, give unknown-height embeds a sensible minimum height, and animate with transforms rather than properties that trigger layout.

Fonts: fewer families, fewer weights, loaded locally

Elementor’s global fonts make it easy to pick a different Google Font for every heading level. Each family and weight is another file. A practical approach:

  • Use one or two font families and only the weights you actually use.
  • Load fonts from your own server instead of an external request. Elementor’s help center covers loading Google Fonts locally and choosing a loading method; review those options in your version.
  • Use a font-display approach that shows text immediately with a fallback, and choose a fallback with similar proportions to limit shifting.
  • If you use Elementor’s global fonts, consider disabling the default fonts and colors you are not using so they do not load alongside your theme’s.

Caching and hosting

Caching does not fix a heavy page, but it removes repeated work. Layers to consider:

  • Page caching at the host or via a reputable plugin, so most visitors get pre-built HTML.
  • Object caching where your host supports it, which helps logged-in and dynamic pages.
  • A CDN for images, CSS, and JavaScript, especially if visitors come from a wide area.
  • Browser caching headers for static files.

Avoid stacking two caching plugins or two minification tools. Overlapping optimization layers often cause broken styles and make problems hard to trace. Whenever you change Elementor settings, regenerate Elementor’s CSS files and clear every cache layer before retesting.

Honest expectations

Core Web Vitals are one part of page experience, and Google’s own page experience documentation says it aims to show the most relevant content even when page experience is not ideal. Passing the thresholds is worth doing because faster, steadier pages are easier for customers to use, especially on phones. The same documentation says Core Web Vitals are used by Google’s ranking systems, but also that good scores do not guarantee top rankings, so treat speed work as a usability investment rather than a ranking shortcut.

Some sites can reach “good” with settings changes alone. Others, built years ago with nested sections and several addon packs, need a template rebuild. If you are weighing that choice, our Elementor web design team builds lean templates from the start, our technical SEO services include Core Web Vitals diagnosis, and a website redesign may be the cleaner path for an older build.

Frequently asked questions

Is Elementor too slow to pass Core Web Vitals?

No. Elementor sites can pass. Most failing Elementor sites have oversized images, many addon plugins, heavy third-party scripts, or old nested layouts. Those are fixable.

My PageSpeed score is low but Search Console says my URLs are good. Which is right?

They measure different things. The PageSpeed lab score is a simulated test; Search Console uses real-visitor field data against the Core Web Vitals thresholds. Field data is what the thresholds refer to.

Should I switch on every Elementor experiment?

No. Enable features one at a time on staging and test. Experimental features can conflict with themes or addons.

How long until Search Console reflects my fixes?

Field data is collected over a rolling window, so improvements show gradually. Use Validate Fix in the Core Web Vitals report once your changes are live.

Your Shopping cart

Close