Blog Argument

Why block themes load zero unused CSS, and why page builders cannot

How WordPress separates core block styles on demand, how page builders bundle runtime assets, and what that architectural difference does to Core Web Vitals.

Page speed audits consistently flag unused CSS as a primary bottleneck on WordPress sites. On traditional themes and page builders, a visitor viewing a simple contact page still downloads stylesheets containing styles for carousels, accordion toggles, pricing grids, and complex animations that never appear on that URL.

Block themes eliminate unused CSS through an architectural mechanism built into WordPress core: modular asset loading.

How WordPress core isolates block stylesheets#

Since WordPress 5.8, core supports the should_load_separate_core_block_assets filter (enabled by default in block themes). When active, WordPress does not load a monolithic stylesheet like style.css containing rules for every block in the platform.

Instead, the rendering engine inspects the blocks present in the current template and post_content, enqueuing only the CSS files required by those specific elements:

<!-- Only loaded if a table block is present on the page -->
<link rel="stylesheet" href="/wp-includes/blocks/table/style.min.css" />

<!-- Only loaded if a button block is present on the page -->
<link rel="stylesheet" href="/wp-includes/blocks/buttons/style.min.css" />

If a page contains only three paragraphs, a heading, and an image, WordPress loads approximately 3KB to 5KB of block CSS. The browser parses the stylesheet immediately without waiting for unused layout definitions.

Why visual page builders require monolithic stylesheets#

Visual page builders operate under a fundamentally different technical constraint. Because builder interfaces allow users to apply arbitrary utility classes, flexbox layouts, hover states, and entrance animations to any container, the browser requires a broad CSS runtime to interpret those classes on page load:

  • Framework runtime bundles: Builders typically enqueue a core layout engine (such as frontend-lite.min.css or grid frameworks) on every page request regardless of layout complexity.
  • Icon and font libraries: Entire icon font sets (such as Font Awesome or custom icon packages) are frequently enqueued globally even when a page uses only a single arrow icon.
  • Dynamic JavaScript listeners: Interactive widgets require persistent event listeners and script libraries (like Swiper or custom scroll engines) that execute during main thread parsing.

While builder optimization plugins attempt to delay or tree-shake these assets, they remain layered over an inherently monolithic architecture.

Asset footprint comparison#

MetricTypical page builder pageClean block theme page
Initial CSS footprint80KB – 250KB5KB – 20KB
JavaScript framework overhead100KB – 350KB0KB (standard core blocks)
Render-blocking requests3 – 8 external files0 – 2 inline/separate assets
Unused CSS warning in LighthouseTypically 40KB+0KB – 2KB

The impact on Core Web Vitals#

The structural reduction in stylesheet weight directly improves Core Web Vitals:

  1. First Contentful Paint (FCP): Because the browser parser does not need to download and evaluate large CSS bundles before constructing the render tree, paint starts hundreds of milliseconds earlier.
  2. Largest Contentful Paint (LCP): Critical hero text and images render immediately without waiting behind render-blocking scripts.
  3. Interaction to Next Paint (INP): Pure core block layouts execute zero custom JavaScript on initial render, leaving the browser main thread free to handle user clicks and input without latency.

Avoiding pattern libraries that reintroduce asset bloat#

The performance advantage of block themes disappears if you install pattern libraries that bundle their own vendor CSS frameworks or custom JavaScript plugins.

When choosing block patterns for production projects, verify that each section relies purely on native WordPress blocks (wp:group, wp:columns, wp:heading, wp:buttons). Core blocks leverage the platform's modular asset loader automatically, ensuring that adding new sections never adds runtime framework bloat.

Pattern Paste delivers 232 production-ready block patterns built with standard WordPress core markup, requiring zero runtime JavaScript and zero extra CSS bundles. Explore the patterns, or view how block themes compare to page builders.

Read next

All posts