Mobile PageSpeed scores frustrate people because the advice online is mostly noise. You install a caching plugin, the score barely moves, and you conclude it is your host. It usually is not. Here is what actually holds a mobile score down, and what moves it.
The theme is the problem more often than the host
A general-purpose theme with a page builder ships CSS and JavaScript for hundreds of layouts you will never use. That is 150–250KB of render-blocking code before a single word of your content loads. Caching makes a bloated page arrive faster; it does not make it smaller. On a mid-range phone, size is what hurts.
Images are the easiest big win
Serve every image as WebP, sized for the slot it actually fills, and lazy-load anything below the fold. A hero photo exported at 3000px and scaled down in the browser is one of the most common — and most fixable — reasons a score sits in the 60s.
Third-party scripts cost more than you think
Chat widgets, heatmap trackers, multiple analytics tags, and font libraries each add a request and block the main thread. Keep the ones that earn their place, defer what you can, and self-host fonts. Cutting two unused scripts can be worth more than a week of micro-optimizing.
The honest fix is sometimes a rebuild and sometimes a targeted cleanup. If you are not sure which, our speed audit tells you what is slowing your current site down and what it would take to fix versus replace.

