Shopify

What Is Actually Worth Optimising On A Shopify Store

What Shopify Already Does, Against What Is Yours

Already Done For You

  • A global delivery network
  • Images compressed and converted
  • Files shrunk, pages cached a year

Do Not Pay For These

Actually Yours To Fix

  • The theme
  • The apps
  • The images you upload
  • Code someone pasted in

This Is Where The Work Is

Shopify's own list of what it handles. If a proposal quotes you for the left column, whoever wrote it ran a generic tool and never checked the platform.

By Graham O'Shea, Founder and Lead Developer  ·  1 August 2026  ·  Written against Shopify API version 2026-07  ·  Part of The Shopify Development Guide

Shopify already does a large part of what generic speed tools tell you to fix. Its documentation lists a Cloudflare CDN, automatic image optimisation served as WebP, gzip compression, minified CSS and JavaScript, and browser caching set to a maximum one year duration. All of it automatic, all of it outside merchant control.

So a report telling you to enable compression and serve next generation images is describing work Shopify already does for you.

What is left is narrower. The theme, the apps, the images you upload, and the third party code someone pasted in. This piece is about those four, and about which of them actually moves money.

What Is Actually Worth Optimising On A Shopify Store?

Optimise the things you control, and stop paying for the things Shopify has already done.

Shopify names the biggest factors as the theme, apps loading assets on the storefront, pages with numerous high quality images, and any third party code added manually, including tag managers and the tags inside them.

Notice what is not on that list. Nothing about CDNs, nothing about compression, nothing about cache headers. Shopify states directly that many third party performance tool recommendations are irrelevant because those optimisations are already included by default.

That single sentence should change how you read the next audit someone sends you.

What Shopify Already Handles

Worth being specific, because in my experience this is the part merchants are most often sold.

According to Shopify's own performance documentation, these are automatic and cannot be controlled by the merchant:

  1. A Cloudflare content delivery network.
  2. Browser caching, set to a maximum one year duration.
  3. Gzip compression applied to CSS, JavaScript, documents and pages.
  4. Automatic image optimisation, with images served in WebP format.
  5. CSS and JavaScript minification.

If a proposal quotes you for any of those, the honest reading is that whoever wrote it ran a generic tool and did not check the platform. In my experience that is common enough to be worth checking for before you sign anything.

Diagram splitting store performance into what Shopify handles and what a merchant controls

The Speed Score Is Not Your Conversion Rate

Shopify publishes a weighted Lighthouse formula for evaluating theme performance across page types.

The formula is [(p * 31) + (c * 33) + (h * 13)] / 77, where p is the product page, c is the collection page and h is the home page. The weights sum to 77 and the division normalises the result.

Two things follow from that formula, and both matter.

First, the formula covers three page types and nothing else. My own reading is that a number produced this way tells you about those pages, and that what your customers actually experienced is a separate question.

Diagram of Shopify's Lighthouse weighting across the three page types

Second, the collection and product pages carry more than four times the weight of the home page between them. If someone has spent a budget making your home page fast, they have optimised the smallest of the three inputs.

For what real visitors experience, I go to Core Web Vitals. Google's thresholds are a Largest Contentful Paint within 2.5 seconds, an Interaction to Next Paint of 200 milliseconds or less, and a Cumulative Layout Shift of 0.1 or less, assessed at the 75th percentile of page loads and segmented across mobile and desktop. Interaction to Next Paint became a stable Core Web Vital in 2024, replacing First Input Delay, so an older audit may still be leading on a metric that is no longer one of the three.

My own view is that the score is a smoke alarm, not a diagnosis. It tells you to go and look. It does not tell you what is wrong, and it certainly does not tell you what a fix is worth.

Apps Are Usually The Culprit

Shopify puts it plainly: too many apps loading assets on your storefront can slow performance.

The mechanism is worth understanding because it changes what you do about it. In the stores I have looked at, an app that injects a script into the storefront tends to keep injecting it well beyond the pages that need it. A review widget wanted on product pages turning up on the home page is the pattern I see most often.

Shopify's own guidance to merchants is to evaluate installed apps and make sure they are creating enough value to offset any potential performance losses. That is a commercial test, not a technical one, and it is the right framing. The question is not whether an app is slow. It is whether it earns its weight.

Uninstalling is also not always the end of it. In my experience some apps leave theme code behind when they are removed, which is why I compare the app list against what the theme actually loads rather than trusting either on its own.

The Theme Layer Has Published Limits

If you are commissioning theme work, Shopify has published numbers you can hold a developer to.

Themes submitted to the Shopify Theme Store must achieve a minimum average Lighthouse performance score of 60 across the home page, product page and collection page. That is a Theme Store submission requirement rather than a rule applied to every store, but it is a reasonable floor to expect from paid custom work.

Shopify's theme performance guidance also states that a minified JavaScript bundle should be 16 KB or less. It tells developers to prioritise HTML and CSS and use JavaScript only as progressive enhancement where no native solution exists, and says JavaScript should not be required for the basic functionality of a theme, such as finding or purchasing products.

