Contents
Shopify’s servers and global CDN are fast. So when a Shopify store feels slow, the cause is almost always something added on top: apps, the theme, images, or scripts from other services. The good news is that most of these can be fixed without rebuilding the store.
Here’s how to find out what’s slowing your store down, the most common causes I see when auditing Shopify stores, and the fixes in rough order of impact.
First, measure the right way#
Before changing anything, get a baseline. There are two kinds of speed data, and they often disagree.
- Field data is how real visitors experienced your store over the last 28 days. Look for it at the top of PageSpeed Insights (“Discover what your real users are experiencing”) and in your Shopify admin’s web performance report. Google uses this data for rankings.
- Lab data is a single simulated test on a throttled phone. That’s the 0–100 performance score. It’s useful for finding causes, but it isn’t what Google ranks you on.
Test your homepage, a collection page and your best-selling product page, on mobile. Those three templates are where most stores lose speed and sales.
The three Core Web Vitals to watch:
- Largest Contentful Paint (LCP): how long the main image or headline takes to appear. Good is 2.5 seconds or less.
- Interaction to Next Paint (INP): how quickly the page responds when someone taps a button, opens the menu or picks a variant. Good is 200 ms or less.
- Cumulative Layout Shift (CLS): how much the page jumps around while loading. Good is 0.1 or less.
The 8 most common reasons a Shopify store is slow#
1. Too many apps, and apps you’ve already removed#
Every app that adds something to your storefront (reviews, pop-ups, upsells, chat, wishlists, currency converters) usually loads its own JavaScript and CSS on every page. Five or six of these together can easily add several hundred kilobytes of code that the browser has to download and run before the page responds.
Uninstalling isn’t always enough. Older apps often pasted code straight into your theme files, and that code stays behind after uninstall.
Fix: list every app and ask whether it earns its weight. Remove the ones that don’t. Then search your theme code (theme.liquid, snippets and sections) for leftover script tags from apps you no longer use. Where possible, prefer apps built as theme app extensions. They load through blocks you control instead of injecting code into every page.
2. Huge or badly served images#
A 4,000-pixel hero image straight from a photographer can weigh several megabytes, and it’s usually the LCP element. That makes it the single thing deciding your LCP score.
Fix: Shopify’s CDN can resize and convert images to modern formats for you, but only if your theme asks for the right sizes. Use Liquid’s image_url with a width and the image_tag filter so the browser gets a srcset and downloads only the size it needs. Make sure the hero image is not lazy-loaded, and give it fetchpriority="high". Do lazy-load everything below the fold.
3. A heavy theme or a hero slider#
Some themes ship large JavaScript bundles, animation libraries and mega-menus that load on every page whether you use them or not. Auto-playing sliders and background videos in the hero are a classic LCP killer: the browser has to load several large images or a video before the “largest” element settles.
Fix: replace the slider with one strong static hero image. Turn off theme features you don’t use. If the theme is old or bloated, a modern Online Store 2.0 theme is often faster than any amount of tuning.
4. Third-party tracking and marketing scripts#
Meta Pixel, TikTok, Google Ads, analytics, heatmaps, affiliate trackers, review widgets and chat bubbles each add requests and main-thread work. Chat widgets and heatmaps are often among the heaviest scripts on a page, and they mostly hurt INP.
Fix: add tracking through Shopify’s Customer Events (web pixels) where you can, rather than pasting tags into the theme. Remove duplicates; it’s common to find the same pixel installed twice. Load chat widgets only after a visitor interacts, or after a short delay.
5. Too many fonts and font weights#
Every custom font file is another download, and fonts can cause text to flash or shift (CLS).
Fix: use one or two font families and only the weights you actually use. Consider Shopify’s font library or system fonts. Preload the main font and use font-display: swap.
6. Layout shifts from images, banners and app widgets#
Announcement bars, cookie banners, review stars and “buy now, pay later” messages that pop in after load push content down. That’s poor CLS, and it’s why shoppers mis-tap.
Fix: give every image a width and height so space is reserved. Reserve fixed space for app widgets and banners. Avoid inserting content above anything that’s already visible.
7. Slow Liquid and heavy collection pages#
Collection pages showing 48 or more products, each with multiple images, swatches and quick-view code, can be slow to generate and render. Unnecessary loops in Liquid templates add time before the first byte arrives.
Fix: show 24 products per page with pagination or “load more”. Load secondary product images only on hover or interaction. Use Shopify’s Theme Inspector for Chrome to find slow Liquid code.
8. Redirect chains and broken resources#
Links that redirect two or three times before landing, and scripts or images returning 404, all waste time on every page load.
Fix: update internal links to point at final URLs, clean up your redirects (search “URL redirects” in your Shopify admin), and remove references to files that no longer exist.
A quick action plan#
- Record field data and lab scores for your homepage, a collection and a product page.
- Remove unused apps and their leftover code.
- Fix the hero: one properly sized image, not lazy-loaded, high fetch priority.
- Audit and trim third-party scripts; delay chat widgets.
- Reduce fonts and reserve space for anything that loads late.
- Re-test, then wait 28 days for field data to catch up before judging the result.
When to get help#
Most of the steps above are safe to do yourself. Theme code edits are a different matter: removing leftover app code, changing how images load, delaying scripts. Done carelessly, they can break your checkout or tracking, so work on a duplicate theme and test before publishing.
If you’d rather have it done properly, I offer Shopify speed optimisation as part of my development work. You can also run a free audit of your store (here’s how to read the audit report) to see the biggest issues first, or contact me directly. Still deciding on a platform? Read WordPress vs Shopify: which one deserves your money, or see how I found hidden SEO problems in my headless WordPress case study.
I build fast Shopify stores and WordPress sites with technical SEO engineered in, and AI automation that takes repetitive work off your team.
Need help with your Shopify store, WordPress site or AI automation?
Tell me what you’re working on, or start with a free audit of your site.



