Skip to content
SEO

Shopify Speed Optimization That Works

Most Shopify speed problems are apps and images, not the platform. Find which ones are slow and fix them in the order that moves Core Web Vitals.

By Jeremy ZavaAI-assisted, reviewed by Ibrahem Helal6 min read

Shopify speed problems are almost always apps and images, not the platform. Shopify's hosting and CDN perform the same on every plan; what differs store to store is how many scripts the installed apps inject and how large the images are, and both of those are fully within a merchant's control.

Speed is one piece of a larger Shopify SEO strategy — the technical foundation that makes everything else on the store worth ranking.

On this page

What does Shopify actually control, and what do you control?

Shopify owns the hosting, the CDN and the base template rendering. You own the theme customizations, every app you install, and every image you upload. That split matters because it tells you where to look first: a store on the cheapest plan and a store on Shopify Plus load the base platform at the same speed, so a difference between two stores almost never comes from the plan.

What determines a Shopify store's speed
Fixed by the platformDetermined by you
CDN and edge cachingHow many apps inject scripts on every page
Base server response timeImage file size and format
HTTPS and connection setupTheme code quality and third-party embeds
Checkout page performanceFonts, custom code and tracking pixels

That is good news in one specific way: every lever that actually moves the number is one you can pull without a platform change or a migration. It is also the uncomfortable news, because it means a slow store cannot blame the platform for very long.

The one partial exception is checkout, which Shopify controls end to end and which merchants cannot meaningfully customize the performance of on any plan below Plus. That is worth knowing so you do not spend a week chasing a checkout number the admin gives you no real levers to move — put that hour into the product and collection templates instead, where every change you make is one Google can actually see and measure.

What does Core Web Vitals actually measure?

Three things, and each needs a different fix. Largest Contentful Paint measures how long the biggest visible element takes to load, and Google's guidance sets the good threshold there [2]. Cumulative Layout Shift measures how much the page jumps around as it loads, with its own published threshold [3]. Interaction to Next Paint measures how quickly the page responds once someone actually clicks or taps something.

Treat these as three separate diagnoses rather than one blended score, because the fix for a slow LCP — usually a heavy hero image or a render-blocking script — is a different job from the fix for a shifting layout, which is usually an image or an ad slot with no reserved space. A report that only gives you one number will send you looking in the wrong place.

Which apps are actually slowing the store down?

More than any other single factor. Every installed app that runs on the storefront, not just the admin, adds a script that the browser has to fetch, parse and run before the page is interactive — and most apps load on every page by default, whether or not that page needs them.

  1. Open the theme's browser inspector network tab

    Load a product page with caching disabled and read the request list. Anything from a third-party domain came from an app or an embed, not the theme.

  2. Match each request to an app

    Cross-reference the domains against your installed apps list. Some are obvious from the name; others need a quick search.

  3. Ask what each one is actually doing on this page

    A reviews widget on a product page earns its place. A marketing pixel that only needs the checkout page does not belong on every product page.

  4. Remove or defer, in that order

    Uninstall anything not earning its weight. For what remains, ask whether it can load after the main content rather than blocking it.

Do this on your three or four highest-traffic pages, not the homepage alone — apps often load selectively, and a homepage audit can miss the one script that is only injected on product pages.

Keep a running list as you go, with one column for what the app does and one for what it costs in requests and load time. That list becomes the thing you actually decide from, rather than a gut feeling about which apps "seem important." It is also the fastest way to catch the most common failure mode: two apps doing almost the same job, both left running because nobody ever compared them side by side.

Are your images the real bottleneck?

Frequently, and it compounds fast on a catalog with hundreds or thousands of products. An uncompressed product photo uploaded straight from a camera or a supplier's spec sheet can run several megabytes; multiply that across a gallery of four images per product and the weight adds up before a single line of theme code runs.

