If your Shopify store isn’t loading properly for customers, the cause is almost never Shopify’s servers. Shopify already serves every store through a global content delivery network over HTTP/2, with images resized and compressed automatically. What slows a store down is what gets added on top: apps and the code they inject, pages stacked with sections and video, tag managers full of old tags, and themes that have been edited for years. The fix starts with measuring, because Shopify gives you the real data for free.
This guide follows the order I use on a slow store. Work out whether it’s slow or broken, measure it the way customers experience it, then remove the heaviest causes first and check each change against the numbers. If the store isn’t loading at all, start with the guide to a Shopify website that isn’t working instead.
Not loading, or loading badly?
“Not loading” gets used for several different experiences, and they don’t share a cause. Pin down which one your customers are having before you touch anything.
Blank for everyone
If nobody can see anything, including you in a private window, the store is down or private rather than slow. That’s an account, domain or Shopify-side problem, and speed work won’t help.
Half loaded
Images that never appear, a section that stays empty, a menu that doesn’t open: the page arrived, but something on it failed or is still waiting. This is usually a script from an app or a tag that’s slow, broken or blocked, and everything queued behind it waits too.
Slow on phones
The page gets there, eventually. On a laptop on office wi-fi it feels fine; on a mid-range phone on mobile data it takes long enough for people to give up. This is the common case, and it’s the one Shopify’s report measures.
Fine for you, slow for them
Your browser has cached the store, you’re probably on fast broadband, and you may be logged in to the admin. None of that is true for a new visitor from an advert. Never judge speed from your own machine: judge it from real visitor data, which is exactly what Shopify collects.
Measure it the way Shopify does
Every Shopify store has a web performance report built in. It uses real visitor data, not a lab test, which makes it the most honest measure you have of what customers experience.
Where the report is
According to Shopify’s web performance reports guide, you find it in the admin under Analytics, then Reports, or from the Themes page. It uses real user metrics collected from your actual visitors, split by desktop and mobile, and shows how they’re spread across good, moderate and poor.
| LCP | How long the main content takes to appear | 2.5 s or less | 2.5 to 4 s | Over 4 s |
| INP | How quickly the page responds to a tap or click | 200 ms or less | 200 to 500 ms | Over 500 ms |
| CLS | How much the layout jumps while loading | 0.1 or less | 0.1 to 0.25 | 0.25 or more |
The same lines Google uses
Those thresholds match Google’s own Core Web Vitals: main content within 2.5 seconds, a response to interaction within 200 milliseconds, and layout shift of 0.1 or less. Google judges a site at the 75th percentile of page loads, so the slowest quarter of your visitors decide your score, not the average. My Core Web Vitals self-check goes deeper on what each metric means.
What the report can and can’t show
Shopify notes that the data can be delayed by up to 36 hours and is kept for 90 days, and that a store in private mode collects nothing. The most useful part is the event annotations: numbered lines on the graph marking app installs, theme updates and code changes. If the line drops the day an app went in, you’ve found your first suspect without opening any code.
Testing one page
The report shows the whole store. To look at one slow page, use Google’s free PageSpeed Insights on its address, and read the field data at the top before the lab score underneath. The field data is real visitors; the score is one simulated load, useful for finding causes but easy to over-read.
Apps: the usual cause
If one thing slows down more Shopify stores than anything else, it’s apps. Each one that touches the storefront adds scripts, styles and requests to every page, and they compete with your own content to load first.
Every app has a cost
Shopify’s performance guide puts it plainly: evaluate your installed apps and third-party code to make sure each one creates enough value to offset the performance it costs. A reviews widget, a chat bubble, a currency switcher and a pop-up each look small. Together they’re often most of the page’s weight.
Uninstalling isn’t removing
This catches people out more than anything. Shopify’s guide says it outright: “Uninstalling an app doesn’t automatically remove its code from your theme.” An app you tried for a week two years ago can still be loading its script on every page, calling a service that no longer answers, and holding up everything behind it. That’s the classic half-loaded page.
Finding what’s left behind
- App embeds. In the theme editor, turn off embeds for apps you no longer use, then check the page again.
- The theme code. Search the theme’s files for the names of apps you’ve uninstalled. Old snippets and script tags are usually easy to spot.
- The tag manager. Shopify’s guide says to audit your tag manager and remove unused or low-value tags. Old ad pixels and test tags pile up for years.
- The report’s annotations. Match drops in the graph to the day each app went in.
My view: fewer apps, chosen on purpose
Before installing an app, decide what it has to earn to stay, and check the report a week later. If it didn’t move a number you care about, it’s costing you speed for nothing. Remove it properly, code and embed included.
Images, sections and video
Shopify does a lot for images automatically. What it can’t do is decide how much you put on a page.
What Shopify already does
Shopify’s image CDN serves each image in the best format, resized and compressed, and the platform sets browser caching on assets for a year. That removes a whole class of problems that other platforms have. It doesn’t make a page with forty large images light.
Too many sections
Shopify’s guidance is to avoid adding too many sections to page templates, because high numbers of sections lower performance. A home page that has grown a new section for every campaign, without the old ones coming off, is one of the most common slow pages there is.
Carousels, video and animations
A hero slider or autoplaying video at the top of the page is often the largest thing on it, which makes it the element that decides your LCP. Shopify also suggests comparing performance before and after turning on page transitions and animations. My view: if the first slide is the only one most people see, a single fast image usually sells better than five slow ones.
Upload sensibly anyway
The image CDN resizes, but it starts from what you uploaded. Shopify recommends appropriate formats, JPG for photographs and PNG for graphics that need transparency, and images sized to how they’re displayed. A 6,000-pixel photo straight off a camera is still a heavy start.
When the theme is the problem
If apps and content are under control and the store is still slow, look at the theme itself: how old it is and how much has been changed.
An old theme
Shopify recommends an up-to-date, optimised theme, and says its free Horizon and Online Store 2.0 themes are built for web performance. Themes from before Online Store 2.0 often carry years of workarounds, and without app blocks in their sections, more apps end up adding code to the theme files directly.
An over-edited theme
A theme edited by several developers over several years collects dead code, duplicate scripts and libraries loaded twice. Each edit made sense at the time. Together they’re slow, and nobody is sure what’s safe to remove.
Testing a fresh copy
The quickest honest test is to install a fresh copy of your theme, or one of Shopify’s free themes, as an unpublished theme and run the same page through PageSpeed Insights. If the fresh copy is much faster, the difference is what’s been added to yours, and you have a measured case for cleaning it up or rebuilding the theme.
My view: rebuild the theme before the platform
A slow Shopify store is almost never a reason to leave Shopify. It’s a reason to clean up the apps and, sometimes, rebuild the theme, which costs a fraction of a replatform and keeps everything that already works.
Beware the speed apps
Search the App Store or a freelance marketplace for “speed up Shopify” and you’ll find offers to get your score into the 90s overnight. Some of them do it by fooling the test, not by making the store faster.
What they actually do
Shopify’s developer documentation on fake performance apps describes the tricks. Some inject an invisible element that paints straight away, so the browser records it as the largest content and stops measuring the real page. Others detect testing tools, spotting Lighthouse in the user agent, and serve those tools a stripped-down page while real customers get the full, slow one. Others delay scripts until the first tap, so the test finishes before the work starts.
How to spot one
Shopify’s advice is to compare scores across tools: a difference of 20 points or more between PageSpeed Insights and Lighthouse in Chrome’s developer tools suggests manipulation. Look at what the tool reports as the largest content element; if it’s something you can’t see, that’s a sign. And watch whether scripts only run after the first interaction.
Where they’re sold now
Shopify says it has removed most of these apps from the App Store, but the same techniques are now commonly sold as speed optimisation services on freelance platforms like Fiverr and Upwork. If someone promises a score rather than a faster store, ask them to show the real-visitor data before and after.
My view: the report can’t be fooled the same way
Shopify’s own report measures real visitors on real devices. A trick that fools a test tool doesn’t make a real phone render faster, so the report is the number to hold anyone to, me included.
Measuring one change properly
Most speed advice stops at “remove apps”. The harder question is which app, and whether a change actually helped. A single test run can’t tell you: scores move by several points between identical runs. Here’s the method I use, and it needs nothing but a browser and an unpublished copy of the theme.
Test on a copy, not the live store
Duplicate the live theme and leave the copy unpublished. Shopify lets you preview an unpublished theme at its own address, so you can switch things off there, one at a time, while customers keep using the live store. Nothing you try on the copy can take a sale away.
One change, several runs
Pick the slowest template from the report, usually a product or collection page. Run it through PageSpeed Insights three times on the copy before changing anything, and note the median. Then turn off one app embed, or remove one section, and run it three times again. A change that holds across three runs is real; one that appears in a single run is noise.
Test like a customer
PageSpeed Insights simulates a mid-range phone on a slow connection, which is closer to your customers than your laptop is. For a second opinion, load the page on an actual older phone on mobile data, with the cache cleared. If a page feels fine on wi-fi and painful on the phone, the phone is right.
Deferring the right way
There’s an honest version of what the fake apps pretend to do. A chat widget or a reviews carousel far down the page doesn’t need to load before the product image, and loading it when it scrolls into view, or when someone taps the chat button, makes the page genuinely faster for the customer. The difference is that the work is really removed from the first load, rather than hidden from the test while the customer still waits.
What slow costs, and proving the fix
Speed work is easy to put off because the cost is invisible: nobody complains, they just leave.
◆ Why it’s worth the work
Where those figures come from
The Milliseconds Make Millions study, run by Deloitte for Google, followed 30 million mobile sessions across retail, travel, luxury and lead-generation brands in Europe and the US for four weeks. For retail, a 0.1-second improvement in mobile speed went with 8.4% more conversions and 9.2% higher order values. It’s a correlation across many brands, not a promise for yours, but the direction is consistent.
Prove each change
Change one thing at a time, note the date, and watch the report’s annotations and trend over the following week, allowing for its 36-hour delay. Removing an app or a section should show up in the numbers. If it doesn’t, put it back and look elsewhere.
◆ A faster store, in practice
Do
- Read Shopify’s web performance report before changing anything
- Remove unused apps properly, code and embeds included
- Audit the tag manager and delete old tags
- Keep the home page to the sections that earn their place
- Test changes on an unpublished copy of the theme
Don’t
- Judge speed from your own laptop
- Buy a service that promises a score instead of real-visitor data
- Add a new section for every campaign and never remove the old
- Assume uninstalling an app removed its code
- Replatform to fix what an app clean-up would
When to get help
If the report still shows poor results after the apps and pages are cleaned up, the cause is in the theme code, and that’s a job for someone who can read it. A health check on speed measures the pages customers use and says what to fix first. The visual audit does the same for every template, against your competitors.
◆ Glossary
- LCP (Largest Contentful Paint)
- How long the largest piece of content, usually the main image or heading, takes to appear. Good is 2.5 seconds or less.
- INP (Interaction to Next Paint)
- How quickly the page responds when someone taps or clicks. Good is 200 milliseconds or less.
- CLS (Cumulative Layout Shift)
- How much the layout jumps around while the page loads. Good is 0.1 or less.
- Real user metrics
- Speed measured from actual visitors on their own devices, rather than a single simulated test.
- App embed
- A way for an app to add code to your theme that you can switch off in the theme editor.
- Tag manager
- A tool, such as Google Tag Manager, that loads tracking and marketing scripts. Old tags in it still load on every page.
- CDN
- A content delivery network: servers around the world that deliver your files from somewhere close to each visitor.
◆ Sources



