LCP, CLS, INP by design

Best WordPress Themes for Core Web Vitals: The Traits That Pass

Google does not grade your theme. It grades the experience of your real visitors, and the theme is one of several suppliers to it. Still, some themes arrive with the right habits built in and others make you fight for every point. Here is how to tell them apart.

October 11, 2026 · 9 min read

The short answer

The best WordPress themes for Core Web Vitals serve fonts from your own domain, keep render-blocking CSS small, avoid jQuery in their own scripts and let you preload the hero image. Block themes like Twenty Twenty-Five and Ollie, and lean themes like Kadence, GeneratePress, Blocksy and Astra, have most of those traits. WoodMart, Divi and Avada can match them with settings on.

On this page
  1. A theme cannot pass Core Web Vitals for you
  2. Ten theme traits and who has them
  3. LCP: get the stylesheet, the font and the hero out of the way
  4. CLS: fonts, headers and late styles that push content around
  5. INP: the less script a theme runs, the faster taps answer
  6. Stores and builder sites fail on different pages
  7. Our shortlist, by how much work passing takes
  8. Prove it on your own pages before and after

A theme cannot pass Core Web Vitals for you

Core Web Vitals are scored on real visits, at the 75th percentile, across every page Google has data for. Your theme sits under all of those pages, which is why choosing well pays off. But a hero photo uploaded at full camera size, a chat widget or a cookie banner that pops in late can sink any theme. What a theme can do is start you near the line and avoid pushing you over it.

So this page ranks traits first and themes second. Each trait below has a known effect on one of the three metrics: Largest Contentful Paint, Cumulative Layout Shift or Interaction to Next Paint. Then we list which of the 21 themes we review have it, using vendor docs and theme source as of October 2026. If you are new to the metrics themselves, how to improve Core Web Vitals is the plain-English primer, and the WordPress performance hub shows how each metric connects to theme code.

Ten theme traits and who has them

Core Web Vitals traits in 21 WordPress themes, per vendor docs and theme source, October 2026
HelpsThemes with it
Fonts bundled with the themeLCP, CLSTwenty Twenty-Four, Twenty Twenty-Five, Ollie
Built-in local Google Fonts optionLCP, CLSKadence, Neve, OceanWP, WoodMart, Astra (tier not stated), Bricks Font Manager
Local fonts on a paid planLCP, CLSGeneratePress (GP Premium), Blocksy (Pro)
Font preloadingLCPAstra, Kadence, Avada
Choice of font-displayCLSAvada; Bricks custom fonts use swap
Critical CSSLCPDivi, Avada; Newspaper's CSS Analyzer is beta
CSS split by component, block or pageLCPKadence, Twenty Twenty-Four, Ollie, Divi, Bricks, WoodMart (vendor claim)
Hero image preload settingLCPWoodMart (Preload LCP Image)
Theme scripts free of jQueryINPBlock themes, GeneratePress, Kadence, Blocksy, Bricks, Neve; Astra bar one WooCommerce script
Deferred or on-demand JavaScriptINPDivi (Dynamic JavaScript), Avada, Genesis script loader

Two cautions. A trait in the docs is not a trait on your site until someone switches it on and checks it worked. And a missing trait can often be added with one well-chosen plugin, at the cost of another moving part. The themes that need fewest additions start with the advantage.

LCP: get the stylesheet, the font and the hero out of the way

Largest Contentful Paint waits on three things a theme influences: CSS that blocks rendering, fonts that must arrive before text can paint, and the hero image itself. The best themes for LCP shrink the first and let you control the other two.

  • Small first-paint CSS. Twenty Twenty-Four loads no theme stylesheet at all beyond theme.json output, and Ollie attaches block stylesheets only when that block renders. Kadence splits its CSS into header, content and footer files. Divi and Avada take the other route and generate critical CSS, deferring the rest.
  • Fonts from your own domain. Every font fetched from Google's servers means another connection before text paints. Storefront still loads Source Sans Pro from fonts.googleapis.com, so it starts behind. Kadence and Neve offer local hosting free; GeneratePress and Blocksy keep it on paid plans.
  • A hero that loads first. WoodMart has a Preload LCP Image setting, and its docs warn against lazy-loading the LCP image or running two lazy-load systems. Most themes leave this to you or a plugin, so check that the hero is not lazy-loaded.

When LCP still fails on a lean theme, the delay usually starts at the server or in a plugin. Fixing slow LCP walks through the checks in order, and the LCP comparison explains how a prerendered page avoids the server wait.

CLS: fonts, headers and late styles that push content around

Layout shift is the metric owners notice without a tool: the button that moves as you tap it. Themes contribute through font swaps, headers that resize, and styles that arrive after the first paint.

Font swaps. When a web font replaces a fallback with different proportions, lines rewrap and everything below moves. Local fonts arrive sooner, which narrows the window. Avada goes further and offers font-display choices (Swap All, Block, Swap Non-Icon Fonts), so you can trade a brief invisible-text moment for stability. Bricks sets swap on custom fonts, which favors fast text over zero shift.

Headers that change shape. Sticky headers that shrink on scroll, mobile headers built separately from desktop ones, and menus added by script can all move content. Kadence and Blocksy build separate desktop and mobile headers; set fixed heights for logos and rows in both. Ollie added sticky header rows in 1.6.2, so test scrolling on a phone after enabling them.

Styles that arrive late. Critical CSS helps LCP only if it covers everything above the fold; anything it misses can jump when the full stylesheet lands. On builder sites, one user reported a flash of unstyled content across several Hello Elementor sites running Elementor Pro. The diagnosis lives in theme layout shift (CLS), and the CLS comparison with Next.js covers the build-time alternative.

