Shopify speed optimization is mostly removing things: apps you don't use, the code they leave behind, tracking scripts nobody reads, and a main image that is far larger than the screen showing it. Shopify hosts every store and serves theme files from its own CDN, so when a store is slow the cause is usually something added to it, and the fix list below puts the biggest of those first.
- 1Measure firstNote LCP, INP and CLS on mobile from Shopify's Web Performance report and PageSpeed Insights for your home, a collection and your best-selling product.
- 2Remove apps you don't needUninstall apps that don't earn their place, then remove the code they leave behind in the theme.
- 3Cut third-party scriptsAudit your tag manager and tracking pixels, remove what nobody uses, and defer what can wait.
- 4Fix the main imageSize the image at the top of each template to its display size, load it eagerly with high priority, and lazy-load only images further down.
- 5Trim the themeRemove sliders, autoplay video, animation and sections nobody uses, or move to an up-to-date theme.
- 6Simplify fontsUse a system font or fewer web font files, served from Shopify's CDN, with a fallback that doesn't shift the layout.
- 7Test and check again in 30 daysPlace a test order on a phone after each change, and compare the real-user report a month later.
Work down the list in order and measure after each step. Most stores never need to get past step 4, and the later steps carry more risk of breaking something.
What slows a Shopify store
Shopify's overview of web performance lists what affects a store's speed: apps, theme code, third-party and analytics scripts, and the number and size of images and videos. It adds that each feature you add can affect your Core Web Vitals. In practice, five things cause most slow pages.
| Cause | How it slows the page | Metric it hurts most |
|---|---|---|
| Apps | Many add scripts and styles to every page, including pages that don't use them | INP and LCP |
| Theme code | Sliders, autoplay video, animation and long templates with many sections | LCP and CLS |
| Images | A banner or product photo far bigger than it displays, or lazy-loaded when it is the first thing seen | LCP |
| Third-party scripts | Pixels, chat widgets, review widgets and tag manager tags that run JavaScript on load | INP |
| Fonts | Several web font files that must download before text renders, then swap and shift the layout | LCP and CLS |
Two of these catch store owners out. First, Shopify says plainly that uninstalling an app doesn't automatically remove its code from your theme. A store that has tried a dozen apps over the years can still be loading pieces of them. Second, Shopify's note on interactivity is blunt: if INP is poor, "most likely you have too much JavaScript in your store," whether it comes from the theme, the apps or the tag manager.
How to measure it
Measure before you change anything, so you know which step made the difference. Use two tools, because they measure different things.
Shopify's Web Performance dashboard shows what real shoppers experienced. You'll find a summary on the Online Store (Themes) page and the full reports under Analytics > Reports, and you need the Reports staff permission to see them. According to Shopify's help page on the dashboard, it ranks LCP, INP and CLS as Good, Moderate or Poor at the 75th percentile, covers the past 30 days by default, can lag by up to 36 hours and keeps only the last 90 days. It shows nothing while the store is password protected. The over-time reports mark app installs, theme updates and new code as numbered lines on the graph, which is the quickest way to see what made a store slower.
PageSpeed Insights from Google tests a single address. It shows two kinds of result, as its documentation explains: field data from the Chrome User Experience Report over the previous 28 days, and a lab test run by Lighthouse. The page passes the Core Web Vitals assessment when the 75th percentile of all three metrics is Good. The lab test also gives a performance score, where 90 or above is good, 50 to 89 needs improvement and under 50 is poor.
Use the field data to decide whether there is a problem, and the lab test to find what causes it. Lab scores move from run to run and are taken on a simulated phone, so don't chase a single number. Test on mobile, because that's where the problems show, and test three pages: the home page, one busy collection and your best-selling product.
If your store has too little traffic for field data, the lab test is all you have, and it is still useful for finding heavy scripts and images. For reference, Shopify requires themes in its Theme Store to have a minimum average Lighthouse performance score of 60 across the home, product and collection pages.
The fix list, in priority order
1. Measure first
Write down LCP, INP and CLS on mobile for your three test pages, from both tools. Note the date. Without this, you can't tell a fix from noise.
2. Remove apps you don't need
List every installed app and ask what it earns. Shopify's own advice is to remove any that aren't essential for sales. Watch for two apps doing the same job, such as two review apps or two popup apps, and for apps installed for a sale that ended months ago. After uninstalling, check the theme for leftover code: search the theme files for the app's name, and ask the developer for removal steps if you aren't sure. Do this in a copy of the theme, not the live one.
Removing apps also saves money, which makes it the easiest step to justify.
| Apps installed (example) | 14 |
| Apps removed as unused or duplicated (example) | 5 |
| Their monthly fees (example: $9.99 + $14 + $19 + $29 + $0) | $71.99 |
| Saved a year | $863.88 |
3. Cut third-party scripts
Open your tag manager and list every tag: analytics, ad pixels, heatmaps, chat, affiliate tracking. Shopify suggests you audit it and remove unused or low-value tags. For the ones you keep, Shopify's developer guidance is to use the defer attribute on scripts that aren't needed to show the page, and to remove or defer app scripts that block the page from being read. Ask whoever installed each tag whether it still feeds a report someone reads. If nobody can say, remove it and see who notices.
4. Fix the main image
The image at the top of a page is often what LCP measures. Shopify's guidance is to size images to match their display size and, for theme code, to load the images visible on first screen eagerly, never lazy-load the LCP image, give it fetchpriority="high", and set width and height on every image so the layout doesn't jump. Lazy loading belongs to images further down the page. Shopify already compresses JPGs and often serves WebP, so manual compression matters less than uploading a sensible size in the first place.
An image app can help with a large catalog. For example, Tiny SEO Speed Image Optimizer lists a free plan for 50 images a month and paid plans of $14, $23 and $49 a month. Check what any app adds to the page, because a speed app that injects its own script can cancel out what it saves.
5. Trim the theme
Sliders, autoplay video and animation are expensive on a phone, and Shopify notes that animations can slow down pages and that templates with too many sections do too. If your theme is old or heavily edited, Shopify's Horizon and Online Store 2.0 themes are free and built for performance. A theme change is a bigger job than the steps above, so test it in a copy before publishing.
6. Simplify fonts
Each font weight is another file to download before text can show. Google's font guidance puts it simply: the fastest font to deliver is one that isn't requested at all. Shopify suggests system fonts, or uploading web fonts to the Shopify CDN rather than loading them from another domain, and using size-adjust so the fallback font doesn't shift the layout when the web font arrives. Cutting four weights to two is often enough.
7. Test, then check again in 30 days
After each change, place a test order on a phone, since a removed script can break a cart drawer or a checkout extension. Then wait. Field data covers the previous 28 to 30 days, so the real-user numbers take a month to show your work in full. Compare your notes from step 1 with the same pages a month later.
What it costs: an agency or doing it yourself
Some agencies publish fixed prices for speed work. These are listed on each company's own page, checked on 10 November 2026, and quoted for comparison, not as a recommendation.
| Option | Published price | What the listing says |
|---|---|---|
| PageSpeed Matters | Starter $500, Intermediate $1,250, Pro $2,500, one-time | Tiers by store size and custom code; a "Pass Core Web Vitals" add-on is +$750, +$1,250 or +$2,500; 10 to 14 days; rush +25% |
| Ecomback | Essential $499, one-time; Essential + Core Web Vitals listed at $899 | Packages written as lab score targets for desktop and mobile |
| Doing it yourself | $0 to $49 a month for an image app | Shopify's dashboard and Google's tools cost nothing to use; the cost is your time |
| Store Care (ours) | $299 or $699 a month | Essentials includes a monthly speed report; Growth adds one speed fix a month |
When you compare quotes, notice what is promised. A lab score target is easy to write into a package and easy to hit on the day, but it is the field data from real shoppers that Google's Core Web Vitals assessment uses. Ask a provider which numbers they will report, from which tool, and over what period, and ask what happens if an app update undoes the work a month later.
| Tiny SEO Speed Image Optimizer, Beginner plan | $14 |
| Your time: 8 hours at $50 an hour (example) | $400 |
| First month | $414 |
| Compare: PageSpeed Matters Starter, one-time | $500 |
| Compare: PageSpeed Matters Intermediate, one-time | $1,250 |
Doing it yourself makes sense for steps 1 to 4 on most stores, since they need judgment more than code. Steps 5 and 6, and leftover app code, are where a developer earns the fee, because a mistake there can break the theme or the checkout.
When to bring someone in
Hire help if your theme has custom code you didn't write, if INP is still poor after you've removed apps and tags, or if a change in a copy of the theme breaks something you can't trace. Ask any developer to work in a copy of the theme, test the path to a paid order on a phone, and hand over every change they make.
Speed also affects how search engines see the store. If search is the bigger problem, work through the Shopify SEO checklist first, as speed is one of its eight steps. If you'd rather have it done, see how our Shopify development team fixes theme and script weight in the code rather than with another app, or our free store audit, which tells you what is slowing your store whether or not you hire us.
