How To Speed Up A Slow Elementor Website (26 Ways)

Have a slow Elementor site?

This was already asked in the Elementor Facebook Group so I included their solutions (plus many others) in this tutorial. Elementor says the most common reasons for a slow website are your servers, media, third-party scripts, plugins, no CDN, and using a mediocre cache plugin.

Ever since GTmetrix included Lighthouse recommendations, you’ll see a lot of people in Facebook Groups (myself included) removing Elementor and replacing it with Gutenberg, Oxygen, and other alternatives. That’s because Elementor adds bloat (CSS, JavaScript, DOM elements) which affect multiple items in GTmetrix and PSI. Obviously, this may be a last resort.

It’s also ideal to skip shared hosting entirely and go straight to cloud. I listed a few solid recommendations in the hosting section, but Cloudways is who I use and is the most popular option in the WordPress Hosting Facebook Group. GoDaddy, EIG (Bluehost and HostGator), and SiteGround have a slow TTFB. So if your TTFB is slow, your hosting is definitely a culprit.

Slow-Elementor

Elementor Speed Optimization

It’s a 44 minute video but worth watching.

 

1. Remove Unused Elementor CSS + JavaScript

Removing unused JavaScript and CSS can improve multiple items in PageSpeed Insights. This is a big reason why websites using heavy page builders were punished in the big GTmetrix update.

  • Perfmatters vs. Asset CleanUp – I compared these in this post. I use Perfmatters since the UX/UI is much easier. Perfmatters is paid, Asset CleanUp is free but also has a pro version which lets you unload custom CSS while Perfmatters does not. I like Perfmatters.
  • Activate The Script Manager – if using Perfmatters, activate the script manager under Settings → Perfmatters → Extras → Script Manager (enable). If using Asset CleanUp, activate Test Mode to prevent breaking things while testing changes. Perfmatters doesn’t have a Test Mode, but you can always undo a setting or create a staging site for testing.
  • Disable Unused Scripts – access your script manager in Perfmatters or Asset Cleanup to view the CSS and JavaScript loaded by Elementor. Try disabling elementor-sticky, dialog, share-link, swiper, animations, icons, and wp-block-library if you don’t use these features.

Remove Elementor CSS JavaScript

Remove Unused Elementor CSS JavaScript