Current Shopify themes serve images through the platform's own CDN with automatic format negotiation and responsive sizing, which handles delivery for you. What it cannot do is compress a source file you uploaded oversized in the first place, or choose a sensible crop — those decisions happen before the file ever reaches Shopify.

Does the theme itself matter?

Yes, independently of apps and images. Shopify's own guidance on theme performance is specific about the patterns that cost the most: render-blocking JavaScript in the head, custom fonts loaded without a fallback, and sections that fetch data after the page has already painted, causing a visible layout shift [4]. None of these show up in a plan comparison; they show up in code review.

If you inherited a theme built by a previous developer or agency, it is worth an audit on its own, separate from the app and image work above — a theme with unnecessary render-blocking code will undercut every other fix on this page.

A quick way to tell whether the theme itself is the problem: strip a product page down by disabling every app and swapping in a stock image, then measure it again. If it is still slow with nothing else running, the theme's own code is the bottleneck and no amount of app cleanup will fix it. If it comes back fast, the theme was never the issue and the apps you removed earlier were doing all the damage.

How do you actually test this, and trust the result?

From a real phone on a real mobile connection, not a desktop browser on an office connection. Most of your traffic, and almost certainly most of your revenue-generating traffic, comes from a phone on a cellular network, and a fast desktop score can sit on top of a genuinely slow mobile experience without anyone noticing.

Run the same set of pages — homepage, a representative collection, a representative product, checkout — every time you make a change, so you are comparing the same pages against themselves rather than chasing a single best-case score. Track the trend, not the snapshot: a store that improves steadily over a quarter is in a different position than one that spikes after a fix and drifts back within weeks because nobody watched what got reinstalled.

That drift is the part most merchants miss. A theme update, a new app trialed during a promotion and never removed, or a marketing pixel added by someone outside the SEO conversation can undo a quarter of work in an afternoon. Put the same page set on a recurring monthly check rather than treating the fix as a one-time project, because the apps and images causing the next slowdown have not been installed yet.

The fastest fix on almost every Shopify store I have audited was an app nobody remembered installing. Find that before you touch a single image.
Jeremy ZavaCo-founder, RankPearl

Speed and duplicate URLs tend to come from the same neglected theme, so if you have not already run the canonical check in fixing Shopify duplicate content, that is the natural companion audit. And once the technical layer is clean, Shopify schema markup is what turns a fast, correctly canonicalized page into one that can also earn rich results.

Questions people also ask

  • Is Shopify hosting the cause of a slow store?

    Rarely. Shopify's hosting and CDN are consistent across every plan and every store. What varies, sometimes enormously, is the theme, the number of apps installed and the weight of the images — all merchant decisions, not platform limits.

  • How many apps is too many?

    There is no fixed number. What matters is how many of them inject a script on every page regardless of whether that page needs it. Five apps that only load on the checkout page cost less than two that load everywhere.

  • Do image apps actually help?

    Compression and correct sizing help; a lazy-load app rarely does, because current Shopify themes already lazy-load images below the fold. Test before adding one — it may be solving a problem the theme already solved.

  • Does speed actually affect rankings?

    It is one signal among many, and its own weight is modest. The larger effect is indirect: a slow store loses shoppers before they convert, and a page that never gets viewed generates no signal Google can learn from either.

Sources

  1. Web Vitals — web.dev (Google) (checked 22 September 2026)
  2. Largest Contentful Paint (LCP) — web.dev (Google) (checked 22 September 2026)
  3. Optimize Cumulative Layout Shift — web.dev (Google) (checked 22 September 2026)
  4. Theme performance — Shopify Developer Documentation (checked 22 September 2026)

Get a straight answer on what's actually slowing your store down

Book a free 30-minute consultation with Ibrahem and Jeremy. We look at your site while we talk, and you leave with a prioritised plan.

Who wrote this

Jeremy ZavaCo-founder

Leads growth and client partnerships.

Works on: CRO, SEO

Reviewed before publishing by Ibrahem Helal, Co-founder.

Posts by Jeremy Zava

More on this