It advises against large frameworks, naming React, Angular, Vue and jQuery, and against polyfills for outdated browsers. Scripts injected into themes should always be wrapped in an immediately invoked function expression to prevent global namespace collisions. Script tags should carry defer or async so they do not block DOM construction.

On images and fonts, the guidance is to lazy load below the fold images, use the image_tag filter for responsive images, and consider a system font to avoid an extra resource download.

There is one more that is easy to miss. Shopify recommends hosting assets on its CDN through the /assets folder rather than loading them from external sources, to take advantage of HTTP/2 prioritisation.

That list is useful precisely because it is specific. You can check a build against it.

Measure Real Users, Not Just Lab Runs

Shopify recommends Lighthouse CI for continuous performance monitoring, and exposes real user monitoring data through the Web Performance dashboard and reports. Its performance documentation also names PerformanceMetrics and PerformanceEvents GraphQL queries. Shopify ships a new API version quarterly, so confirm both against the version you are building on. This piece is written against 2026-07.

The distinction matters, and it is the reason I lead with the real user data. Shopify offers both, and only one of them is drawn from your own traffic.

If you take one process away from this piece, make it that: fix from real user data, verify with lab runs, not the other way round.

Example: Fourteen Apps And A Speed Score In The Forties

This is a constructed example, not a client engagement. It is assembled from the documented behaviour above to show how the pieces interact.

A store sells roughly two hundred products. The speed score sits in the low forties, and an agency has quoted for a performance project with a promise to lift the score.

The store has fourteen apps. Four of them inject storefront scripts. One is a review widget, one a currency converter, one a popup tool, one an abandoned cart nudge. The theme is three years old, carries jQuery, and someone pasted a tag manager into the theme file eighteen months ago that now fires six tags, two of which point at tools nobody uses any more.

The generic audit recommends enabling compression, serving next generation images and leveraging browser caching. All three are already handled by Shopify, so all three are unactionable.

The real list is shorter and duller. Remove the two dead tags. Establish whether the popup tool earns its weight, which is a commercial question for the owner rather than a technical one. Confirm whether the currency converter needs to load anywhere other than where a price is shown. Check whether removing any previously uninstalled app left code behind in the theme.

The reason to start there rather than with the theme is sequencing. A theme rebuild is the largest, slowest and most expensive intervention, and doing it first means rebuilding around whatever the apps are doing. Establish the app and script position first, then decide whether the theme still needs replacing.

That ordering is my judgement, not a Shopify recommendation.

Signs Your Store Has Real Speed Work To Do

Five signals, drawn from stores I have looked at. The more you recognise, the more likely there is real work here.

  1. A quote you have been sent recommends compression, next generation images or browser caching. Those are already done.
  2. You cannot say what each installed app costs you per month, or what it earns.
  3. Someone pasted a tag manager into the theme and nobody has audited what it fires since.
  4. Your speed score moved but your conversion rate did not.
  5. Your theme was installed more than two years ago and has been edited by more than one party.

Signal four is the one worth sitting with. If the score improved and revenue did not, the work was aimed at the measurement rather than the customer.

If you want a second read on which of these apply, The Free Shopify Store Audit covers exactly this ground.

Common Questions About Store Optimisation

Does Shopify Optimise Images Automatically?

Yes. Shopify's performance documentation states that images are automatically optimised and served in WebP format, alongside gzip compression, CSS and JavaScript minification, a Cloudflare CDN and browser caching set to a maximum one year duration. These are automatic and cannot be controlled by the merchant.

What Is A Good Shopify Speed Score?

Shopify requires themes submitted to its Theme Store to reach a minimum average Lighthouse performance score of 60 across the home, product and collection pages. That is a submission requirement rather than a store target, but it is a reasonable floor to expect from paid custom theme work.

How Does Shopify Weight Performance Across Page Types?

Shopify publishes a Lighthouse weighting for evaluating theme performance: product multiplied by 31, plus collection multiplied by 33, plus home multiplied by 13, all divided by 77. Collection and product pages together carry far more weight than the home page.

Do Apps Slow Down A Shopify Store?

They can. Shopify states that too many apps loading assets on your storefront can slow performance, and advises merchants to check that installed apps create enough value to offset potential performance losses. That is a commercial judgement about each app, not a blanket instruction to remove them.

What Are The Core Web Vitals Thresholds?

Google's good thresholds are a Largest Contentful Paint within 2.5 seconds, an Interaction to Next Paint of 200 milliseconds or less, and a Cumulative Layout Shift of 0.1 or less. They are assessed at the 75th percentile of page loads, segmented across mobile and desktop devices.

Free Download: Shopify Store Optimisation Checklist

Shopify Store Optimisation Checklist.

Check A Proposal Against What Shopify Already Does

If you have a performance proposal in front of you, the quickest thing you can do is check it against what Shopify already handles.

Send the store URL and the proposal, or just the store URL. The Shopify store audit is free, and this is the ground it covers: which recommendations are already handled by the platform, which apps are loading on pages they are not needed on, and what the theme is doing that it does not need to.

Request The Free Shopify Store Audit

Part of The Shopify Development Guide. See also What Already Broke In Checkout, Themes And Online Store 2.0, Building Complex Shopify Apps and Migration And Replatforming.