Performance Case Study

Kadence vs.
Custom Theme

A full rebuild of planningtobehappy.com from a Kadence page builder setup to a custom Underscores-based theme with WooCommerce. No drag-and-drop, no bloat, just clean PHP, SCSS, and vanilla JS.

The Problem

Page builders add up.
Especially with WooCommerce.

85 HTTP requests on load

Kadence Blocks, multiple plugin stylesheets, Bootstrap, block styles, and jQuery all loaded before a single pixel of content appeared 6.24MB total page weight.

🐌

25.8 second mobile LCP

The largest contentful paint on mobile took nearly half a minute. Users on phones were staring at a blank screen while the page builder framework loaded its dependencies.

🔓

Zero security headers

The original site scored an F on securityheaders.com no HSTS, no content security policy, no X-Frame-Options. The page builder didn't address any of it.

The Build

The stack that replaced it.

Underscores (_s) Starter theme, minimal, no opinions, just the WordPress template hierarchy done right
SCSS Single compiled stylesheet via Live Sass Compiler replaces dozens of plugin CSS files
Vanilla JS No jQuery dependency, custom JS only for features the site actually uses
WooCommerce Overrides Custom shop, product, cart & checkout templates via the woocommerce/ theme directory + hook architecture
ACF Custom fields where needed, no Pro required, no page builder dependency
WP Fastest Cache Minify HTML/CSS, Combine CSS, Gzip, Browser Caching, Preload, plus WooCommerce styles conditionally loaded only on shop pages
Security Headers HSTS, CSP, X-Frame-Options, Referrer-Policy, and Permissions-Policy via send_headers hook IONOS-compatible
PayPal Payments PayPal, Venmo, Pay Later, credit/debit cards, clean gateway integration without page builder interference
Google PageSpeed Insights

The numbers don't lie.

📱 Mobile

Performance
80
55
Accessibility
96
88
Best Practices
100
96
SEO
92
85

🖥 Desktop

Performance
97
76
Accessibility
96
91
Best Practices
100
100
SEO
92
85
Core Web Vitals

Where it really matters.

Mobile LCP 25.8s 4.5s 82% faster
Desktop LCP 3.2s 1.1s 66% faster
Mobile TBT 200ms 0ms Eliminated
Speed Index 11.4s 2.8s 75% faster
Mobile FCP 4.1s 2.6s 37% faster
Desktop FCP 1.0s 0.7s 30% faster
Security

Performance isn't the whole story.

F Before

No security headers. No HSTS. No content security policy. The Kadence setup didn't address any of it.

A+ After

Full security header suite implemented via WordPress send_headers hook HSTS, CSP, X-Frame-Options, Referrer-Policy, and Permissions-Policy.

7 Security headers added
XML-RPC Disabled
SSL Forced via wp-config
Wordfence Firewall + malware scan
GTmetrix

Before baseline.

GTmetrix "after" scores pending retest on the new live site. Before scores captured April 13, 2026.

B GTmetrix Grade
93% Performance
72% Structure
1.4s LCP
The Takeaway
"Page builders get you started fast. Custom themes keep you fast."

Planning to Be Happy needed a site that loaded quickly on mobile, handled WooCommerce without the overhead of a page builder framework, and met modern security standards. The rebuild delivered a 82% faster mobile LCP, eliminated all blocking time, jumped desktop performance from 76 to 97, and took security headers from an F to an A+. No page builder, no shortcodes — just clean WordPress templates and exactly the code the site needs.

Visit the live site