E-commerce

Why Is My Shopify Store Slow? How to Find the Cause and Fix It, in Priority Order

Why your Shopify store is slow: apps, theme features, images and fonts. How to measure, find what each app loads and fix it in priority order.

Why Is My Shopify Store Slow? How to Find the Cause and Fix It, in Priority Order
On this page
  1. Why Shopify stores get slow
  2. Step 1: Measure before you change anything
  3. Step 2: Work out what each app is loading
  4. Step 3: Fix in priority order
  5. Images and fonts, done properly
  6. Keep it fast after the clean-up
  7. Quick check: find code left behind by removed apps
  8. When to get help
  9. FAQs
Key takeaways
  • A slow Shopify store is rarely a hosting problem; app scripts, leftover app code, heavy themes, images, fonts, sliders and widgets are the usual causes.
  • Measure first with the admin web performance report, PageSpeed Insights and the Chrome DevTools Network and Coverage panels.
  • Fix in priority order: remove unused apps and leftover code, size the main image properly, drop the slider, then trim widgets and fonts.

A slow Shopify store is almost always caused by what has been added on top of Shopify, mainly apps, theme features, large images, fonts and widgets, not by Shopify's servers. Measure first, find what each app and section loads, and fix the heaviest items first; most of the fixes are removals rather than rebuilds.

This guide covers where the slowness comes from, how to diagnose it with free tools and what to fix first. It is the same audit I run as part of my Shopify speed and clean-up work. For the general picture of how outside code slows pages, how third-party scripts slow your website is a useful companion read.

Why Shopify stores get slow

  • App scripts. Many apps add JavaScript to every page, whether or not that page uses the feature. A pop-up app loads everywhere; a reviews app may load on the cart where no reviews appear. Each one is a download and, more importantly, work the phone's processor has to finish before the page responds to a tap.
  • Leftover app code. On Online Store 2.0 themes, removing an app also removes its app blocks and embeds. Older apps, though, and a few current ones, wrote code straight into theme files: a script tag in the main layout file, a snippet included from the product template. That code stays after the app has gone, sometimes still requesting files from a server that no longer answers.
  • Heavy themes. A theme with mega menus, quick view, animations, swatches, video backgrounds and built-in pop-ups ships code for all of them, and some of it loads even when the feature is switched off.
  • Image sizes. Shopify's CDN can resize images and serve modern formats, but a theme or custom section that requests a huge original for a small slot still sends far too much. A main image that is lazy loaded arrives late as well.
  • Fonts. Three font families in several weights each means a dozen files before the text looks right.
  • Sliders and carousels. A hero slider loads several large images plus a script to rotate them, while most visitors only ever see the first slide.
  • Third-party widgets. Chat, WhatsApp buttons, Instagram feeds, embedded videos, heatmaps and a handful of ad pixels each bring their own scripts, often from several domains.

Step 1: Measure before you change anything

Write down where you start so you can tell which changes actually helped. Three tools cover it.

The web performance report in the Shopify admin. At the time of writing, the admin includes a web performance report in the analytics area, built from real visits to your store and showing Core Web Vitals: loading (LCP), responsiveness (INP) and layout shift (CLS). Because it uses real-user data, it moves slowly and needs a reasonable amount of traffic. Check Shopify's current help pages for where it sits and what it shows. Keep a dated note of app installs and theme changes so you can line them up against the trend.

PageSpeed Insights. Test your home page, a collection page and your best-selling product page, not only the home page, and read the mobile results. The top part shows real-user data from Chrome where the store has enough visits; the lab section below is a single simulated load, with diagnostics listing which scripts took the most time and how much third-party code ran. Run each page two or three times, as lab results vary between runs. Core Web Vitals explained covers what each metric means for shoppers.

Chrome DevTools. Open the store on a desktop and open DevTools. The Network panel, filtered to JS and sorted by size or domain, lists every script and where it comes from; unfamiliar domains usually belong to apps. The Coverage panel, opened from the command menu, reloads the page and shows how much of each JavaScript and CSS file was actually used. A large file that is mostly unused on a product page is a strong candidate for removal, or for loading only where it is needed.

DevTools can also block requests from a single domain. Block one app's domain, reload, and you can see how the page looks and how quickly it loads without that app, before you uninstall anything.

Step 2: Work out what each app is loading

Make a simple list of every installed app with four columns: its purpose, who relies on it, its monthly cost and the pages where it loads. Then:

  1. Match the unfamiliar domains from DevTools to apps on the list.
  2. Open the app embeds panel in the theme editor. Embeds switched on there load across the whole store.
  3. Search the theme code for script tags and snippet includes that don't belong to the theme itself. Search for the names of apps you have already uninstalled; leftovers often carry the app's name.
  4. Ask the people who run the store which apps they use each week. An app nobody can explain is usually an app nobody needs.

Before removing an app, check whether the theme or Shopify now does the same job. Filters, announcement bars and size charts built with metafields are often possible without a separate app on current themes, and a small custom section can replace an app that loads everywhere for one small job.

Step 3: Fix in priority order

Start with whatever removes the most work for the least risk, make the changes on a duplicate theme rather than the live one, and measure after each step.

