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.
It’s also ideal to skip shared hosting entirely and go straight to cloud. I listed a few solid recommendations in the hosting section. GoDaddy, EIG (Bluehost and HostGator), and SiteGround have a slow TTFB. Combine this with Elementor and it’s a recipe for a slow site.
How to speed up a slow Elementor site
- Optimize DOM Output
- Improve Asset Loading
- Go Easy On Elementor Plugins
- Use Plugins With Modular Design
- Hard Code Your Header, Footer, Sidebar
- Reduce TTFB With Cloud Hosting
- Upgrade To PHP 7.4
- Enable Redis + Memcached
- Increase Memory Limit To 256MB
- Configure A Solid Optimization Plugin
- Optimize Images
- Optimize Google Fonts
- Optimize Third-Party Code
- Add Preload, Prefetch, Preconnect
- Clean Your Database
- Utilize CDNs
- Use Elementor’s Hello Theme
- Disable WooCommerce Scripts, Styles, Cart Fragments
- Find Bottlenecks In GTmetrix
- Explore Plugins By Gijo Varghese
- Eliminate Render-Blocking Resources
- Serve Static Assets With An Efficient Cache Policy
- Ensure Text Remains Visible During Webfont Load
- Finish The Last 10% With Perfmatters
- Remove Elementor
It’s a 44 minute video but worth watching.
- 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.
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.
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.
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.
- AdSense Click Fraud Monitoring
- All-In-One Event Calendar
- Backup Buddy
- Beaver Builder
- Better WordPress Google XML Sitemaps
- Broken Link Checker
- Constant Contact for WordPress
- Contact Form 7
- View Full List Of 73 Slow Plugins
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.
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
Most hosting recommendations are honestly garbage.
Join the WordPress Hosting Facebook Group to get unbiased feedback from knowledgeable people who’ve been around the block. I won’t tell you to switch hosts if you don’t need to, so run your website through Lighthouse and check for slow server response times (TTFB) over 600ms.
If your TTTFB is slow, many people in Facebook groups (including myself) use Cloudways WordPress Hosting. Specifically their DigitalOcean or Vultr High Frequency plan. Sure, it’s $10-$13/month, but we’re talking about speed, TTFB, and core web vitals – not being cheap.
Take a look at conversations, migration results, and polls posted in some of these Facebook groups. Or look at Backlinko’s PageSpeed Test where he found SiteGround has a slow TTFB. You already know GoDaddy and EIG brands (Bluehost and HostGator) are obviously not good. Hosting affects TTFB, LCP, and other web vitals which will be a ranking factor as of May, 2021.
Here are 22 people who moved to Cloudways and posted their results (click image to enlarge):
Recent Facebook polls taken on “the best hosting” (click image to enlarge):
I use Cloudways DigitalOcean who is #1 in most recent Facebook polls.
Not saying hosting is everything, but it helps.
This is a simple Pingdom test to measure TTFB + load times of 16 WordPress hosts. I installed the same Astra Starter Site on 16 hosting accounts (using separate domains) while measuring Pingdom load times for 1 week at 30 minute check intervals, as well as TTFB in various tools. No caching or CDN (with same plugins) are being used since I’m strictly comparing the server. Some domains are still live (cwdoserver.com is hosted on a $10/month Cloudways DO plan and stgrndserver.com is on SiteGround GrowBig). I cancelled most accounts since it got expensive. Even when browsing through those 2 sites or running your own tests, you’ll see the difference.
I use Cloudways because:
- My TTFB is consistently under 200ms.
- Free migration service made it easy to try them.
- They continuously update their speed technology.
- Multiple caching levels (Redis, memcached, Varnish).
- Support is great as reflected in their Trustpilot reviews.
- Free SSL, staging, bot protection, cron job management.
- Monthly pricing with no long-term contracts or high renewals.
- They have a Cloudways Users Facebook Group to ask questions.
- Choice of 5 cloud providers: DO, Vultr, AWS, Google Cloud, Linode.
- Their community manager answered my questions when signing up.
- Launching a server yourself and using their migrator plugin is also easy.
- Ain’t nobody got time for shared hosting when trying to pass web vitals.
Affiliate Disclaimer – if you sign up for Cloudways using my affiliate link, I seriously appreciate it. I try to support my recommendations with real, unbiased evidence. I also make donations ($6,000 to GoFundMe so far) and your support would help. It’s easy to request a free migration and promo code OMM25 gets you 25% off the first 2 months.
8. Upgrade To PHP 7.4
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).
You can do this in your hosting account:
9. 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!
10. Increase Memory Limit To 256MB
Check your memory limit in Elementor → System Info.
Both Elementor, WordPress, and WooCommerce recommend a 256MB memory limit.
You can usually change memory limits in your hosting account:
Otherwise, add this code to your wp-config.php file.
define( 'WP_MEMORY_LIMIT', '256M' );
11. Configure A Solid Optimization Plugin
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.
WP Rocket settings (click on image to enlarge):
12. 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.
13. 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).
14. 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.
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.
15. 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.
16. 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.
17. 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.
18. 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.
19. Disable WooCommerce Scripts, Styles, Cart Fragments
Perfmatters lets you do this with 1-click:
20. Find Bottlenecks In GTmetrix
Other than measuring scores + load times, you can uncover quite a few things in GTmetrix. Since every Elementor site is different, you want to find exactly what is slowing down yours.
Time To First Byte
21. Explore Plugins By Gijo Varghese
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.
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.
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.
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.
25. Finish The Last 10% With Perfmatters
Perfmatters (by Kinsta) takes care of what I like to call “miscellaneous speed optimizations.”
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.
- 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 on image 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.
No doubt Elementor is slow.
I’m finally done removing Elementor and things are looking better.
Frequently Asked Questions
Is Elementor slow?
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.