I’ve been working on improving Core Web Vitals and PageSpeed Insights scores for Shopify stores too, so here are some practical things that have helped me (and others) get closer to that 90+ on mobile:
- Optimize Largest Contentful Paint (LCP)
Compress and serve images in next-gen formats (WebP/AVIF). Shopify now supports these natively in many themes.
Use responsive image sizes (srcset) so mobile doesn’t download oversized desktop images.
Lazy-load below-the-fold images and videos.
Check your hero section—if it has a large banner or slider, consider simplifying or reducing the initial image size.
- Improve First Input Delay (FID) / Interaction to Next Paint (INP)
Minimize third-party apps/scripts. Each app adds JS, so audit what you really need.
Defer or async non-critical scripts.
If you’re using tracking or chat widgets, load them after user interaction instead of at page load.
- Fix Cumulative Layout Shift (CLS)
Always set width/height (or aspect ratio) for images, logos, and embeds so space is reserved.
Preload fonts and use font-display: swap.
Avoid dynamic elements pushing content down (like late-loading announcement bars or pop-ups).
- Mobile-specific tips
Use a lightweight theme (e.g., Dawn or a custom-optimized one). Heavy premium themes often drag mobile scores down.
Cut down on sliders, carousels, and background videos—these are major mobile killers.
Enable critical CSS so above-the-fold content loads fast.
Minify and combine CSS/JS where possible.
- Tools & Apps
TinyIMG or Crush.pics → image optimization.
Hyperspeed → script management, lazy-loading, and caching tweaks.
Speed Boostr (service) → audits Shopify themes for bloated code.
- What worked for me personally
On a store I managed, switching to Dawn, stripping unnecessary apps, and re-optimizing images brought mobile from ~65 to 92. The biggest jump came from lazy-loading images and deferring non-essential JS.