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)
- Use the same content and the same plugins for every test.
- Test the same URLs: homepage, one post, one heavy template, and (if applicable) product + cart/checkout.
- Run PageSpeed Insights (mobile) and record LCP/CLS/INP and the primary blocking resources.
- Use DevTools Network to record total CSS/JS bytes and number of requests.
- Repeat for each candidate theme and choose based on results and maintainability.
Benchmark worksheet (fill this in as you test):
| Theme | CSS+JS (KB) | LCP | CLS | INP | Notes |
|---|---|---|---|---|---|
| GeneratePress | TBD | TBD | TBD | TBD | |
| Blocksy | TBD | TBD | TBD | TBD | |
| Astra | TBD | TBD | TBD | TBD | |
| Kadence | TBD | TBD | TBD | TBD | |
| Bricks | TBD | TBD | TBD | TBD | |
| Hello Elementor | TBD | TBD | TBD | TBD |
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