Shopify

How to Fix Shopify Store Speed, Step by Step

Most speed checks are run on the wrong page over the wrong connection. This is the checklist for finding what's actually slowing your store down and fixing it yourself.

A tradesperson beside a service van checks a phone with a dark screen while a laptop sits open on the tailgate nearby.

Somebody told you the store is slow. Maybe a customer mentioned it, maybe you saw it yourself on your phone in a parking lot between jobs, waiting on a product page that just sat there white. So you opened the store on the office computer, it loaded fine, and you moved on.

That's the problem with most speed checks. They're run on the wrong page, on the wrong connection, at the wrong time of day.

Fixing Shopify store speed starts with measuring it the way your customers actually experience it, then working through the usual causes in order instead of guessing. Images, apps, leftover code, theme settings, old trackers. Most of them you can check yourself in an afternoon.

By the end you'll know which of those is costing you, and which ones need a developer.

Get a page speed baseline you can trust

A homepage on office wifi is the easiest test in the world to pass. It's cached, it's light, and your desktop has a fast connection and a big screen. Run that test and you'll conclude the store is fine.

Your customer is on a product page, on a phone, on cell data, probably somewhere with one or two bars. That's the page and the connection that count.

So before you touch a single image or uninstall an app to fix your Shopify store's speed, get a baseline you can trust. Two things decide whether that baseline is real: the page you test, and the connection you test it on. Get both right and the page speed number you write down actually means something. Get either wrong and the load time you see is fiction.

Run PageSpeed Insights on a collection and a product page

Your homepage is built to be light. It's usually a banner, a few featured items, and some text. It gets visited often enough to stay cached, and most themes ship it lean out of the box. It's also the page you look at most, so it's the one you've quietly optimized over the years without thinking about it.

The pages that actually carry your store are heavier. A collection page loads dozens of product images, filters, sort menus, and whatever review widget you installed. A product page adds variant logic, an upsell block, a size chart, a shipping estimator, sometimes a live chat bubble.

Open two specific pages and record the page speed for each, either by counting it yourself or by running the URL through Google's PageSpeed Insights:

  • The collection with the most products in it. If you sell parts or supplies, that's usually the big catch-all one.
  • The product page you link to most often — from ads, from email, from a text you send a customer.

Test each one twice and write both numbers down. The first load is slower than the second because nothing is cached yet, and the first load is what a new customer gets.

Check your load time on a phone using cell data

Your office wifi is fast, your desktop is fast, and your browser's caching is already holding half the store from the last time you looked at it. That combination makes almost any store look fine. It's the reason owners are surprised when a customer says the site was slow.

A customer standing in a parking lot on two bars of cell service is running a different test. Weaker signal, older phone, no cache, and they're deciding in a few seconds whether to wait.

So do it their way. Take your own phone, turn wifi off, and load the collection page and the product page you picked. Use a private or incognito tab so nothing is stored from your last visit. Count the seconds out loud if you have to — you want a rough load time you can compare against later, not a precise Core Web Vitals score.

Then do it again somewhere with worse signal. In the truck, at a job site, wherever your phone usually struggles.

If someone on the crew has an older phone, borrow it for a minute. That's often the honest test, and it's free.

Check your images first

A photo taken on a phone or a camera is built for printing and cropping, not for loading on cell data. When it goes straight into a product page at full size, the browser still has to download the whole thing before it can shrink it to fit a small screen. The customer waits for detail they'll never see.

This is the most common cause we find, and it's the easiest way to fix a Shopify store's speed without a developer.

Here's the check. Open one of your product pages, right-click a photo, and open it in a new tab. Look at the image's own width in pixels versus how wide it actually appears on the page. If the file is several times wider than the space it fills, it's oversized. Do this on three or four products, especially anything you or the crew uploaded yourselves from a job site.

Banner and hero images on collection pages are worth the same look. Those are usually the biggest files on the store, and they're often the LCP, the largest piece of the page a visitor sits waiting on before anything feels ready.

The fix is to resize before uploading, not after. Save a copy of the photo at roughly the width it will display at, then upload the copy. Keep the original somewhere else if you need it for print or for a truck wrap.

If you have hundreds of products, don't try to redo all of them. Start with your best sellers and the pages people actually land on from ads or search. Those are the images costing you money.

One more thing to watch: photos sitting inside the page text, dropped in from a phone while writing a description. Those skip the usual sizing and often turn out to be the heaviest files in the whole store.

Count how many apps are running scripts on every page

Most apps don't stay in their lane. A review widget meant for product pages will often load its JavaScript on your cart, your contact page and your policy pages too. A currency converter, a popup builder, an upsell tool — each one adds a file the browser has to fetch and run before the page feels ready. The app does nothing on those pages. The visitor still waits for it.

This is the part owners underestimate. One app feels like nothing. Eight apps, each loading a script everywhere, is a slow store.