INP: the less script a theme runs, the faster taps answer

Interaction to Next Paint is measured only in the field, on real taps and clicks. A busy main thread delays the response, and the theme's share is its own JavaScript: menus, sliders, sticky effects, and any library it drags in. jQuery is the usual tell, not because it is slow on its own, but because themes that need it tend to carry older plugins and effects with it.

The jQuery-free group is large now. GeneratePress, Kadence, Blocksy, Bricks and the current Neve keep jQuery out of their main front-end scripts, Astra needs it for one WooCommerce-related script, and the block themes enqueue no scripts of their own. On the other side, Hestia runs Bootstrap's jQuery-dependent scripts, OceanWP's main theme script requires jQuery, and Sydney adds jQuery scripts when its hero slider or Elementor is active.

Builder themes offer controls instead of restraint. Divi's Dynamic JavaScript loads libraries on demand and can defer jQuery to the footer; Avada can defer jQuery and combine scripts, though its docs warn deferral can break some scripts. Neve Pro's Lazy Rendering and Avada's offscreen container rendering skip work for content below the fold. Because INP only shows up in field data, judge these changes over weeks, not runs. The INP comparison explains why plugin count matters more than theme choice over time.

Stores and builder sites fail on different pages

On a brochure site, the home page hero is usually the worst page for LCP. On a store, it is often the product page, where a gallery slider, variation swatches, reviews and a sticky add-to-cart bar all compete for the main thread. On builder sites, the worst page is whichever one the designer was proudest of, because that is where the sliders and animations went.

  • Bundled extras count. Avada ships Slider Revolution and LayerSlider among six bundled plugins. Nobody is forced to use them, but a slider in the hero is the classic LCP and CLS problem in one element.
  • Built-in store features cut both ways. WoodMart builds in filters, swatches and a wishlist so you need fewer plugins, and its docs warn about clashes with third-party plugins that replace those features. Pick one system per job.
  • Compatibility modes cost speed. During the Divi 4 to Divi 5 move, third-party modules that are not Divi 5-ready run in a backward-compatibility mode that loads the Divi 4 framework, which Elegant Themes says makes pages slower.
  • Separate mobile layouts are a separate test. Newspaper can serve its own Mobile Theme to phones, so a desktop result tells you little about the page phone visitors actually get.

Test the template that earns the money, not just the home page. For stores, the product and category templates matter most, and theme speed on mobile covers the phone-specific traps.

Our shortlist, by how much work passing takes

Start ahead

Twenty Twenty-Five, Twenty Twenty-Four and Ollie: bundled fonts, per-block CSS, no theme scripts. The cost is no visual builder.

Ahead with a few switches

Kadence, GeneratePress, Blocksy, Astra and Neve. Turn on local fonts and CSS file output where your plan includes them.

Capable, if configured

WoodMart, Divi, Avada and Bricks have strong performance panels. Each site still carries a builder or a large feature set.

Expect extra work

Storefront (Google-hosted fonts), Hestia (Bootstrap and jQuery), Sydney and Newspaper, whose own speed guide relies on outside caching and CDN tools.

Not on the cards: Hello Elementor and Hello Biz, whose vitals are decided almost entirely by Elementor; Flatsome, whose classic docs say little about fonts or scripts and whose block-based Site Builder is still in beta; OceanWP and Genesis, which sit in the middle depending on settings and child theme. Our fastest WordPress themes ranking covers all 21 in more detail.

Prove it on your own pages before and after

Pick from the shortlist, then prove it. Build a real page on staging and measure LCP and CLS in the lab, using the theme speed test method. After launch, watch the Core Web Vitals report in Search Console, which groups similar URLs and updates as the 28-day field window rolls forward. If a template fails, fix that template, not the whole site.

If you have tuned a theme twice and the field data will not stay green, the limit may be the stack, not the settings. WordPress vs Next.js on Core Web Vitals lays out the trade. When you want the current site passing first, our Core Web Vitals service and theme speed optimization work on the theme you already have.

Questions people ask before they call

For a site built in the block editor, Twenty Twenty-Five or Ollie start with bundled fonts, per-block CSS and no theme scripts. If you want a Customizer theme with a header builder, Kadence offers free local fonts with preload and component-split CSS. Store owners should look at WoodMart's Preload LCP Image and local fonts settings. Test on your own content either way.

Hello itself is tiny: three small stylesheets that its settings page can switch off. Whether a Hello site passes depends on Elementor, Elementor Pro, the widgets used and images. Some owners have reported a flash of unstyled content on Hello sites with Elementor Pro, which affects CLS. See the Hello Elementor speed guide.

Only if the theme causes the shift. Common culprits are fonts swapping in, sticky or mobile headers that change height, images without dimensions and late-loading ads or banners. Find the shifting element in the Lighthouse report or Chrome's Performance panel first. If it belongs to the theme's header or fonts, a setting often fixes it without a switch. Start with the CLS guide.

The lab test loads one page once on a simulated phone. Search Console reports real visitors over 28 days, including slow phones, weak connections, logged-in users and pages you never tested. INP only appears in field data at all. Check which URL group fails, then test a page from that group. The PageSpeed Insights guide explains the two views.

Usually yes, for LCP. Caching cuts the server's response time, which comes before any theme file loads. It does nothing for CLS or INP, which depend on what the page does after it arrives. Use one caching layer, not two, and check that its CSS and JavaScript options do not fight the theme's own.

Free · No obligation

Get your Core Web Vitals passing

Send us the site. We will find which template fails, which metric, and whether the theme, the builder or a plugin is the cause, then tell you what fixing it involves.

Which of these sounds like you? (pick any)

Rather talk now? Call (210) 346-0848.

CallGet a quote