If your Shopify store feels slow, you are not imagining it — and it is almost never Shopify's fault. Shopify's servers and checkout are genuinely fast. The slowness nearly always comes from what has been added on top: apps, images, theme code and tracking scripts collected over months or years. The good news is that these are fixable. Here are the five causes I find again and again, and what actually works on each.
1. Too many apps, each loading on every page
Every Shopify app you install can add its own JavaScript and CSS to your storefront — and most load on every page, even pages where the app does nothing. A reviews widget, a pop-up, a chat bubble, a currency converter: individually small, together they can add seconds.
The fix: open your app list and be honest about which ones earn their place. Then check your theme code for leftovers — uninstalled apps often leave their scripts behind in theme.liquid. Removing dead code from two or three forgotten apps is frequently the single biggest speed win available.
2. Images uploaded at camera size
This is the most common one. A product photo straight from a phone or a supplier can be 4,000 pixels wide and several megabytes — then the browser shrinks it into a 600-pixel box. Your customers download the full file anyway, on mobile data, before they can see your product.
The fix: resize images to the largest size they will ever be displayed at, compress them, and use modern formats like WebP (Shopify serves these automatically in many cases, but the uploaded file still matters). Check your homepage hero image and your collection banners first — they are usually the worst offenders. Also make sure below-the-fold images lazy-load instead of competing with the first screen.
3. A theme carrying years of experiments
Themes accumulate things: an old slider library from a previous design, code from a sale campaign two Christmases ago, three different analytics snippets. Each one is small. Together they make the browser do real work before anything appears.
The fix: audit the theme's assets. Remove libraries nothing uses anymore, consolidate tracking into Google Tag Manager where it makes sense, and check whether your theme is a recent version — Shopify's newer themes (built on Online Store 2.0) are noticeably leaner than the vintage ones. Always do this on a duplicated theme first, and publish only after clicking through the whole store.
4. Fonts and videos fighting the first screen
The first screen a visitor sees — the LCP, or Largest Contentful Paint, in Google's terms — decides whether your store feels fast or broken. Two things sabotage it constantly: custom fonts that block rendering while they load, and autoplay hero videos that weigh more than the rest of the page combined.
The fix: limit yourself to two font weights if you can, and let text show in a fallback font while the custom one loads. For video, use a poster image, compress the file hard, or move the video below the first screen. A beautiful hero that takes six seconds to appear is not beautiful — it is an exit door.
5. Measuring the wrong thing (or not measuring at all)
Many owners test their store once, on their office Wi-Fi, on a desktop — and conclude it is fine. Your customers are on phones, on 4G, often in another country. That is the experience that decides whether they stay.
The fix: test with PageSpeed Insights on the mobile tab, and test your product page, not just the homepage — product pages are where the buying happens. Shopify's own speed report in your admin gives you a starting number too. Measure before you fix, and measure again after, so you know which change actually helped instead of guessing.
Where to start
Work in this order: apps and leftover code first (biggest wins, invisible to customers), then images, then the first-screen problems. Do it on a duplicated theme, test the full store — cart, checkout, search — before publishing, and keep the old theme as a backup for a week. Speed work is not glamorous, but a store that opens instantly feels trustworthy, and trustworthy stores sell.