Open zivaro.co.za in PageSpeed Insights on the mobile profile. Performance 100, Total Blocking Time 0ms, and that is on the Moto G Power, Slow 4G profile, which is about as unkind as the test gets. The four demo sites in my work gallery sit around 99 on the same profile.
I am not posting that to brag. I am posting it because a perfect mobile score is not hard, it is just unfashionable. Most agency marketing sites score in the 50s to 70s on mobile, and the reason is almost never the thing people blame. It is rarely the images, rarely the server, rarely the framework. It is the JavaScript you ship that you did not need to ship.
Here is the exact setup I use. Nothing here is exotic. It is mostly a series of decisions to send less.
Why mobile scores are usually bad
The mobile Lighthouse score is dominated by two metrics that punish JavaScript: Total Blocking Time and, indirectly, Largest Contentful Paint. Throttle the CPU to a mid-range Android and every kilobyte of JS that has to parse, compile, and execute on the main thread costs you real milliseconds. A hydrating SPA, a tag manager, three marketing pixels, and a cookie widget will block the main thread for one to two seconds before the user can do anything.






