Shopify Speed Optimization: How to Make a Slow Store Fast Again

Shopify handles hosting and the CDN, so when a store is slow the cause is almost always the theme, the apps and the media you added. How to measure speed the way Google does, find what is actually slowing the store down, fix images, apps, fonts and scripts in the right order, and keep it fast after the next app install.
Shopify speed optimization: making a slow Shopify store fast again

Shopify runs the servers, the CDN and the checkout, so when a Shopify store is slow it is almost never the hosting. It is the theme, the apps and the media that have been added over the years, one reasonable decision at a time. Shopify speed optimization is therefore less about clever tricks and more about subtraction: measure properly, find what is costing you time, remove or replace it, and stop it creeping back.

This is the order I work in on a real store. If you are still deciding on a platform, the Shopify vs WooCommerce comparison covers how speed work differs between the two; this article assumes you are on Shopify and staying there.

What you control and what you don’t

It helps to be clear about the boundary before spending time on it. Shopify gives every store the same infrastructure, so the differences between a fast and a slow store sit almost entirely on your side of the line.

Shopify handles You handle
Hosting, server response and scaling Theme choice and how heavily it is customised
Global CDN for theme files and images Which apps are installed and what they load
Image resizing and modern formats when themes request them properly Image dimensions, hero videos, sliders and how many images a page shows
The checkout itself Fonts, third-party widgets, tracking pixels and tag managers
HTTPS and HTTP/2 or newer protocols Custom code in theme files and leftover snippets

That is good news. Most of the fixes below need no developer access to anything except the theme editor and the apps list.

Measure it the way Google does

Shopify speed optimization starts with numbers you can compare later. Google judges page experience on three Core Web Vitals, measured from real Chrome users at the 75th percentile:

  • Largest Contentful Paint (LCP) — how quickly the main content, usually the hero image or product photo, appears. Good is 2.5 seconds or less.
  • Interaction to Next Paint (INP) — how quickly the page responds to taps and clicks. It replaced First Input Delay as a Core Web Vital in March 2024. Good is 200 milliseconds or less.
  • Cumulative Layout Shift (CLS) — how much the layout jumps while loading. Good is 0.1 or less.

Run PageSpeed Insights on three templates, not just the home page: the home page, a busy collection page and your best-selling product page. Read the field data at the top first (real users over the last 28 days, shown when the store has enough traffic), then the lab diagnostics underneath, which tell you why. Shopify’s admin also has a web performance report built on real-visitor Core Web Vitals; the exact menu location has moved over time, so search the admin for “performance” if you can’t find it. Shopify retired its old 0–100 speed score in favour of these real-user metrics, which is the right call — a lab score on its own is a diagnostic, not a verdict.

Write the baseline down. Record LCP, INP and CLS for each of the three templates, plus mobile lab scores, with the date. Every change after this is judged against that row. Without it, speed work turns into a feeling.

Why is my Shopify store slow? The usual suspects

In practice the same handful of causes turn up again and again. Roughly in order of how often I find them:

1. Apps loading on every page

Each app that touches the storefront can add JavaScript, CSS and network requests — often on every page, whether the feature is used there or not. A reviews widget does not need to load on the contact page; an upsell pop-up does not need to load on the blog. Ten apps that each add “only a little” add up to a slow store and, more importantly, a poor INP score, because all that script competes for the phone’s processor.

2. Code left behind by removed apps

Modern apps that use theme app extensions and app embeds are removed cleanly when you uninstall them. Older apps, and some current ones, injected snippets directly into theme files such as theme.liquid. Uninstalling the app does not always remove those snippets, so the store keeps requesting files from a service you no longer pay for.

3. The hero section

An autoplay background video, a five-slide carousel, or a 4,000-pixel-wide image uploaded straight from the photographer. The hero is almost always the LCP element, so whatever you put there sets your LCP score.

4. Theme weight and customisation

