Portfolio · Elementor speed · 10 engagements · 2022 to today

Why is my Elementor site slow?

Because six specific layers of the builder ship more than your page needs, and all six are fixable without a rebuild. Below: what Elementor does to each metric, what we do at each layer, and the named engagements where the numbers moved. Every figure comes from a report the client could re-run.

01 · the autopsy

Six layers, left side what ships, right side what we do.

This is the whole diagnosis. An Elementor site is not one slow thing; it is six stacked layers each adding their tax, and each layer below has shipped a fix on a named client, with the number it moved.

  1. L1

    Hosting and cache

    TTFBLCP

    seen in: hydromer.com, Macaw Digital retainer

    What the builder emits

    A page assembled from widgets is a heavy PHP render, and every cache miss rebuilds it from scratch. One Elementor site on managed hosting served most of its traffic uncached, and those builds ran past 6 seconds.

    What we do

    Make the page cache cover real visitors, then right-size the host. hydromer.com went from 6 s+ uncached builds to 252 ms mobile TTFB over a 24 h DebugBear window after migration and cache coverage.

  2. L2

    Widget bundles

    LCPTBT

    seen in: cunninghamclinic.com · sciencebranding.com

    What the builder emits

    Every widget drags its own CSS and JS onto the page whether or not the page uses it. One Elementor rebuild left 51 render-blocking stylesheets in the chain, with a second block framework still active alongside it as leftover from the previous theme.

    What we do

    Conditional asset loading, deactivate orphaned builder add-ons, remove unused CSS without breaking renders. On sciencebranding.com the unused-CSS removal had been silently dead because the host cron never ran; wired to a working cron plus image optimization and page caching, PageSpeed settled consistently above 90.

  3. L3

    Icon fonts and type

    LCPCLS

    seen in: planergy.com · demagieexpert.nl · assess.com

    What the builder emits

    Font Awesome ships 300+ icons when a page uses 19, builder font settings add render-blocking requests, and late font swaps shift layout. One Elementor relaunch shipped enough custom fonts and add-ons to land mobile PageSpeed at 49.

    What we do

    Subset to the icons actually in use, preload the one font that matters, take the system stack where it is equal. The planergy.com subset keeps 19 icons; demagieexpert.nl subsetting saved roughly 500 KB.

  4. L4

    The DOM itself

    INPCLS

    seen in: planergy.com · asanarecovery.com

    What the builder emits

    Builder markup nests deep and ships wide: 70-110 KB of HTML per page on one Elementor SaaS site is close to the format's floor, and every layer of it has to be parsed before anything can respond. A header plugin once emitted invalid HTML site-wide.

    What we do

    A DOM diet on the worst templates: container structures instead of nested sections, plugin-sourced markup removed (the Asana Recovery header plugin was tracked down and dropped), and the structures the builder genuinely needs kept intact so editing still works.

  5. L5

    The LCP path

    LCP

    seen in: cunninghamclinic.com · fixdapp.com

    What the builder emits

    Elementor page stylesheets declare hero backgrounds, so the browser only discovers the LCP image after downloading and parsing the whole stylesheet chain. One clinic site's 5.4 MB hero hid behind 51 stylesheets, about 1.2 s before discovery, while Lighthouse still showed a passing lab score.

    What we do

    Real img heroes in optimized formats (a Cunningham page went 3.6 MB to 83 KB), fetchpriority=high, and no lazy-loading on the LCP element. On fixdapp.com the first fix was untangling Elementor reporting the wrong LCP element to the tooling, so every later fix targeted the real element.

  6. L6

    Interaction scripts

    INP

    seen in: planergy.com · wonderstory.es

    What the builder emits

    The builder's JavaScript plus popup and cookie widgets hang handlers on every tap: one Elementor cookie button burned CPU on a 300 ms transition-all, and a reviews widget pushed some pages past 500 ms of interaction latency.

    What we do

    Keep the builder's JS loading early where real taps need it (planergy.com chose real INP over a prettier score), re-time or replace third-party widgets, and write a small handler for the two interactions that actually matter.

02 · the two elementors

The one you edit and the one visitors get are different sites.

Half of every Elementor speed conversation is the dashboard being unbearable. That is a real problem, but it is a different problem, with different fixes, and conflating the two is how rebuild projects get sold.

The one you edit

  • Elementor editor sessions stalling 30+ seconds waiting on hosting AJAX, 10+ calls per load once addon widgets stack up (Macaw Digital retainer).
  • Pages slow to open and save in the editor on a JetEngine/JetElements build, while visitors saw the improved frontend (workever.com).
  • The builder stays slow even on a brand-new dedicated server; that is an editor-path problem, not a visitor problem (demagieexpert.nl).

