Skip to content

Why your Shopify store is slow, and what actually fixes it

Most Shopify speed problems are not the platform. They are apps, theme JavaScript and images. Here is how we diagnose a slow store and the order we fix things in.

Published
Author
Pixel Forge Technologies · Engineering team
Reading time
7 min read
Topic
Shopify

Shopify's own infrastructure is fast. When a store feels slow, the cause is almost always in the theme: the scripts that apps inject, the JavaScript the theme itself loads, and images that were never sized for the layout they sit in.

Start by measuring, not guessing

Run the store through a lab tool such as Lighthouse on a mid-range Android phone profile, then look at real-user data if you have it. You are looking for three numbers: Largest Contentful Paint, Cumulative Layout Shift and Interaction to Next Paint. Write them down before you change anything.

The app tax

Every app that touches the storefront adds at least one script. Many add several, plus a stylesheet and a font. Ten apps can easily mean thirty requests before the page is interactive. Open the theme's app embeds and the network panel, and list every script by the app that owns it.

  • Remove apps that are installed but no longer used. This is the most common win.
  • Replace simple apps with a section or a few lines of Liquid. Announcement bars, size charts and trust badges rarely need an app.
  • For apps you keep, check whether they offer a lighter integration or can load after the page is interactive.

Theme JavaScript

Purchased themes ship with JavaScript for every feature they support, whether your store uses it or not. Sliders, quick-view modals, mega menus and product recommendation carousels all load on every page. A custom theme loads what the page needs and nothing else.

Images

Product photography is usually uploaded at full resolution and then displayed at a quarter of the size. Use Shopify's image_url filters with explicit widths and a srcset, give every image its dimensions so the layout does not shift, and lazy-load anything below the fold.

Fonts

Two font families with two weights each is plenty. Preload the one used for the largest text, and let the rest load with font-display swap.

What to do in what order

  1. Remove unused apps.
  2. Fix image sizing and layout shift.
  3. Reduce font weights and preload the hero font.
  4. Defer or remove theme JavaScript the page does not use.
  5. Replace remaining heavy apps with native features.

Measure again after each step. The order matters because the first three steps are low-risk and usually produce the largest change.

Dealing with this on your own product?

Talk to us