Feature-heavy themes ship code for every section they offer. Years of edits by different freelancers add duplicate libraries, old jQuery plugins and copied snippets that nobody dares to remove.

5. Third-party scripts

Chat widgets, pop-up builders, heat-mapping tools, multiple analytics tags and several ad pixels. Each one is a request to someone else’s server and work for the browser.

Fix the apps first

This is usually the biggest single win in Shopify speed optimization, and it costs nothing. Go through the installed apps list with one question per app: what does it earn, and could the theme do the same thing natively?

  1. List every app and what it is for.

    Include who asked for it and when. You will find apps installed for a single campaign three years ago, two apps doing the same job, and trials nobody cancelled.

  2. Remove what earns nothing.

    Uninstall apps you do not use. Many modern themes now include features that once needed an app: product tabs, size charts, announcement bars, colour swatches, basic upsells. Replacing an app with a native theme section is nearly always faster.

  3. Clean up the leftovers.

    Duplicate the live theme first so you have a backup. Then search the theme code for the names of removed apps and for script tags pointing to their domains. Remove those snippets in the copy, preview it, and publish only when the storefront still works. If you are not comfortable editing Liquid, this is the step to hand to a developer.

  4. Limit where the remaining apps load.

    Where an app uses an app embed or block, enable it only on the templates that need it. Check each app’s settings for options to disable it on specific pages.

  5. Re-measure.

    Run the same three PageSpeed Insights tests and compare against the baseline. Field data takes up to 28 days to reflect the change, so judge early progress on lab results.

Images and the hero

Shopify’s CDN can resize images and serve modern formats such as WebP or AVIF to browsers that support them — but only if the theme asks for sensible sizes. Well-built themes use Liquid’s image_url filter with a width and the image_tag filter, which outputs responsive srcset sizes so a phone downloads a phone-sized file. Older or hand-edited themes sometimes request the full original everywhere.

  • Upload sensibly sized originals. Large enough for the biggest display they will appear on, not straight off a camera.
  • Do not lazy-load the hero. Lazy loading is right for images further down the page, but the LCP image should load immediately. Good themes handle this per section; check that your first section is not marked loading="lazy".
  • Replace autoplay video heroes with a strong still image on mobile at least. If the video must stay, give it a lightweight poster image and keep the file short.
  • One hero, not a slider. Carousels add script, delay the main image and rarely get past slide one.
  • Set dimensions. Images and embeds without width and height reserve no space and cause layout shift. Most theme sections do this for you; custom HTML blocks often do not.

Theme, fonts and third-party scripts

The theme

If the theme is several years old, heavily patched, or built before Online Store 2.0, moving to a current, well-maintained theme can be the cleanest fix. Before switching, run PageSpeed Insights on the new theme’s demo store, and plan the rebuild so you re-add only the apps you genuinely need. A fresh theme with every old app reinstalled will end up exactly where you started.

Fonts

Each font family and weight is another file to download before text renders in its intended style. Use one family for headings and one for body text at most, limit the weights to what you actually use, and prefer fonts from Shopify’s font library, which are served from Shopify’s own CDN. System fonts are the fastest option of all and look perfectly professional on most stores.

Third-party scripts and tracking

Tracking matters, but it should not be loaded three times. A common pattern is the Meta pixel added through the sales channel, again in a tag manager, and again by an old app. Use Shopify’s customer events and the official sales-channel integrations where possible, and make sure each pixel fires once. The same applies to chat widgets: if the chat is rarely used, consider loading it only after a visitor interacts with the page, or only on key pages.

Watch INP on mobile. Stores often pass LCP and CLS after image fixes but still fail INP, because the phone’s processor is busy running app and tracking scripts when the customer taps “Add to cart”. If INP is your failing metric, the fix is fewer scripts, not smaller images.

Speed is only part of the job

A fast store that nobody finds is still a quiet store. Speed sits alongside the rest of the technical and content basics in the Shopify SEO checklist, and the same Core Web Vitals concepts apply to any platform — the Core Web Vitals guide for WordPress explains each metric in more depth if you run sites on both. Keep an eye on conversion rate and revenue per session alongside the speed metrics; that is the point of the exercise.