Here's how to see it for yourself. Open a product page on your store in a desktop browser, right-click and choose "View page source." Use Ctrl+F (Cmd+F on a Mac) to search for script src. Every match is a file the page is pulling in. Many of them will have the app's name right in the URL. Do the same on a page where that app has no job — a collection page, or your about page. If the same script shows up there, it's loading for no reason.

Write down what you find. Page, app name, whether it belongs there.

Some apps let you limit where they run from inside their own settings. Check there first, it costs you nothing. Others need a line changed in the theme, and that's a developer job, but a small one once someone has your list.

The honest test for each app is simple: if you turned it off today, would anyone in the office notice by Friday? A popup tool you set up for a holiday promotion two years ago is still running JavaScript on every page of your store. So is the chat widget nobody answers.

Keep the list. It feeds the next two steps.

Find the code that apps left behind after you removed them

Uninstalling an app from your Shopify admin removes the app. It does not always remove the code the app put in your theme. Snippets stay in the theme files. Script tags stay in theme.liquid. The customer's browser still downloads them, still runs them, and gets nothing back because the app that answered them is gone.

This is the quietest problem on the list and one of the most common, because nobody goes looking for it. The app is off your bill, so it feels handled.

Here's how to find it without touching anything yet. Open your theme code from the Shopify admin, then open theme.liquid. Look near the top and the very bottom for <script> tags and for render or include lines that name something. Write down every name you see. Then open the snippets folder and read the file names. You're looking for names that match apps you don't pay for anymore. Review apps, upsell tools, size charts, currency switchers, anything from a store you rebuilt or a promotion you ran once.

Also check your checkout settings for additional scripts, and your store's custom pixels. Old code collects there too.

Do not delete anything on the live theme. Duplicate the theme first, make the edit on the copy, then preview it and click through a product page and the cart. Some of those snippets are load-bearing, added by a developer for a reason nobody wrote down.

Cross-check the names against the app list you started in the last step. An app that's still installed but unused is one job. An app that's gone but still shipping JavaScript to every visitor is a different one, and usually faster to fix.

Stop theme sections from loading content nobody can see yet

Open your theme editor and look at the section list for a product page. Count the sections that sit below the first screen a visitor sees on a phone. Related products, recently viewed, a review widget, an Instagram feed, a map, a video background, a slider with several slides. On most stores, every one of those starts loading the moment the page opens, whether or not the customer ever scrolls that far.

That's the waste. The phone is downloading images and running JavaScript for a block of content the visitor may never reach, while the thing they came for — the product photo, the price, the add-to-cart button — waits its turn.

What to check, in this order:

  • Sliders and carousels. A slider that holds five slides often loads all five images up front. The customer sees one.
  • Video. Autoplay background video on a product or collection page is expensive on cell data. Turn it off and use a still image.
  • Feeds and widgets. Social feeds, review walls, and map embeds pull in code from another company's server or CDN, which you don't control. If it lives below the fold, it should wait.
  • Image loading. Images in lower sections should use lazy loading, meaning the browser only fetches them when the visitor scrolls close. Your theme may already do this. Many older themes don't.

Do this from a duplicated theme, not the live one. Remove or reorder the sections you don't need, preview, then scroll the whole page on a phone to make sure nothing broke or went blank.

If a section exists because someone asked for it two years ago and nobody has looked at it since, delete it. That's the cheapest speed fix on the list.

Old ad trackers keep running JavaScript on every page

Every ad platform you've ever tried gave you a snippet of JavaScript to paste into your store. That snippet keeps running after the campaign stops. It loads on every page, for every visitor, long after you've stopped spending a dollar there.

Most stores that have been around a few years are carrying trackers from platforms the owner forgot about. An agency added one. A marketing person added two more. Nobody removed anything, because removing things feels risky and leaving them costs nothing you can see.

Here's how to find them. Open the main layout file of your theme, usually named theme.liquid, and read the code between the head tags. Tracking pixels almost always live there. Also check wherever your store settings let you add pixels or custom scripts. Write down every platform name you find.

Then go down that list and ask one question about each: are we running ads there right now? Not last year. Now.

Anything that's a no comes out. Do it in a duplicated theme first, so you can put it back if something looks wrong.

One caution. If a tracker is tied to a campaign that's still live, or to reporting your bookkeeper or ad manager uses, pulling it breaks their numbers. Ask before you delete. A two-minute message to whoever runs your ads saves a month of bad conversion data.

List every app you have installed and mark the ones nobody's opened this month

This is the one job on the list you can finish yourself, at the kitchen table, with no developer and no code.

Open your Shopify admin and go to your apps. Write every one down on paper or in a spreadsheet. Not the ones you remember installing. Every single one the admin shows you.

Next to each name, put four things:

  • What it does, in your own words. If you can't say, that's an answer.
  • What it costs you each month.
  • The last time anyone in the office actually opened it.
  • Whether a customer would notice if it vanished tomorrow.

That third column is the one that matters. Most stores collect apps the way a truck collects tools behind the seat. Somebody installed a popup builder for a holiday promo. Somebody tried two review widgets and kept both. A currency converter went on for one international customer who never ordered again. None of them got removed, and every one of them is still loading on every page a customer opens.

