Seven things that slow down most Shopify stores
The same few problems show up in almost every slow Shopify store we open. The list, roughly in the order we check it.
When a client tells us their store feels slow, we open the theme code and the browser's network tab before anything else. The causes are rarely unusual. Most of the time it's a mix of the things below.
1. Apps that load scripts on every page
A reviews app only needs to run on product pages. A popup app might only be needed on the home page. Many apps load their script everywhere anyway, including the cart and the blog. Open a blog post with the network tab: anything that has nothing to do with that page is a candidate to remove or limit.
2. Code left behind by apps you removed
Older apps edited theme files directly, and uninstalling them doesn't undo those edits. The store keeps loading a script for a service you stopped paying for. Search the theme for the app's name and its domain. We have a separate post on cleaning this up.
3. Images straight from the camera or the designer
A 4000px PNG used as a product thumbnail is common. Shopify can serve smaller versions, but only if the theme asks for them. In Liquid that means image_url with a width, a srcset, and a sizes value that matches how wide the image really shows on screen. If the theme asks for one large size everywhere, phones download desktop images.
4. Lazy loading the wrong image
Lazy loading is good further down the page. On the first banner it does the opposite: the browser waits before it starts loading the biggest thing on the screen, and LCP gets worse. The first image should load right away, ideally with fetchpriority="high".
5. Too many fonts and font weights
Every weight is another file. Two font families with four weights each means eight downloads before the text looks right. Pick one or two weights per family, and check that the theme isn't still loading a font the design stopped using.
6. Sliders and autoplay video in the first screen
A slider with five full-width images loads five images, even if the visitor only ever sees the first. A background video can work, but give it a poster image and keep the file small. Often one strong image does the job better.
7. Chat widgets and tracking tags all starting at once
Chat, heatmaps, a few ad pixels and a tag manager can each be fine on their own. Together they compete with the page right when the visitor is trying to scroll. Load chat after the page is idle or when someone clicks it, and remove pixels from platforms you no longer advertise on.
Where to start
Test a product page and a collection page on mobile, not only the home page. If you're not sure how to read the result, we wrote up what a good Shopify speed score is and which numbers to watch. Work through the list above in that order and test again after each change. On one store we worked on, cleaning up these basics took mobile LCP from 13.3s to 1.5s. Most stores won't see a jump that big, I think, but this list is still where we start.
If you'd like someone to go through this list on your store, see our Shopify speed optimization service, or start with a store audit to find out which of these apply to you.