A slow Shopify store can make browsing products feel frustrating, particularly for customers shopping on their phones or using a slower connection.
It can also affect how easily shoppers move between collection pages, product pages and checkout. Even if your store looks great, unnecessary scripts, oversized images and excessive app code can make the experience feel sluggish.
The good news is that Shopify already handles much of the underlying infrastructure. Its platform includes hosting, caching, compression and a content delivery network. Most store-speed improvements therefore come from optimising what has been added on top of Shopify: your theme, images, apps and third-party code.
Here are the most useful places to start.
1. Measure Your Store Before Making Changes
Before removing apps or editing theme code, establish how the store currently performs.
You can review Shopify’s web performance information from the Themes area of your Shopify admin. Shopify reports on three Core Web Vitals:
-
Largest Contentful Paint, which measures loading performance
-
Interaction to Next Paint, which measures responsiveness
-
Cumulative Layout Shift, which measures visual stability
You can also test individual pages using Google PageSpeed Insights.
Avoid testing only your homepage. Check a representative selection of pages, including:
-
Your homepage
-
A collection page
-
A product page
-
An editorial or landing page
-
Any heavily customised template
Product and collection pages often include different applications, images and theme components, so their results may differ considerably from the homepage.
Performance tests naturally fluctuate. Run several tests and look for recurring problems rather than reacting to a single score.
2. Optimise Your Images
Large images are one of the most common causes of slow storefront pages.
High-resolution photography is important for eCommerce, but uploading an image at its original dimensions does not mean every visitor should download the full-sized file.
Shopify can generate appropriately sized versions of uploaded images. A well-built theme uses responsive image markup so the browser can choose a suitable size for the customer’s screen.
When reviewing store images:
-
Avoid uploading unnecessarily large files
-
Use appropriate image formats
-
Make sure the theme requests responsive image sizes
-
Avoid loading desktop-sized images on small mobile screens
-
Give images explicit dimensions to reduce unexpected layout movement
-
Compress images before uploading when further optimisation is needed
Pay particular attention to large hero banners, slideshow images and product photography.
Be Careful With Lazy Loading
Lazy loading delays an image until the visitor is close to scrolling it into view. This is useful for product grids, related products and content further down the page.
However, images visible immediately at the top of the page should not normally be lazy-loaded. Delaying the main hero or product image can make the page’s most important content appear later.
A sensible approach is to load the main visible image normally and lazy-load non-critical images further down the page.
3. Review Your Shopify Apps
Shopify apps can add useful features, but storefront apps may also add JavaScript, stylesheets, tracking requests and additional page elements.
Start by reviewing your installed apps and asking:
-
Is the app still being used?
-
Does it provide enough value to justify its performance cost?
-
Does another installed app provide similar functionality?
-
Could a lightweight theme feature replace it?
-
Did performance fall after the app was installed?
Removing an app from the Shopify admin does not always remove every historical theme modification, particularly if an older app directly edited theme files.
If an uninstalled app appears to have left code behind, check the theme carefully or ask a Shopify developer to review it. Do not delete unfamiliar code from a live theme without creating a backup and understanding what it does.
Where possible, use app blocks and theme app extensions. These provide a cleaner way for applications to integrate with modern Shopify themes.
4. Reduce Unnecessary JavaScript
JavaScript powers useful storefront features such as product galleries, filters, predictive search and interactive product options.
The problem begins when every page loads large scripts for features that are not present or needed.
Common examples include:
-
Sliders loading on pages without a slider
-
Product scripts loading on ordinary content pages
-
Large third-party libraries used for one small interaction
-
Multiple scripts providing similar functionality
-
Code that blocks the page from rendering
-
Applications loading scripts across the entire store unnecessarily
Where practical, straightforward interactions should use HTML and CSS. JavaScript can then be added where it provides a genuine improvement.
Non-critical scripts can also be deferred or loaded only when a customer interacts with the relevant component. This reduces the amount of work the browser must complete during the initial page load.
5. Audit Third-Party Tracking Code
Marketing and analytics scripts can accumulate over time.
A store might contain analytics, advertising pixels, heatmaps, affiliate tracking, chat tools, review widgets and several tags managed through a tag manager.
Each tool may have a legitimate purpose, but together they can create a significant performance cost.
Review your tracking setup and remove:
-
Old advertising pixels
-
Duplicate analytics installations
-
Tags for campaigns that have finished
-
Tools nobody currently uses
-
Scripts installed manually and through an app at the same time
Do not remove business-critical tracking without checking how it is used. The objective is to remove duplication and low-value code, not to lose the data required to operate the business.
6. Keep Your Shopify Theme Lean
Your theme has a major influence on storefront performance.
An up-to-date Shopify theme such as Dawn or one of Shopify’s Horizon-family themes provides a sensible starting point. However, even a fast theme can become slow after extensive customisation, app installations and added scripts.
Look for:
-
Sections containing more features than the page needs
-
Large JavaScript or CSS files loaded globally
-
Old code from previous redesigns
-
Duplicate libraries
-
Too many animated elements
-
Heavy page-transition effects
-
Excessive sections on individual templates
-
Third-party assets loaded from avoidable external sources
If you are rebuilding a store, begin with a clean copy of the theme and add features deliberately. Avoid copying years of accumulated code into the new version without reviewing it first.
7. Load Code Only Where It Is Needed
A common Shopify performance problem is loading every stylesheet and script on every page.
For example, code for a complex product gallery may only be required on product pages. A store-locator script may only be needed on one page. A promotional carousel may only appear on the homepage.
Loading these resources everywhere creates unnecessary downloads and browser work.
A more efficient theme architecture keeps components modular and loads their supporting code only when the relevant section or feature is present.
This requires more care during development, but it produces a theme that is easier to maintain and less likely to become bloated.
8. Use Shopify’s CDN for Theme Assets
Shopify provides a global content delivery network for storefront assets.
Where practical, theme images, stylesheets and JavaScript should be served through Shopify rather than from unnecessary external hosts. This lets the store benefit from Shopify’s asset delivery, caching and compression.
External resources are sometimes unavoidable, particularly when using third-party services. However, hosting ordinary theme assets elsewhere can introduce additional connections and delays without offering a meaningful benefit.
9. Optimise Fonts
Custom fonts can make a brand distinctive, but every additional font file and weight creates another resource for the browser to download.
A site may load regular, medium, semibold, bold, italic and several decorative font variants even when only two or three are actually used.
To reduce the impact:
-
Use only the font weights the design requires
-
Remove unused font files
-
Avoid loading multiple font families without a clear reason
-
Consider a system font when maximum performance is the priority
-
Preload only essential above-the-fold fonts
The goal is not necessarily to remove custom typography. It is to make sure the visual benefit justifies the performance cost.
10. Avoid Excessive Homepage Sections
Shopify’s theme editor makes it easy to keep adding banners, carousels, videos, product grids and promotional sections to the homepage.
Eventually, the page can become much larger than it needs to be.
Review each homepage section and ask whether it helps a customer:
-
Understand the brand
-
Find a suitable product
-
Trust the business
-
Make a purchasing decision
-
Move towards checkout
If a section does none of these things, it may not need to be there.
A focused homepage is often easier to navigate, faster to load and more effective than one containing every available theme feature.
11. Test Changes on Mobile
A store that feels fast on a modern desktop computer and office connection may still feel slow on a mobile device.
Mobile shoppers also have less screen space, making layout shifts and delayed interactions more noticeable.
Test important journeys on a real phone where possible:
-
Open the homepage.
-
Navigate to a collection.
-
Filter or sort products.
-
Open a product.
-
Change a variant.
-
Add the item to the cart.
-
Open the cart or cart drawer.
Look beyond the performance score. Check whether buttons respond promptly, images move after loading, menus feel smooth and important content appears in a sensible order.
12. Prioritise Real Improvements Over a Perfect Score
A perfect performance score is not always realistic, and the highest possible score should not come at the expense of useful store functionality.
The objective is to create a fast and stable shopping experience while retaining features that genuinely support the business.
Prioritise problems that affect customers, such as:
-
A main image that takes too long to appear
-
Buttons that respond slowly
-
Content that jumps while the page loads
-
A menu that feels unresponsive
-
Product pages burdened by unnecessary scripts
-
Mobile pages that download oversized images
Use test results to identify problems, but make decisions based on customer experience and commercial value.
A Practical Shopify Speed Checklist
Start with these actions:
-
Review Shopify’s web performance reports
-
Test the homepage, collection and product templates
-
Optimise oversized images
-
Correct unnecessary lazy loading
-
Audit storefront applications
-
Remove redundant tracking scripts
-
Reduce global JavaScript
-
Load component code only when required
-
Remove unused font weights
-
Simplify overcrowded page templates
-
Test purchasing journeys on mobile
-
Measure performance again after each meaningful change
Making several focused improvements is usually safer and more useful than installing another application that promises to fix everything automatically.