Fixes: hosting that survives the editor's AJAX, addon-widget diets, version hygiene between Elementor, Pro, and add-ons.

The one visitors get

  • With the six layers above handled, visitors get cached HTML and a frontend that passes: 99% of demagieexpert.nl visitors are served prebuilt static pages.
  • hydromer.com visitors went from 6 s+ uncached builds to 252 ms mobile TTFB without touching the editor experience the client liked.
  • The editor can stay exactly as it is; the fixes ship in caching, assets, and markup, not in a workflow change for your team.

Fixes: the six layers above, all invisible to your editing workflow.

  • FIELD NOTE 01

    Your own admin traffic pollutes the field data

    Working inside Elementor all day reports those slow admin pages into CrUX, the same field data Google grades you on. On demagieexpert.nl the fix included excluding the owner's own Chrome from submitting Core Web Vitals, so the report describes visitors, not the editor.

  • FIELD NOTE 02

    The rebuild trap

    Cunningham Clinic rebuilt from one theme to Elementor and quietly lost a year of optimization work: 5.4 MB hero, 51 stylesheets, failing field data. And when rawteen.com's senior developer recommended dropping Elementor entirely, the honest answer was that a rebuild costs weeks while layer-by-layer optimization gets Elementor green. Rebuild when you need to, not to fix speed.

  • FIELD NOTE 03

    Lab green, field red

    The Cunningham rebuild passed Lighthouse while CrUX showed an LCP disaster, because the lab test stops at load and never scrolls or interacts. Builder sites hide their worst costs exactly where only field data looks. Every diagnosis on this page starts in CrUX, GSC, or RUM.

03 · the named engagements

10 Elementor engagements, opened up.

