DobSol
Speed & Conversion

Why Your Shopify Store Is Slow: 10 Fixes, Ranked by Impact

How to measure your Shopify store's speed and what to fix first: apps, the hero image, sliders, scripts, fonts and theme code — in order of impact.

The TODO team
October 5, 2026
8 min read
1122 words

Shopify itself is fast: servers, CDN and image optimisation are already taken care of. Yet plenty of Shopify stores are still slow — and the cause is almost never the platform. It's what's been added on top: apps, scripts, heavy images and sliders.

Here are the 10 fixes that make the biggest difference, ranked by impact — from most important to nice-to-have.

The 30-second version

  • Measure first with real-user data — otherwise you're optimising blind.
  • The most common problem is how fast the main image loads (LCP), and the most common cause is too many apps.
  • The first three fixes usually deliver more than all the others combined.

Measure first

Google judges speed by three Core Web Vitals, measured on real visitors (75th percentile, mobile):

Metric What it measures "Good"
LCP How quickly the main content appears under 2.5 s
INP How quickly the page responds to input under 200 ms
CLS Whether the layout jumps while loading under 0.1

Where to look:

  1. Shopify: Online Store → Themes. The web performance dashboard shows real visitor data — LCP, INP and CLS by page type and device.
  2. Google Search Console → Core Web Vitals — what Google itself sees.
  3. PageSpeed Insights — to diagnose a specific page.

Lab scores ≠ real-world scores

A PageSpeed score is a simulation of one visit. Base your decisions on field data from real shoppers in the Shopify dashboard and Search Console.

In practice, most Shopify stores that fail Core Web Vitals fail on LCP — which is why the first fixes focus on it.

10 fixes, ranked by impact

# Fix Improves Effort
1 Audit your apps LCP, INP Low
2 Hero image LCP Low
3 Drop the hero slider and autoplay video LCP, CLS Low
4 Defer third-party scripts INP, LCP Medium
5 Lazy-load other images LCP Low
6 Fonts LCP, CLS Low
7 Reserve space for banners CLS Low
8 Unused theme JS and CSS INP, LCP Medium
9 Collection pages LCP, INP Medium
10 Slow Liquid LCP High

1. Audit your apps

Each app can load its own scripts, styles and widgets on every page — even where it isn't needed. The number of installed apps is one of the strongest predictors of a slow store.

  1. List every app and ask of each one: does it make money or save time?
  2. Uninstall the ones you don't use.
  3. Check for leftover code. Older apps often inserted code directly into the theme, and it stays after uninstalling. Look for remnants in theme.liquid and the snippets folder.
  4. Turn off app embeds in the theme editor wherever they aren't needed.

2. Optimise the hero image

The main image above the fold is usually your LCP element. Three rules:

  • The right size. Don't send a 4000 px image to a phone — Shopify generates the sizes you ask for.
  • Never lazy-load it. loading="lazy" above the fold delays exactly the element that should appear first.
  • High priority with fetchpriority="high".
{{ section.settings.image
  | image_url: width: 1600
  | image_tag:
    widths: '400, 800, 1200, 1600',
    sizes: '100vw',
    loading: 'eager',
    fetchpriority: 'high' }}

Formats are Shopify's job

Shopify's CDN serves modern formats like WebP to browsers that support them. You just upload a good original and specify the sizes correctly.

3. Drop the hero slider and autoplay video

A hero slider means several large images plus JavaScript to rotate them, and shoppers rarely look past the first slide. A static image with a clear headline and button is almost always faster — and often sells better.

If video matters to your brand, show a poster image and load the video only on click.

4. Defer third-party scripts

Live chat, review widgets, pop-ups, trackers — every script competes for the phone's resources, and they're the most common cause of poor INP.

  • Load chat on interaction: show the button, and load the widget itself after a click or a few seconds' delay.
  • Add analytics pixels through Shopify's Customer events rather than pasting them into theme code.
  • Load the review widget on product pages when the shopper scrolls to it.

5. Lazy-load everything else

Everything below the fold — product images, banners, logos — should be lazy-loaded (loading="lazy"), so the browser fetches what the shopper can see right now first.

6. Tidy up your fonts

  • At most two font families, and only the weights you actually use.
  • font-display: swap — text shows immediately in a system font, and your brand font swaps in once loaded.
  • System fonts for body text are the fastest option there is.

7. Reserve space for banners and widgets

An announcement bar, cookie banner or app widget that appears late pushes the whole page down — hurting CLS and annoying shoppers.

  • Set width and height on every image.
  • Reserve space for elements that load later (a minimum height on the block).
  • Show pop-ups on top of the page rather than inserting them into the layout.

8. Strip unused JavaScript and CSS from the theme

Older themes often ship jQuery, several animation libraries and styles for sections you removed long ago. If your theme is dated, moving to a modern Online Store 2.0 theme can do more than dozens of small tweaks.

9. Optimise collection pages

  • A sensible number of products per page — pagination or "Load more" beats 100 cards at once.
  • Be careful with quick-view and swatches that load data for every card.
  • Load the hover image only when it's needed.

10. Speed up slow Liquid

If the server takes a long time to return the page before any images even start loading, the problem is the theme code: nested loops, iterating over every product in a collection, duplicated logic. The Shopify Theme Inspector for Chrome extension helps find the slow spots. This is the hardest fix — and the one you'll need least often.

Don't chase a perfect 100

A PageSpeed score isn't the goal. The goal is passing Core Web Vitals for real shoppers without losing features that drive sales. Remove what doesn't serve the business — not everything in sight.

Checklist

  1. Measured LCP, INP and CLS in the Shopify dashboard and Search Console.
  2. Removed unused apps and their leftover code.
  3. Optimised the hero image: size, no lazy-loading, high priority.
  4. Replaced the slider with a static hero.
  5. Deferred chat, widgets and trackers.
  6. Checked fonts, image dimensions and space for banners.
  7. Measured again after 2–4 weeks — field data takes time to update.

Want to know what's slowing your store down?

We run speed audits: we measure real-user data, find the causes, and give you a fix list ranked by impact and cost.

Get In Touch

Want to apply this to your store?

Tell us what your Shopify store needs — we'll suggest a solution and estimate the work