Why your sticky button costs 0ms — and your popup plugin costs 400
Measuring the real cost of CTA plugins with WebPageTest, step by step — and why server-rendered markup wins every time.
d9
Published
The setup
A stock block theme, one product page, WebPageTest on a throttled 4G profile. Variant A pins the CTA with ~2 KB of server-rendered HTML and CSS. Variant B loads a popular popup plugin with its tracking bundle.
The numbers
Variant A changed nothing measurable: no additional requests, no main-thread work, identical Largest Contentful Paint. Variant B added 11 requests, 148 KB of JavaScript and ~400 ms of main-thread blocking before the button was even interactive.
Rule of thumb — if a CTA needs JavaScript to exist, you pay for it on every page view; if it needs JavaScript only to react, you pay almost nothing.
What to look for in any CTA plugin
Server-rendered markup, CSS-only positioning, JavaScript only for optional triggers, and zero third-party requests. Everything else is a marketing bundle with a button attached.
Sticky CTA Button is the 0ms variant.
~2 KB server-rendered, no JS by default, no tracking ever.
d9
About the author
desk9 is a one-developer WordPress shop. Every article here documents something built, measured or broken first-hand — maintaining a small catalog of plugins and themes across thousands of live sites.