Try disabling other scripts/plugins (examples below):

  • Disable contact form everywhere but contact page
  • Disable social sharing plugin everywhere but posts
  • Disable table plugin everywhere but content with tables
  • Disable rich snippet plugin everywhere but content with rich snippets
  • Disable fonts everywhere except certain areas (if you use multiple fonts)
  • Disable WooCommerce scripts/styles except on non-eCommerce pages (see #18)

 

2. Optimize DOM Output

This improves avoid excessive DOM size in PSI.

Enable it under Elementor → Settings → Experiments → Optimized DOM Output.

This removes unnecessary div wrappers (elementor-inner, elementor-row, and elementor-column-wrap) in your code. Check your Elementor website for visible errors after enabling this.

Elementor Optimized DOM Output

 

3. Improve Asset Loading

Improved asset loading is an experimental feature which requires Elementor Pro v3.0.9 and above. This only loads certain elements where they actually load (JS files in Elementor Core widget handlers, and Swiper in Elementor + Elementor Pro). Elementor plans to add more experimental features to improve speed, so review the changelog before updating the plugin!

Enable it under Elementor → Settings → Experiments → Improved Asset Loading.

Elementor Improved Asset Loading

 

4. Go Easy On Elementor Plugins

Don’t go crazy with third-party Elementor plugins.

Many designers rely on multiple Elementor addons to build their site only to realize they’re slowing it down. I ended up deleting Ultimate Addons, Premium Addons, and JetEngine since these plugins were only used in a few areas of my site and weren’t worth the extra load times.

Avoid Other Slow Plugins

Statistic, backup, portfolio, live chat, form, slider, JetPack, and other plugins can slow down your site. Query Monitor will find your slow plugins. But even Query Monitor and Broken Link Checker constantly run in the background and consume resources. Delete them if you’re done.

The WP Hive Chrome Extension lets you view plugins in the WordPress repository and see whether they have an impact on memory usage or PageSpeed Insights before even installing it.

  1. AddThis
  2. AdSense Click Fraud Monitoring
  3. All-In-One Event Calendar
  4. Backup Buddy
  5. Beaver Builder
  6. Better WordPress Google XML Sitemaps
  7. Broken Link Checker
  8. Constant Contact for WordPress
  9. Contact Form 7
  10. View Full List Of 73 Slow Plugins

Make sure plugins don’t take a long time to load:

Slow WordPress Plugin Waterfall

 

5. Use Plugins With Modular Design

Modular design lets you disable plugin features you’re not using.

Some third-party Elementor plugins use modular design like Ultimate Addons and Premium Addons (but they can still be slow as mentioned above). Other plugins like JetEngine do not. Modules are enabled by default. View the settings and deactivate modules you’re not using.

Disable-Addons

 

6. Hard Code Your Header, Footer, Sidebar

This made a huge improvement for me.

I hired WP Johnny to do this (I’m not a developer). He hard coded my header, menu, footer, and sidebar. I immediately noticed my site loaded faster and got better GTmetrix scores. These appear across your entire website; hiring a developer to code them in CSS is definitely worth it.

Even if you plan on using Elementor to design pages, you really don’t need Elementor in these areas. Hard coding them removes a lot of unnecessary code. Right now, Elementor only appears about 150 times in my blog’s source code which is much less than it used to. This is also less than my homepage (for example) which is still built in Elementor. WP Johnny is usually busy; you can also try finding a developer on freelancer.com or upwork.com who can hard code these.

 

7. Reduce TTFB With Cloud Hosting

Lighthouse fails your TTFB if it’s over 600ms.

If you have a slow TTFB, join the WordPress Hosting Facebook Group (WP Speed Matters is good too) to get unbiased feedback since most hosting recommendations are honestly garbage.

I use Cloudways is who is #1 in most recent Facebook polls and my TTFB is consistently <200ms. I’m currently on their Vultr High Frequency plan, but DigitalOcean is good too. It’s $10-$13/month, but we’re talking about fast cloud hosting, not cheap hosting with slow TTFBs.

Instead of reading biased reviews, I encourage you to do your own research. Join Facebook Groups and look at polls, migration results, and conversations on “the best hosting” (shown below). Check out Backlinko’s PageSpeed Test where he found SiteGround had a slow TTFB. You already know GoDaddy and EIG brands (Bluehost + HostGator) are not good choices. WP Engine went downhill, Hostinger writes fake reviews, and NameCheap is mainly for domains.

Recent Facebook polls show many people are moving away from low quality hosts to Cloudways, LiteSpeed, Kinsta, GridPane, and A2 Hosting (click on thumbnails to enlarge):

Moving from SiteGround
eCommerce Hosting Poll

People who moved to Cloudways and posted their results (click thumbnails to enlarge):

Cloudways Numbers
Cloudways-BuddyBoss
Cloudways Shoutout
Giving them a shout out in the WordPress Hosting Facebook Group
GTmetrix Report - OMM
I use Vultr High Frequency and you can click through my site to see how fast it loads
Digital Ocean Recommendation
DigitalOcean is also good and recommended in the WordPress optimization guide

Why I use Cloudways:

  • My TTFB is consistently <200ms
  • The WordPress admin loads instantly
  • Easier to pass web vitals on cloud hosting
  • Monthly pricing and free 3-day trials are nice
  • Server-level caching (Redis makes a big difference)
  • They do a free migration and have a migrator plugin
  • Support is fast/helpful as reflected in Trustpilot reviews
  • Choice of 5 cloud hosts: DO, Vultr, AWS, Google Cloud, Linode
  • They have a Cloudways Users Facebook Group to ask questions
  • Only major con is no email hosting, but there’s an option for Rackspace

Affiliate Disclaimer – if you sign up for Cloudways with my affiliate link, thank you! Most affiliates recommend things only for commissions but I take mine seriously and support them with evidence I also donate to GoFundMe campaigns and everything helps. They do free migrations but if you have questions about launching a server or anything else, you can reach out to me by leaving a comment. Cheers to a faster TTFB.

Cloudways Coupon Code
Sign up for Cloudways using promo code OMM25 to get 25% off 2 months

 

8. Optimize For Core Web Vitals

I have an extensive tutorial on optimizing WordPress for core web vitals (and how to fix 25+ items in PageSpeed Insights), but I want to share a few important parts of getting better scores.

Largest Contentful Paint – find your LCP element in PSI which is usually an image or background image. You should optimize it as best you can, especially if it loads across your site.

  • Preload the LCP image
  • Compress the LCP image (try 85%)
  • Serve the LCP image from your CDN
  • Reduce the LCP image’s size using WebP or SVG
  • Exclude LCP image (and other images in viewport) from lazy load

Largest Contentful Paint WordPress Element - Background Image

Cumulative Layout Shift – use Google’s Layout Shift Debugger and the “avoid large layout shifts” report in PSI to identify which elements on your website are causing elements to shift.

  • Specify dimensions of images, videos, iframes, ad div code
  • Ensure text remains visible during webfont load (fix FOIT)
  • Host fonts locally on your server and see if preloading them helps
  • Use CSS transform in animations instead of width/height attributes
  • Ensure optimize CSS delivery is working (i.e. in WP Rocket) to avoid FOUC
  • When moving elements, use transform: translate() instead of top, bottom, left, right

Cumulative Layout Shift Debugger

Total Blocking Time – caused by long tasks (over 50ms) that block the main thread. It’s often caused by heavy JavaScript but can also be from third-party code, fonts, CSS, and animations.

  • Avoid using plugins and themes with heavy JavaScript files
  • Defer, delay, minify, and optimize JavaScript as best you can
  • Identify third-party scripts with high blocking time and optimize them
  • Check your “avoid long main-thread tasks” report in PSI to pinpoint files

Main-Thread Blocking Time

 

9. Upgrade To PHP 8.0

Check your PHP Version in Elementor → System Info.

Upgrading PHP versions is one of the easiest ways to speed up your Elementor site. Kinsta’s PHP benchmarks show how higher PHP versions can run 2-3x faster. Elementor also recommends higher PHP versions and to increase memory limit to 256MB (see next step).

Elementor PHP Version

You can do this in your hosting account:

PHP 8.0

 

10. Enable Redis + Memcached

Redis and memcached are supported by most cloud hosts.

Cloudways supports both which can be activated in your account. SiteGround supports memcached which you can activate in SG Optimizer (use all 3 caching levels). Many people don’t take advantage of server caching, Redis, and speed services offered by their host. You should!

Hosting Application Services

 

11. Increase Memory Limit To 256MB

Check your memory limit in Elementor → System Info.

Both Elementor, WordPress, and WooCommerce recommend a 256MB memory limit.

Elementor Memory Limit

You can usually change memory limits in your hosting account:

Memory Limit

Otherwise, add this code to your wp-config.php file.

define( 'WP_MEMORY_LIMIT', '256M' );

 

12. Configure A Solid Optimization Plugin

WP Rocket and LiteSpeed are the gold standards for cache plugins.

I use WP Rocket but if you’re using a LiteSpeed server, you should be using LiteSpeed.

How your cache plugin is configured greatly impacts the speed of your Elementor site. WP Rocket and LiteSpeed come with features most cache plugins don’t have, meaning more optimizations and less plugins needed on your site. I have guides for nearly every cache plugin including the WP Rocket settings, W3 Total Cache settings, Autoptimize Settings, and others.

You can get 10% off WP Rocket by signing up for their email list on the coupons page.

 

13. Optimize Images

There are quite a few ways to optimize images:

  • Properly size images – avoid oversized images (make them smaller).
  • Compress images – use an image optimization plugin like ShortPixel.
  • WebP – next-gen images recommended in Lighthouse. Done by WebP plugins.
  • Lazy load images, iframes, videos – done using various speed plugins. Exclude images above the fold from lazy load and don’t use it if you have fast scrolling users (eCommerce).
  • Strip EXIF data from images – strips useless data from images like date, time, location, and camera settings when a photo was taken. Done by most image optimization plugins.
  • Specify image dimensions – make sure a width and height is specified in each image’s HTML. WP Rocket has an option to add missing image dimensions in the Media settings.
  • Serve images from a CDN – image URLs should be served from a CDN URL. If they’re not, try the CDN rewrite in Perfmatters or the Bunny CDN plugin. Cloudflare doesn’t do this.
  • Disable hotlinking – same thing as Cloudflare’s hotlink protection (some cache plugins like WP Rocket also have this). Prevents other websites from embedding your images.
  • Use adaptive images – serve smaller (adaptive) images to mobile users. One of the few things you can do to improve mobile load times. Done through an adaptive images plugin.

GTmetrix Image Optimizations

 

14. Optimize Google Fonts

There are also quite a few ways to optimize fonts:

  • Check GTmetrix Waterfall > Fonts.
  • Combine fonts into 1 single request.
  • Load fonts from your theme, not a plugin.
  • Limit number of fonts, weights, font icons.
  • Load fonts locally (you can use OMGF) and use WOFF2.
  • Add the font-display property manually or using a plugin.
  • Preload fonts (using WP Rocket, Perfmatters, or Pre* Party).

Preload-Fonts

GTmetrix Font Files

 

15. Optimize Third-Party Code

Just like Google Fonts are a third party request, so is AdSense, Analytics, Maps, Tag Manager, embedded videos, and even Gravatars or social sharing plugins which generate extra requests.

Third Party Usage

Optimizing Third-Party Requests

  • Use the add-ons tab in WP Rocket to host files locally.
  • Lazy load videos and replace iframe to eliminate requests to YouTube.
  • Host Google Fonts locally and avoid creating requests to fonts.gstatic.com.
  • Delay loading comments (e.g. wpdiscuz) and Gravatars to speed up comments.
  • Host Gravatars locally using WP User Avatar to avoid requests from gravatar.com.
  • Try Grow by Mediavine for social sharing buttons to prevent social media requests.
  • Delay third-party code using WP Rocket’s delay JavaScript execution or Flying Scripts.

 

16. Add Preload, Prefetch, Preconnect

You’ve probably seen these in your cache plugin or Perfmatters.

  • Preload – often used for links and fonts. Preloading links downloads a page when users hover over a link. Preloading fonts helps browsers discover fonts in CSS files (copy your font URLs from the GTmetrix Waterfall tab then paste them into the font preloading option). Both can be done in WP Rocket, Perfmatters, and Pre* Party Resource Hints.
  • Prefetch – helps browsers anticipate requests from third-party sites. View third-party code loading on your site (in Lighthouse). Next, grab their URLs or see this of common domains to prefetch. Lastly, prefetch them using one of the 3 plugins mentioned above.
  • Preconnect – establishes early connections to important third-party origins (item found in Lighthouse). Common with CDNs and fonts.gstatic.com but can’t be done in WP Rocket (use one of the other plugins). It should be used sparingly and tested once implemented.

WP Rocket Prefetch Preload

 

17. Clean Your Database

Many speed plugins clean your database, but they don’t let you delete tables left behind by old, uninstalled plugins. That’s why I like WP Optimize.

View the tables left behind by plugins shown as “not installed.” You probably installed the plugin, deleted it, but it left behind pre-configured settings in your database. So if you don’t plan on using that plugin again, remove it. Otherwise, WP Rocket and other cache plugins are fine for regular database cleanups, but install WP-Optimize especially after deleting unwanted plugins.

WP-Optimize-Tables

 

18. Utilize CDNs

A few notes about CDNs:

  • If visitors are close to your origin server, you don’t need a CDN.
  • Cloudflare’s DNS is faster than a cheap DNS from GoDaddy or Namecheap.
  • Minifying with Cloudflare can often be better (more aggressive) than cache plugins.
  • Cloudflare’s Rocket Loader can be hit or miss and can break your site (test carefully).
  • If using Cloudflare, setup a cache everything page rule. For dynamic sites, use the WP Cloudflare Super Page Cache plugin to use Cloudflare’s cache without breaking your site.
  • Browser cache TTL should be about how often you publish a new post (e.g. 10 days).
  • Setting up Cloudflare requires changing nameservers, other CDNs will use a CDN URL.
  • Cloudflare’s automatic platform optimization is worth $5/month and can improve TTFB.

Recently, I stopped using Cloudflare and WP Rocket’s RocketCDN. I switched to BunnyCDN which was highly recommended in Facebook threads. Both Cloudflare and RocketCDN can actually have a negative impact on load times and TTFB. If you’re not getting great results with those, I recommend BunnyCDN. It’s affordable and easy to setup using their setup instructions.

Instructions – choose a CDN, sign up, create a pull zone, grab your CDN URL, then add it to your site (usually in your cache plugin). Make sure images are being served from the CDN URL.

 

19. Use Elementor’s Hello Theme

Elementor’s Hello theme comes with almost no styling or scripts. It’s better to start with minimal bloat then add features. Gutenberg, GeneratePress, and Oxygen are lightweight too.

Fastest WordPress Themes

 

20. Disable WooCommerce Scripts, Styles, Cart Fragments

Just like you selectively disabled CSS and JavaScript in the first step, you can also use Perfmatters or Asset CleanUp to do the same thing with WooCommerce scripts and styles. Otherwise, these will load throughout your entire website (even on non-eCommerce pages).

Asset CleanUp WooCommerce

Perfmatters lets you do this with 1-click:

perfmatters woocommerce optimization

 

21. Explore Plugins By Gijo Varghese

Love this guy and his plugins; he even has his own WP Speed Matters Facebook Group.

Flying Scripts is my favorite because it lets me show Gravatars without affecting GTmetrix. He also has plugins for hosting analytics locally, image optimization, Flying Pages (preloads pages), and other useful plugins. Check out my 25+ WordPress speed optimization plugins for a full list.

Gijo Varghese plugins

 

22. Eliminate Render-Blocking Resources

If you have render-blocking errors in PageSpeed Insights, Autoptimize can fix this by inlining critical CSS and adding defer/async attributes.

Simply install the plugin and enable the settings below. For better control of choosing which files should have defer/async attributes, try the Async JavaScript plugin (the same developer).

Autoptimize Eliminate Render-Blocking

 

23. Serve Static Assets With An Efficient Cache Policy

To serve static assets with an efficient policy, Google wants your cache expiration to be 6 months (or 180 days). WP Rocket, CDNs, and many hosting accounts usually let you adjust this.

  • Cloudflare –  go to Caching → Browser Cache TTL, then set it for “6 months.”
  • Hosting Accounts – Cloudways (for example) has a static cache expiry option.
  • WP Rocket – edit your .htaccess file (WP Rocket adds this code there) and change the expiration. If you’re not sure how to edit .htaccess, use the Htaccess File Editor plugin.

WP Rocket Efficient Cache Policy

 

24. Ensure Text Remains Visible During Webfont Load

If you see this item in PSI, edit your fonts to include font-display: swap.

Most times, fonts use auto, block, and so forth. Simply changing this to “swap” should fix this. You can also use Gijo’s Swap Google Fonts Display plugin if you’re not comfortable editing this.

Google Font With Font-Display:

@font-face { font-family: Lato; font-display: swap; }

Google Font Without Font-Display:

@font-face { font-family: Lato; }

Other Font With Font-Display:

https://fonts.googleapis.com/css2?family=Lato:wght@100&display=swap

Other Font Without Font-Display:

https://fonts.googleapis.com/css2?family=Lato:wght@100

 

25. Finish The Last 10% With Perfmatters

Perfmatters (by Kinsta) takes care of what I like to call “miscellaneous speed optimizations.”

perfmatters features

Some of these are extremely useful; the script manager which lets you selectively disable plugins/scripts from certain pages, changing the autosave interval, limiting post revisions, preconnect, and disabling WooCommerce scripts, styles, and cart fragments. When it comes to these types of optimizations, I don’t know of any plugin that does a better job than Perfmatters.

What do you expect, it’s Kinsta.

 

26. Remove Elementor

If speed/SEO are important, consider removing Elementor.

Elementor is great for quickly deploying sites for clients. But if it’s your own site and you truly want to improve it, consider a lightweight alternative. Web vitals are becoming a large ranking factor and it’s unlikely you will pass the Web Vitals Test in PageSpeed Insights with Elementor.

Alternatives

  • Gutenberg blocks – redesign your site with Astra (using a Gutenberg template from the Starter Sites plugin). The Gutenberg Blocks plugin adds blocks to give you additional design options (plenty of YouTube tutorials). Or transfer your same design to Gutenberg.
  • GeneratePress – rated #1 fastest theme in some Facebook polls with plenty of designs to choose from in their Site Library. A good balance between fast and user-friendly themes.
  • Oxygen Builder – super lightweight but requires more technical skills. Compatibility issues have also been reported. Many people in Facebook Groups are moving to Oxygen and posting nice scores/reports. Use it if you’re a developer and want absolutely no bloat.
  • Kadence Theme – haven’t tried it yet but know it’s a popular alternative in Facebook Groups and used by Adam from WPCrafter. They also have a Gutenberg Blocks plugin.
  • Genesis Framework – not as popular since StudioPress got bought out by WP Engine and restructured their pricing, but my old site was built in Genesis and it definitely loaded fast.

Page builder migrations and polls on fastest themes (click thumbnails to enlarge):

Another alternative is to hire WP Johnny for his page builder removal services where he will replace Elementor with Gutenberg blocks. I hired him recently and he already hard-coded my header, menu, and footer instead of using Elementor. Soon, my site will be built entirely with Gutenberg. If you haven’t heard of WP Johnny, he’s a bigger WordPress speed wizard than me.

WP Johnny Page Builder Removal Service

No doubt Elementor is slow.

Not cool.

Elementor Souce Code

I’m finally done removing Elementor and things are looking better.

OMM GTmetrix Performance Report
For how long this post is with tons of images/comments, it still loads in under 1s

One last thread in case you didn’t find what you’re looking for:

Elementor Page Speed Optimization Tips

 

Frequently Asked Questions

Is Elementor slow?

Elementor adds extra CSS, JavaScript, and div wrappers to your site. Coupled with additional Elementor plugins and this can make your site slow. It can also cause multiple web vital errors related to CSS, JavaScript, network payloads, and DOM elements.

What are common reasons for a slow Elementor site?

Too many bloated plugins, unnecessary modules, cheap shared hosting, and lack of optimizing fonts, images, and third-party scripts can all slow down your Elementor site.

Why is the Elementor Editor slow?

If your Elementor Editor is slow, it's most likely due to high CPU consumption caused by plugins or lack of server resources. Increase your memory limit or look into cloud hosting.

Why is Elementor slow on mobile?

Try using mobile caching, adaptive images, responsive layouts, and avoid hamburger menus. However, most desktop optimizations carry over to mobile so try fixing those first.

Why is WooCommerce slow on Elementor?

Both Elementor and WooCommerce add extra scripts and styles to your site. Try selectively disabling these using Asset CleanUp or Perfmatters. You can also try disabling cart fragments if your customers don't use them as well as WooCommerce admin bloat.

Cheers,
Tom

About Tom Dupuis

Tom Dupuis 2017Tom Dupuis writes WordPress speed and SEO tutorials out of his apartment in Denver, Colorado. In his spare time, he plays Rocket League and watches murder documentaries. Read his bio to learn 50 random and disturbing things about him.

Subscribe
Notify of
guest
34 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments