Skip to main content

Theme Selection

Your theme sets the default HTML structure, CSS/JS payload, and many Core Web Vitals failure modes (CLS from headers/fonts, INP from heavy front-end JS, LCP from hero patterns). Use this page to compare themes using a repeatable benchmark, not opinions.

caution

Switching themes can break templates and layouts. Test on staging, validate key pages, and keep a rollback plan.

What to Optimize For

  • Small, predictable CSS/JS payload on first load
  • Stable layout (reserved space for logos/menus/hero media)
  • Minimal third-party dependencies (fonts, icon packs)
  • Reasonable DOM size (avoid excessive wrappers)
  • Compatibility with caching and asset management tools

Benchmarking Method (Repeatable)

  1. Use the same content and the same plugins for every test.
  2. Test the same URLs: homepage, one post, one heavy template, and (if applicable) product + cart/checkout.
  3. Run PageSpeed Insights (mobile) and record LCP/CLS/INP and the primary blocking resources.
  4. Use DevTools Network to record total CSS/JS bytes and number of requests.
  5. Repeat for each candidate theme and choose based on results and maintainability.

Benchmark worksheet (fill this in as you test):

ThemeCSS+JS (KB)LCPCLSINPNotes
GeneratePressTBDTBDTBDTBD
BlocksyTBDTBDTBDTBD
AstraTBDTBDTBDTBD
KadenceTBDTBDTBDTBD
BricksTBDTBDTBDTBD
Hello ElementorTBDTBDTBDTBD

Builder Guidance

  • Block themes and lean classic themes are usually easiest to keep fast.
  • Page builders can be workable, but treat them as a performance budget decision: you may need more effort in asset unloading and layout stability.
  • If a theme ships large starter templates, treat those as "plugin bundles" and audit what they add.

Install / Remove Themes (WP-CLI)

install-theme-for-testing.sh
wp theme install generatepress --activate
remove-unused-themes.sh
wp theme delete twentytwenty* twentynineteen

Go-Live Checks

  • LCP/CLS/INP are stable across representative templates
  • No unexpected font swaps or header jumps (CLS)
  • Theme does not require large global JS bundles for basic navigation
  • Unused themes removed

What's Next