Page builders are responsible for more 'why is my WordPress site slow' tickets than any other category of plugin. Elementor on a default install ships roughly 350 to 500KB of JavaScript and 250 to 400KB of CSS before you have added any content. Divi is in the same range. A clean Gutenberg page, by contrast, ships under 80KB of CSS and almost no JavaScript. The difference shows up directly in Largest Contentful Paint, Interaction to Next Paint, and the mobile Lighthouse score.
The situation in 2026 is better than it was three years ago. Elementor's flexbox containers, the deprecation of jQuery in many widgets, and Divi 5's full rewrite have all narrowed the gap. A well-configured Elementor site can now ship under 200KB of JS and pass Core Web Vitals on mobile. But the floor is still the floor: page builders carry overhead, native blocks do not, and on a high-conversion landing page that 150KB difference is the gap between 'good' and 'needs improvement'.
This guide covers why page builders add weight, how to optimize Elementor and Divi specifically, why Gutenberg with the native block editor is the lightest option, a comparison table of typical JS and CSS weight per builder, and when migrating off a builder is worth the effort. If you have not yet narrowed down whether the builder is the actual bottleneck, start with why is WordPress so slow; for the full picture from hosting to assets, see the parent Ultimate Guide to WordPress Speed Optimization.
TL;DR
Gutenberg with a block theme is the fastest path, period. Elementor and Divi can be made acceptable but never match native blocks on mobile LCP. If you are on Elementor, switch every section to flexbox containers (not the legacy section/column model), enable 'improved asset loading', 'improved CSS loading' and 'inline font icons' in the experiments panel, and disable widgets you do not use in the role manager. If you are on Divi, upgrade to Divi 5 (rewritten engine, no jQuery dependency on the front end), use dynamic CSS, and disable unused modules. Across every builder, pair the work with a speed plugin that handles caching, defer JS and remove unused CSS, but do not expect the plugin to fully compensate for a heavy builder. The fastest sites are not 'optimized Elementor sites', they are sites that switched to Gutenberg for the high-traffic pages and kept the builder for the marketing pages that genuinely need its features.
Key Takeaways
- ✓Elementor and Divi ship 200 to 500KB of JS and CSS before any content is added; Gutenberg ships under 80KB.
- ✓Elementor flexbox containers are 30 to 50% lighter than the legacy section/column model. Migrate.
- ✓Divi 5 dropped the front-end jQuery dependency that made earlier versions slow on interaction metrics.
- ✓Gutenberg with a block theme is the only stack that consistently passes mobile Core Web Vitals out of the box.
- ✓A speed plugin reduces builder overhead by 30 to 50%; it does not eliminate it.
- ✓High-traffic landing pages benefit most from being rebuilt in native Gutenberg blocks.
- ✓Migration is rarely all-or-nothing; rebuild the top 5 to 10 pages and leave the rest.
Why Page Builders Add Weight
A page builder is, at its core, a generalized front-end framework that has to support every possible layout, every possible widget, and every possible interactive behavior, on every page. That generality is the cost.
When the browser loads an Elementor page, it pulls in: the core Elementor frontend script, a swappable library of widget scripts (slider, carousel, accordion, tabs, lightbox, animated headlines, counters), the styling for every widget the page might use, icon font files for Font Awesome and Elementor's own icon library, the Swiper.js library for any slider, and on older sites a jQuery dependency that has not been removed yet. Even with 'improved asset loading' on, a typical Elementor page still ships 200 to 350KB of JS and 150 to 250KB of CSS just for the builder.
Divi has the same structure: a core engine, a module library, icon fonts, and a stylesheet that has to cover every visual option the builder exposes. The Divi 5 rewrite cut the engine weight roughly in half and removed the front-end jQuery dependency, but the order of magnitude is the same as Elementor.
Gutenberg works differently. The core block editor ships its own CSS to the front end (about 60 to 80KB on a block theme, less on a classic theme), but the JS the editor uses to render blocks in the admin is not shipped to the front end at all. A Gutenberg page renders as semantic HTML with the theme's CSS, full stop. No widget framework, no interaction layer, no icon font, no Swiper. The browser parses HTML and CSS and the page is done.
The weight matters on three metrics. Largest Contentful Paint, because the render-blocking CSS in the head delays the first paint of the hero. Interaction to Next Paint, because every interactive widget the builder loads ties up the main thread when the user taps. And Total Blocking Time, which directly feeds into the Lighthouse performance score that many SEO tools surface.
Optimizing Elementor
Elementor in 2026 is meaningfully faster than Elementor in 2022, but only if you actively turn on the modern features. Default installs from older sites are still configured the way they were three years ago.
Switch to flexbox containers. This is the single largest change. The legacy 'section / column / widget' model wraps every layout in three to five extra HTML elements with their own CSS classes. The flexbox container model uses a single container element with CSS flexbox or grid. On a typical landing page, switching to containers cuts HTML weight by 30 to 50%, removes hundreds of unused CSS rules, and improves CLS because flexbox layouts settle faster than nested sections. New pages should always use containers; existing pages can be converted with the Container Converter tool in the Elementor settings.
Turn on the performance experiments. Elementor's experiments panel (Elementor, Settings, Experiments) exposes the modern features that are not enabled by default on older sites. Activate: Improved Asset Loading (only loads widget JS for widgets actually used on the page), Improved CSS Loading (loads widget CSS on demand instead of one giant stylesheet), Inline Font Icons (replaces icon fonts with inline SVG, eliminating a render-blocking font request), and Optimized DOM Output (reduces wrapper elements further). Each one is a measurable win; together they cut Elementor's footprint by 40 to 60%.
Disable widgets you do not use. Elementor includes roughly 90 widgets in the free version, more in Pro. Each widget that is even potentially used contributes to the CSS that ships. Go to Elementor, Role Manager, and disable widgets you have never used (Counter, Progress Bar, Star Rating, Animated Headline, Price Table). For Pro users, also disable Posts, Portfolio, Slides and Form widgets if they are not in your design.
Stop nesting widgets inside widgets. Inner Section was the workaround for the lack of containers. Now that containers exist, nested Inner Sections are pure bloat. Audit your top pages and flatten the hierarchy.
Pair with WP Rocket or FlyingPress. Caching covers TTFB; the speed plugin's defer JS, delay JS and remove unused CSS features cover the Elementor JS bundle. Exclude the Elementor preloaded scripts from delay JS or interactive widgets break. The WordPress speed plugins guide covers the stack in detail.
After all of this, a well-built Elementor page on a fast host typically lands at LCP 2.0 to 2.8 seconds on mobile, Lighthouse 75 to 92, and total page weight 600KB to 1.2MB. Better than 2022 Elementor by a lot. Still measurably heavier than the same page in Gutenberg.
Optimizing Divi
Divi's optimization story split in 2025 with the release of Divi 5. The pre-5 versions and Divi 5 are functionally different products from a performance perspective.
Upgrade to Divi 5. This is the prerequisite. Divi 5 was rewritten from scratch with a React-based back end and a vanilla-JS front end that finally drops the jQuery dependency. Pages built on Divi 5 ship roughly 50% less JavaScript than the same pages on Divi 4, and Interaction to Next Paint metrics improve correspondingly. If you are still on Divi 4 in 2026, the upgrade is the largest single performance change available to you. Test on staging first because some third party Divi extensions had compatibility gaps through 2025.
Turn on Performance options. Divi's Theme Options, Performance tab includes the same category of features as Elementor's experiments: Dynamic Module Framework (only loads the JS for modules actually used on the page), Dynamic CSS (only loads the CSS for features actually used), Critical CSS (inlines the above-the-fold CSS in the head), Defer jQuery and jQuery Migrate (legacy support, keep on for Divi 4 sites only), Defer Generic jQuery, Improve Google Fonts Loading and Limit Google Fonts Sources. Turn all of these on, test for layout regressions, and disable specifically the ones that break your theme.
Use the Divi Image Lazy Load and async loading options. Divi has its own image handling. Combined with an image plugin like ShortPixel or Imagify, this covers WebP and AVIF delivery, lazy loading and srcset.
Disable unused modules at the role level. Divi includes around 50 modules. Editor, Role Editor lets you hide modules from the builder UI, which does not strip them from the CSS bundle but does prevent your editors from accidentally using a heavy module on a high-traffic page.
Avoid the deprecated visual builder global stylesheets on landing pages. The Divi global module library and global presets save time, but every global element loaded into the builder ships its CSS to every page that uses any global element. Keep landing pages free of global modules where possible.
Divi 5 with Performance options enabled, a strong cache plugin, and a careful module diet lands at LCP 2.1 to 2.9 seconds on mobile and Lighthouse 78 to 90 on a typical sales page. Roughly comparable to an optimized Elementor site, and roughly 1.5 to 2 times heavier than the same page in Gutenberg.
Gutenberg and Native Blocks: The Lightest Option
Gutenberg is the WordPress core block editor. It ships with WordPress, costs nothing, and produces front-end HTML that is closer to hand-coded markup than any page builder.
A Gutenberg page with a block theme (Twenty Twenty-Five, Frost, Ollie, Blockbase) typically ships 50 to 80KB of CSS and zero to 20KB of JS to the front end. The JS is only loaded when a block specifically needs it (the navigation block on mobile, the search block, embeds). Static content blocks (paragraph, heading, image, columns, group, cover) ship as semantic HTML with no JS at all.
What this means in practice: a Gutenberg landing page on the same hosting as an Elementor page typically renders LCP 0.8 to 1.4 seconds faster on mobile, scores Lighthouse 90 to 100 instead of 75 to 90, and ships 400 to 900KB less total page weight.
The trade-off is editor flexibility. Gutenberg's design controls are less granular than Elementor's: per-device padding requires custom CSS or a block extension like GenerateBlocks, animation requires a plugin, and complex multi-column responsive layouts take more clicks. The gap has narrowed in 2026 with Site Editor improvements and the maturation of block libraries (GenerateBlocks Pro, Kadence Blocks, Stackable), but Elementor is still faster for a non-developer to build a complex landing page in.
For most marketing sites the right answer is hybrid: Gutenberg for blog posts, documentation, and the long-tail content that makes up 80% of the page count, and a page builder only for the 5 to 15 high-effort pages that genuinely need its features. The blog posts and product pages get fast LCP for free; the landing pages stay editable by the marketing team.
If you are starting a new site in 2026, default to a block theme and Gutenberg unless you have a specific reason not to. If you are on a builder already, the migration calculus is the next section.
Page Builder Comparison Table
Approximate front-end weight for a typical landing page (hero, 3 feature columns, testimonial, CTA, footer) on each builder with default settings and with optimization features enabled. Measured on a standard WordPress install with a clean theme, no caching, no CDN, so the absolute numbers are a baseline; a real cached page through a CDN will be smaller. The ratios are what matter.
| Builder | Default JS | Default CSS | Optimized JS | Optimized CSS | Default Mobile LCP | Optimized Mobile LCP |
|---|---|---|---|---|---|---|
| Gutenberg (block theme) | 0 to 20KB | 50 to 80KB | 0 to 20KB | 40 to 60KB | 1.4 to 2.0s | 1.0 to 1.6s |
| Elementor (containers, experiments on) | 200 to 350KB | 150 to 250KB | 120 to 180KB | 80 to 140KB | 3.2 to 4.5s | 2.0 to 2.8s |
| Divi 5 (performance options on) | 180 to 300KB | 140 to 220KB | 110 to 170KB | 70 to 130KB | 3.0 to 4.2s | 2.1 to 2.9s |
| Beaver Builder | 150 to 250KB | 100 to 180KB | 90 to 140KB | 60 to 110KB | 2.8 to 3.8s | 1.8 to 2.6s |
| Bricks Builder | 80 to 160KB | 60 to 120KB | 50 to 100KB | 40 to 80KB | 2.2 to 3.0s | 1.4 to 2.2s |
| Oxygen Builder | 60 to 140KB | 40 to 100KB | 40 to 90KB | 30 to 70KB | 2.0 to 2.8s | 1.3 to 2.0s |
Readings to take from this table. Gutenberg is roughly 5 to 10 times lighter on JS than Elementor or Divi after optimization. Bricks and Oxygen are the page builders that come closest to Gutenberg on weight, by being built more like a CSS framework and less like a widget library. Elementor and Divi are the most heavily marketed and the heaviest. Beaver Builder is the middle ground.
Optimization roughly halves the JS and CSS weight, but it cannot close the gap to the lighter builder above it. An optimized Elementor page is still measurably heavier than a default Beaver Builder page.
When to Switch or Migrate
Migration is the conversation no agency wants to have with a client. It is also, in 2026, often the right answer for the small set of pages that move the most revenue.
Stay on the current builder if: the site is content-heavy with hundreds of pages, the editorial team is non-technical, no individual page is responsible for more than a few percent of revenue, and the current builder, after optimization, lands LCP under 3 seconds on mobile. The migration cost is not justified.
Rebuild the top pages in Gutenberg if: one to ten pages drive the majority of conversions or organic traffic, those pages are still over 3 seconds LCP after optimization, and there is a copywriter or designer comfortable using Gutenberg. Hybrid sites (Elementor for the marketing pages, Gutenberg for the blog and product pages) are common and work well. Tools like Reusable Blocks, GenerateBlocks Pro and Kadence Blocks make Gutenberg layouts close to Elementor's capability for non-developers.
Migrate the whole site if: the site is small (under 50 pages), the brand is being relaunched anyway, the current builder is a constraint on the redesign, or the builder's licensing terms or support quality have become a business risk.
Migrate to a lighter builder (Bricks or Oxygen) if: the team needs page-builder flexibility but the current weight is unacceptable, and there are developers on staff who can handle the steeper learning curve. Bricks especially has won market share in 2025 to 2026 from Elementor among developer-led shops.
Choosing a theme rather than a builder? See the fastest WordPress themes in 2026 ranked by field data, GeneratePress, Kadence, Bricks and Astra measured on real Core Web Vitals pass rates.
The practical playbook: install Gutenberg blocks alongside Elementor (they coexist without conflict), rebuild your three highest-traffic landing pages in Gutenberg, set them as separate URLs, and run a 30-day A/B test against the Elementor versions. The conversion rate impact is almost always positive on mobile and tells you whether the wider migration is worth the budget.
Page builders also inflate the database: heavy autosaves, post revisions and serialized layout meta accumulate quickly, so pair the builder work with WordPress database optimization.
If the builder choice turns out to be one part of a larger speed problem (slow hosting, no caching, oversized images, plugin bloat), the WordPress speed optimization service handles the full stack as one engagement: hosting recommendations, caching, image work, builder-specific tuning, and selective Gutenberg rebuilds where the data supports them.
Frequently Asked Questions
Is Elementor bad for WordPress speed?
Not bad, but heavy. Elementor on default settings ships 350 to 500KB of JavaScript and CSS before any content. With flexbox containers, improved asset loading and the rest of the experiments turned on, that drops to 200 to 320KB. A well-optimized Elementor site can pass mobile Core Web Vitals; a default install on cheap hosting usually does not.
What is the fastest WordPress page builder?
Gutenberg, by a wide margin. It ships 50 to 80KB of CSS and almost no JavaScript to the front end, because the rendered output is semantic HTML. Among third party builders, Oxygen and Bricks are the lightest, both designed more like a CSS framework than a widget library. Elementor and Divi are the heaviest of the popular options.
Is Divi faster than Elementor in 2026?
Divi 5 and an optimized modern Elementor install are roughly comparable. Both ship 200 to 350KB of JS and CSS after optimization and land mobile LCP in the 2.0 to 2.9 second range on good hosting. Divi 4 versus Elementor is no longer a meaningful comparison; the Divi 5 rewrite closed the gap that existed in earlier versions.
Can a caching plugin fix a slow page builder?
Partially. Page caching cuts Time to First Byte, defer JS reduces the parse/execute cost of the builder bundle, and remove unused CSS strips the builder styles the page does not need. Together these cut visible LCP by 30 to 60%. They do not eliminate the underlying weight; a 400KB Elementor bundle is still 400KB the browser has to download.
Should I migrate my site off Elementor?
Rarely all at once. The right approach for most sites is hybrid: rebuild the top 3 to 10 highest-traffic pages in Gutenberg for the speed and conversion lift, and keep Elementor for the long tail of marketing pages where editing speed matters more than mobile LCP. Full migrations are worth the cost only on small sites or when a redesign is already planned.
Does the Gutenberg block editor work for landing pages?
Yes, especially with a modern block library (GenerateBlocks Pro, Kadence Blocks, Stackable). The native blocks cover most layouts; the libraries add the design controls (per-device padding, animations, container queries) that Elementor users expect. A Gutenberg landing page typically loads 1 to 2 seconds faster on mobile than the same design in Elementor.
Do block themes really matter for speed?
Yes. A block theme (Twenty Twenty-Five, Frost, Ollie) ships less CSS than a classic theme because the Site Editor only enqueues styles for blocks actually present on the page. Classic themes ship one large stylesheet for the entire theme regardless of what is on a given page. On a Gutenberg site, switching from a classic theme to a block theme typically saves 30 to 80KB of render-blocking CSS.