Keep it fast: a monthly routine

Stores slow down gradually, through additions rather than neglect, so Shopify speed optimization is never a one-off job. A short routine prevents most of it:

  1. Before installing any new app, write down what it is for and test the three key templates before and after.
  2. Once a month, re-run PageSpeed Insights on the same three URLs and compare against the baseline.
  3. Review the apps list each quarter and remove anything that has not earned its place.
  4. After uninstalling an app, check the theme code for leftovers the same day, while you still remember its name.
  5. Duplicate the theme before any code change, and keep a dated note of what changed.

Mistakes to avoid

  • Chasing a perfect 100 lab score instead of passing Core Web Vitals in the field.
  • Installing a “speed booster” app that adds yet another script to every page.
  • Testing only the home page while most traffic lands on product pages.
  • Lazy-loading the hero image, which delays the very thing LCP measures.
  • Editing the live theme directly with no backup copy.
  • Switching themes and then reinstalling every old app out of habit.
  • Loading the same tracking pixel through two or three different routes.

Further reading: Shopify: theme performance best practices · web.dev: Core Web Vitals · About PageSpeed Insights.

FAQ

Why is my Shopify store slow?

Rarely because of Shopify’s servers. The usual causes are apps that inject scripts on every page, leftover code from apps you uninstalled, oversized hero images or autoplay video, heavy themes with many sliders and animations, custom fonts, and third-party widgets such as chat, reviews and pop-ups. Remove what you do not need before buying anything new.

Do Shopify speed optimization apps work?

Some help with narrow jobs such as image compression, but many add their own script to every page, which is the problem you are trying to solve. Shopify already serves images through its CDN in modern formats, so a large part of what these apps promise is done for you. Fix apps, theme and media first, then judge whether anything is left to automate.

How do I check my Shopify core web vitals?

Use PageSpeed Insights on your home page, a collection and a product page, and look at the field data section, which comes from real Chrome users. Shopify’s admin also reports Core Web Vitals from real visitors. Lab scores are useful for diagnosing problems, but the field numbers are the ones Google uses, judged at the 75th percentile.

Does changing my Shopify theme make the store faster?

It can, if the current theme is old or heavily customised, but a fast theme loaded with the same twelve apps and a video hero will be slow again within a week. Test the new theme’s demo with PageSpeed Insights first, then rebuild deliberately rather than reinstalling every app out of habit.

Can I speed up the Shopify checkout?

Only a little. The checkout is hosted and run by Shopify, so its core performance is not yours to tune. What you control is what you add to it: checkout extensions, tracking scripts and payment options. Keep those lean, and offer accelerated wallets such as Shop Pay, Apple Pay and Google Pay so fewer customers have to fill in long forms.

Want a second pair of eyes on a slow store — apps, theme code, images and tracking checked against real Core Web Vitals? See the Shopify development services; a speed review is a good place to start before spending on a new theme.

Want this done for you?

Book a free 20-minute strategy call

Tell me about your business and I will map the exact system that will capture more leads and book more sales. No pitch, no pressure — a fixed quote follows in writing within 24 hours.

Keep reading

Related articles

Hello.

Ready to turn traffic into paying clients?

Book a free strategy call and we will map what your website and follow-up should actually do. No pressure, no jargon — just clear, honest advice you can act on.

What I build
  • Full-stack websitesWordPress, WooCommerce, Shopify & Webflow
  • AI automation & chatbotsGoHighLevel, n8n, Make & Zapier workflows
  • Sales funnels & CRMLanding pages, pipelines, A2P and voice agents
  • Technical SEO & speedCore Web Vitals, schema and on-page fixes
🤞 3 spots left this month
Saleem Akhter, full-stack web developer and AI automation engineer
Saleem Akhter
Online
I am available & open to work.