Mark the ones nobody has opened this month. In our experience that list is usually most of your speed problem, sitting in plain sight. You don't need a diagnosis to act on it.

Then sort your marked rows into three piles. Remove covers anything with no purpose you can name and no cost to losing. Replace covers the ones doing something your theme already does, or something two apps are both doing. Keep is everything that earns its place, and you should be able to say why in one sentence.

Work through the remove pile one app at a time. One removal, then check the store. Then the next. If you take out six at once and the cart breaks, you won't know which one did it.

Keep your list when you're done. The next time somebody wants to install something, you'll have the record of what happened last time.

Re-test the same way you tested the first time

A faster number on a different page proves nothing. If you measured a collection page and a product page on your phone over cell data, that's what you measure again. Same two pages. Same phone. Same network. Office wifi will hand you a better load time every single time, and it won't mean the store got faster for the customer standing in a driveway.

Test after each fix you make to your Shopify store's speed, not at the end of the whole list. Compress the images, then test. Remove one app, then test. This is slower, and it's the only way to know which change actually did something. Bundle five fixes together and you learn that the store improved, with no idea which four were a waste of an afternoon.

Write down what you see, page by page, fix by fix. A note in your phone is enough: date, page, what you changed, whether it felt quicker. You're building a record you can hand to a developer later, or use to argue against installing something again.

One caution. Run the same page twice in a row and the second run will usually look better, because your phone cached part of it. Close the browser tab between tests, or test in a private window, so you're seeing what a first-time visitor sees rather than your own return trip.

See how this fits with the rest of your speed work

This is the measuring step. The two earlier pieces we published on store speed cover the why and the what — this one is the clipboard you carry while you walk the store and look.

Read them in whatever order suits you. If you haven't touched page speed yet, run the tests here first so you know which of those fixes actually applies to your store instead of doing all of them on faith. If you've already made changes, run the tests here to find out whether they did anything.

Either way, you end up with a short written list: the pages you tested, what you found, what's still slow. That list is worth more than another afternoon of guessing, because it's what you hand to whoever fixes your Shopify store's speed next. Could be you, could be a developer, could be us.

Questions owners ask about Shopify speed

Why does my store feel slow even though it looks fine? Usually because the page is doing work the visitor never asked for. Full-size images shrunk down by the browser instead of before upload. A stack of apps each adding their own scripts to every page, including pages that don't use them. Code left behind by apps you deleted. Sections in the theme pulling in content that sits below the fold. Trackers from campaigns that ended. Any one of those is survivable. Five of them together is why the product page hesitates before it paints. Work the list above in order and you'll usually find the weight in the first two items.

How do I actually check my page speed? Open a collection page and a product page on your own phone, on cell data, standing away from the shop wifi. Watch what happens in the first few seconds: does the image area stay blank, does the layout jump once things arrive, can you tap a button before the page settles. Write down what you see and on which page. That's your baseline. A scoring tool can tell you more later, but the phone test is the one that matches how customers actually arrive, and it's the one you can repeat the same way every time so the before and after mean something.

Is Shopify still worth it in 2026? Yes, for most trade and service shops selling parts, units or service plans. Nearly every complaint we hear about the platform being slow turns out to be shop-level: images, apps, leftover code, trackers. Those live in your store, not in Shopify. Moving to another platform carries all four problems with you, plus a rebuild. The load time on a clean Shopify store with a plain theme and a short app list is fine. The load time on a store that's collected apps for three years is not, and that's true anywhere. Clean yours up first. If it's still slow after that, then you have a real question about the platform, and you'll have the test results to argue it with.

Turn what you found into a list with a price on it

By now you've got notes: a few images that are far too big, an app list with half the names unfamiliar, maybe a tracker from an ad campaign you stopped running. Notes are where most owners stop. The work sits because nobody knows which item is a ten-minute fix and which one means touching the theme code.

That's what the Free Store Checkup is for. We run the same tests you just ran — a collection page and a product page, on a phone, on cell data — then go through the theme and the app list ourselves. What comes back is written down: each problem we found, what it's costing you in page weight or blocking scripts, and a price beside the fix. Some lines will say "you can do this yourself" with the steps. Some will need us. You'll be able to tell them apart and pick.

Nothing on that list is a commitment. Plenty of owners take the written version, do the image and app cleanup on their own over a couple of evenings, and come back later for the code work. That's a fine outcome. The point is knowing what's actually wrong and what each repair costs, instead of guessing at it between jobs.

If you want us to take a look, book a New Project Consultation.

More onshopifywebsitestrades

Chris Hobbick

The Person Who Wrote This

Chris Hobbick

I build websites, stores, and automations for small businesses. I watch where the work gets stuck, calculate what it costs, and give you a fixed price to remove it.

Meet Chris →

The Newsletter

One useful idea. Once a week.

No trend reports. No recycled marketing advice. One practical breakdown of a problem that costs a small business time or money.

No daily noise. Unsubscribe whenever you want.