Speed problems are usually “too much stuff,” not one bug
Most slow Shopify storefronts are slow for a boring reason: too many scripts, too many images, and a theme that has accumulated features over time. Speed is rarely fixed by one plugin or one setting.
The practical approach is triage: identify which pages are slow, identify what’s loading (scripts, images, fonts), and remove or defer what isn’t pulling its weight.
Know the outcomes: Core Web Vitals and conversion
Shopify speed work is not an aesthetic project. It’s about user experience and conversion. The common targets are Core Web Vitals: LCP (largest contentful paint), INP (interaction to next paint), and CLS (cumulative layout shift).
You don’t need perfect scores. You need predictable, fast-enough behavior on real devices, especially mid-range Android on mobile data.
Start with the biggest offenders: images and third-party scripts
Images: oversized hero images and unoptimized product galleries are a top cause of bad LCP. Make sure your largest above-the-fold image is appropriately sized, compressed, and served in a modern format where possible.
Scripts: every app that injects a script competes for main thread time. Many stores run multiple marketing pixels, reviews, upsell widgets, and chat tools on every page. If it’s not essential everywhere, don’t load it everywhere.
Theme bloat: the hidden cost of “just add a section”
Themes accumulate code. Old experiments, unused sections, and legacy snippets remain even after the feature is “turned off.” That code still ships to the browser and can still load assets.
A practical fix is to audit: remove unused sections/snippets, avoid loading libraries globally, and keep your critical path lean. If your theme has multiple sliders/carousels, that’s often a red flag for unnecessary JS.
CLS: why your page “jumps” and how to stop it
Layout shift usually comes from images without dimensions, late-loading fonts, and components that inject content after render (reviews, recommendation widgets, chat).
Reserve space for images and key components. Use font loading strategies that avoid reflow. If a widget must load late, give it a stable container height so it doesn’t push content down.
INP: the Core Web Vital most Shopify stores ignore
INP measures responsiveness when users interact (tap, click, type). It’s often degraded by heavy JS from third-party apps and complex theme scripts.
If your site feels “laggy” when opening menus or switching variants, you likely have an INP problem. Reduce script work, avoid unnecessary event listeners, and keep interactions lightweight.
A checklist workflow that doesn’t waste weeks
Pick one representative page for each template (home, collection, product, cart). Measure. Make one change. Re-measure. Avoid changing ten things at once.
Also validate on mobile. Desktop can look fine while mobile struggles. If you only measure on desktop, you’ll miss the real problem.
Use the Speed Checklist tool to keep fixes organized
Speed work is easy to start and hard to finish because it spans theme code, apps, images, and analytics. A checklist helps you keep track of what you tested and what improved.
Use the Shopify Speed Checklist tool to run through the common causes, document actions taken, and avoid reintroducing the same issues later.