Named clients, real domains, and outcomes from client-visible reports. The throughline: none of these sites was rebuilt. The builder stayed; the layers around it were re-engineered.

  • planergy.com

    Procurement SaaS (via Awesome Creative)

    209ms INP<200ms INP

    Contract literally titled "Fix Google Core Web Vitals - INP", won the week the INP rollout landed in March 2024: interaction latency on menu and search taps reworked, mobile INP from 206-209 ms down through 199 ms to a sub-200 ms average by May 2024. The build is Elementor, so the fix meant choosing real INP over a prettier score (Elementor's JS kept loading un-delayed so the first menu tap stays fast) plus a Font Awesome subset of 19 icons where the builder default ships 300+.

    "Milan was phenomenal! He was always fast, prompt, and took the time to explain everything he did, ensuring we understood how his changes would influence our page speed. I couldn't recommend him more!"
    Awesome Creative (agency) · Upwork 5.0
  • wonderstory.es

    Photo studio, Barcelona (WP + Elementor)

    213ms INP

    Interaction-latency debugging with lab scores already green: CrUX INP at a 213 ms average while marketing/event-tracking scripts, a chat widget, and an Elfsight reviews widget (worst pages over 500 ms) fought for the main thread. Monitoring scripts pruned, chat delayed, reviews-widget replacement scoped for the studio's developer. Same engagement: DebugBear pair tests showed Google Ads URLs (query strings) missing the page cache while clean URLs hit it.

  • Assessment Systems

    Testing and assessment

    4990s

    A February 2022 Elementor relaunch (custom fonts, widget add-ons) left mobile PageSpeed at 49 with Search Console flagging LCP across pages; the client had already clawed back into the 70s deleting plugins before hiring. A few hours of targeted work took mobile into the 90s.

    "In only a few hours, Milan helped us get from a score of 49 to the 90s. If you want to improve pagespeed, he is your guy!"
    Upwork 5.0
  • FIXD Automotive

    OBD2 e-commerce

    Four engagements across two years on an Elementor build. The 2023 pass untangled what earlier developers could not: an outdated hello-elementor parent theme flagged by the CDN audit, main-thread-blocking widget CSS/JS, Elementor reporting the wrong LCP element to the tooling, and an Elementor Ajax loop grid whose pagination stopped loading images under a script manager. The 2024-2025 pass: real-user data showed paid-traffic pageviews missing the host page cache on Pressable, so ad landing pages were the ones re-tuned.

    "We were nervous because we had a few other contractors try their hand at improving our Core Web Vitals with no success due to Elementor's & LCP being tricky. Milan first made changes to our staging site and showed us what speed improvements were possible and then replicated those on the live site over a weekend."
    Upwork 5.0
  • rawteen.com

    DTC food store with mobile app on Woo API

    2.5s TTFB~100ms cached

    Full-store speed on an Elementor build: nginx fixes, LiteSpeed crawler throttled under load, cron cache warming, REST API kept fast for the app. The trigger: a month of ad spend (Google Ads and social) with zero orders, because ad clicks landed on a store that took too long to open. When the client's senior developer later recommended dropping Elementor outright, the honest answer was that a rebuild costs weeks while optimization gets Elementor green: the Elementor Pro template features that forced full page reloads on product filtering were reworked instead. Phase-2 retainer followed.

    "He resolves the issues of the loading time as great as he promised. He is one of the best choices if you need his work."
    Upwork 5.0
  • demagieexpert.nl

    Magic-tricks webshops, NL/DE

    0.45 CLS~0 CLS

    GSC-reported CLS program on an Elementor + WooCommerce build: Elementor font subsetting saved ~500 KB, new dedicated server, prebuilt static HTML delivery for 99% of visitors, popup-caused layout shifts stabilized.

  • Cunningham Clinic

    Dermatology clinic + store

    5s TTFB1.19s TTFB

    18-month TTFB rescue: page-caching rework, Redis, PHP-FPM tuning, GTranslate 5s-TTFB pages fixed. Then the 2026 Colibri-to-Elementor rebuild reintroduced frontend pain: a 5.4 MB PNG hero sat as a CSS background inside the Elementor page stylesheet, discoverable only after 51 render-blocking stylesheets (~1.2 s), while Lighthouse still looked fine and CrUX showed the damage. Hero re-served as optimized WebP with fetchpriority=high (a second page went 3.6 MB to 83 KB), stylesheet chain trimmed, leftover block plugins removed, GTranslate /es/ pages cached through Cloudflare.

  • Macaw Digital Marketing

    US agency retainer, Elementor client roster

    6s+ builds252ms TTFB

    Speed partner for an agency's Elementor clients (hydromer.com, sciencebranding.com, luxwashauto.com), 2025 into 2026. hydromer.com: most traffic was missing the host page cache and triggering 6 s+ uncached Elementor page builds; after migration and cache coverage, mobile TTFB measured 252 ms over 24 h in DebugBear, a report the client could re-run. sciencebranding.com: audited at 2.54 s TTFB, then EWWW image optimization, WP Rocket unused-CSS removal (its cron had been silently dead, so the feature never ran), and page caching that bypasses the slow host took PageSpeed consistently into the 90s. Same retainer: Elementor editor stalls (10+ AJAX calls with addon widgets), popup cache-render bugs, Elementor Pro forms with reCAPTCHA.

  • Workever

    Workforce-management SaaS, WP + Elementor

    3s+ www redirectedge-cached HTML

    The complaint in the job post: the www-to-non-www redirect alone stalled the first visit for over 3 seconds, on a WordPress + Elementor + Cloudflare stack loaded with JetEngine/JetElements widgets and an Elementor editor slow to open and save every page. Fixes: the geo-location popup logic moved to the client side so the server serves one cached HTML to everyone, Cloudflare APO layered on top, a plugin diet, and the hosting plan right-sized to a dedicated-CPU tier.

  • Asana Recovery

    Addiction-recovery clinics, US

    Core Web Vitals fix on an Elementor build where invalid HTML and layout instability traced back to the Elementor Header & Footer Builder plugin: plugin removed, header markup clean, two contracts with the second hourly for follow-up work.

    "Had an amazing experience working with Milan. He knows his code and tells it like it is. I completely trust his analysis and pricing. Will use again."
    Upwork 5.0

How these numbers were captured.

Outcomes come from client-visible reports: PageSpeed Insights runs, DebugBear RUM windows (hydromer.com's 252 ms is a 24 h mobile TTFB average), CrUX and Search Console field data, and report links the clients could re-run at the time. Engagement narratives are paraphrased from project records, never pasted from private correspondence; quotes are verbatim public Upwork feedback only. The 51 stylesheets, the 5.4 MB hero, the 19-of-300+ icon subset, and the 70-110 KB HTML pages are engagement artifacts, not estimates.

One honest caveat, because this page would be sales fluff without it: Elementor sites pass Core Web Vitals. planergy.com holds a sub-200 ms INP average on Elementor, demagieexpert.nl sits near zero CLS, and rawteen.com chose to keep the builder after being told dropping it was an option. Slow is not the builder's verdict; unmanaged is.

Your builder is not the verdict.

Free audit: I will open the same six layers on your Elementor site and tell you which ones are costing you, with numbers from reports you can re-run.

Get a free audit