PriorityFixWhy it comes hereRisk
1Uninstall apps nobody uses and switch off unused app embedsTakes scripts off every page in minutesLow, once you know what each app did
2Remove leftover code from uninstalled appsStops requests that do nothing, including failing onesLow to medium; work on a duplicate theme
3Size the main image on key pages properly and stop lazy loading itOften the biggest single change to loading timeLow
4Replace the hero slider with one strong imageCuts several images and a script from the busiest pageLow; more a design decision than a technical one
5Load chat and WhatsApp widgets only when tappedKeeps heavy widget code out of the first loadLow to medium
6Cut fonts to one or two families and fewer weightsFewer files before text renders properlyLow
7Limit remaining app scripts to the pages that need themA reviews script has no reason to load on the cartMedium; needs code changes and testing
8Review pixels and tracking tagsOverlapping pixels often duplicate workMedium; conversion tracking must keep working
9Move to a lighter themeOnly when measurements show the theme itself is the main costHigh; a project rather than a fix

The first four rows are usually where the clearest gains are, because they remove the most work from the pages people visit most. Rows seven to nine are worth tackling only once the simpler fixes have been measured.

Images and fonts, done properly

Images are where a theme's build quality shows. Upload images large enough for the biggest slot they will fill, not straight from a camera, then make sure the theme asks Shopify's CDN for a suitable width on each screen. Well-built themes request several widths and let the browser pick, so a phone receives a much smaller file than a large monitor. Custom sections written in a hurry often skip this and send one large image to every device.

The main image near the top of a page, usually the product photo or the home page banner, should load straight away: no lazy loading, and ideally a higher fetch priority. Images further down the page should be lazy loaded. Set a width and height on each image so nothing shifts while they load. The image optimisation guide is written for WordPress, but its advice on sizes, formats and lazy loading carries straight across.

For fonts, a system font stack costs nothing to load. If the brand needs its own typeface, use one family for headings and one for body text at most, limit the weights to the ones the design really uses, and check that text stays visible while the font loads. Web fonts and website speed explains the trade-offs in more detail.

Speed is only one part of how a store ranks. Work through the Shopify SEO checklist for titles, canonicals, filters and structured data.

Keep it fast after the clean-up

Speed tends to slip back as apps are added for each campaign. A few habits stop that:

  • Test the same three pages in PageSpeed Insights before and after installing any app, and record the results on your app list.
  • Give every new app an owner and a trial period. If nobody is using it at the end of the month, it goes.
  • Check the theme for leftover code on the same day you uninstall an app.
  • Review the app list and the web performance report every quarter.
  • Prefer features built into the theme, or a small custom section, over an app that loads site-wide for one small job.

If you are still choosing which apps a new store needs, setting up a Shopify store in India covers the essentials, and WooCommerce vs Shopify in India compares how each platform adds features and what that means for speed.

Quick check: find code left behind by removed apps

Uninstalled apps often leave scripts in the theme that still load on every page. On a duplicate of your theme, go to Online Store > Themes, click ... next to the theme and choose Edit code. Open layout/theme.liquid and search for <script and render. For each line, ask which app or feature it belongs to. Also look in the snippets folder for files named after apps you no longer use.

Before deleting anything, check in a private window with the browser's Network tab whether that script still loads, remove it on the duplicate theme, preview the store, and publish only once the cart, product pages and checkout all work.

When to get help

Get help when the store is slow on phones, the theme has been edited by several people, or you are not sure which code is safe to remove. Through my Shopify developer service, I list what each app loads, remove what is not earning its place on a duplicate theme, and measure before and after, starting with a free review and a fixed quote.

FAQs

Is Shopify's hosting the reason my store is slow?

Rarely. Shopify's servers and CDN are quick; the slowness usually comes from what runs in the shopper's browser, which means apps, theme code, images and widgets.

Does uninstalling an app remove all its code?

App blocks and embeds on Online Store 2.0 themes are switched off when the app is removed. Code an app wrote directly into theme files can remain, so check the theme after uninstalling.

What PageSpeed score should a Shopify store aim for?

Treat the score as a guide rather than a target. What matters more is whether real visitors' Core Web Vitals are in the good range, which the field data in PageSpeed Insights and the admin report both show, and whether the store feels quick on a mid-range phone on mobile data.

Do I need a new theme to make the store faster?

Usually not. Removing unused apps and leftover code, fixing images and trimming fonts and widgets come first. A new theme is worth considering only if measurements show the theme itself is the main cost.

Are speed optimisation apps worth installing?

Be cautious. An app that promises speed still adds its own code, and some mainly change how test tools score a page rather than how fast it feels to shoppers. Removing what you don't need is the more reliable route.

Need help with your website?

I'm a freelance WordPress developer building fast, SEO-friendly websites since 2020. Tell me what you need and I'll reply with a plan and a fixed quote, usually within 24 hours.

Found this useful? Share it:
Contact

Let's build your next website

Available for freelance projects, agency white-label work and long-term maintenance. Feel free to pass this along to your team or company.

I reply within 24 hours, usually the same day. Your details are emailed to me, then WhatsApp opens so we can chat right away.

Chat now