Why is my Shopify store slow?

Is your Shopify store slow? Learn the usual causes, how to measure speed with PageSpeed Insights and real-user data, and which fixes are quick or deeper.

Open a support ticket

A slow store is frustrating for you and for your customers. Pages take a while to appear, images load in pieces, buttons do not respond straight away, or the layout jumps around while the page is still loading.

Because Shopify is a hosted platform, you do not manage the servers yourself. Shopify takes care of hosting, the content delivery network and much of the infrastructure. That means the cause of a slow store is usually not "the server" but what is loaded on top of it:

  • apps and the scripts they add
  • images and videos
  • the theme and its features
  • tracking and marketing tools
  • custom code added over time

The good news is that most of these are within your control. The less good news is that speed is rarely fixed by a single change. The most useful first step is to measure properly, so that you know what is actually slow before changing anything.

This guide explains the common causes, how to measure speed in a way that reflects real customers, which improvements are usually quick and which ones need deeper work.

What does "slow" actually mean?

Different people mean different things by a slow store, and each points to a different cause.

The page takes a long time to appear

The screen stays blank or mostly empty for a while. This often relates to large images at the top of the page, heavy theme sections or scripts that must load before the content.

The page appears, but does not respond

You can see the page, but tapping the menu, a filter or the add to cart button does nothing for a moment. This is usually caused by too much JavaScript running in the browser, often from apps and tracking tools.

The layout jumps while loading

Text moves down when an image or banner appears, or a button shifts just as you try to tap it. This is often caused by images without set dimensions, late loading banners, pop-ups or app widgets that insert themselves into the page.

Only some pages are slow

If only product pages, large collections or search results are slow, the cause is likely specific to those templates: many product images, filters, reviews widgets or recommendation apps.

Knowing which of these you are seeing makes the investigation much faster.

What are Core Web Vitals?

Core Web Vitals are a set of measurements Google uses to describe the experience of loading and using a page. There are three:

  • Largest Contentful Paint (LCP) measures how quickly the main content, often the hero image or main product image, appears.
  • Interaction to Next Paint (INP) measures how quickly the page responds when someone taps or clicks.
  • Cumulative Layout Shift (CLS) measures how much the layout moves unexpectedly while loading.

Google publishes target values for each of these and classifies results as good, needing improvement or poor. Tools such as PageSpeed Insights show you which category your pages fall into.

Core Web Vitals are not the only thing that matters for a store, but they are a useful common language. They also reflect real problems customers notice: waiting, unresponsive buttons and jumping layouts.

How do I measure my store's speed?

There are two kinds of data, and it is important not to confuse them.

Lab data: a test run by a tool

When you run a page through PageSpeed Insights, it loads the page in a simulated environment and produces a score and a list of suggestions. This is called lab data.

Lab data is useful for:

  • spotting specific problems, such as oversized images or heavy scripts
  • comparing before and after a change
  • testing pages that do not yet have much traffic

But the score can vary from one run to the next, and it does not necessarily reflect what your customers experience on their own devices and connections.

Field data: what real visitors experience

If your store has enough traffic, PageSpeed Insights also shows data collected from real Chrome users over recent weeks. This appears at the top of the report and shows Core Web Vitals for that page or the whole site.

Shopify also offers a web performance report in the admin analytics, based on real visits to your store. It shows how your Core Web Vitals change over time and can help you link changes in speed to events such as installing an app or changing the theme.

Field data is closer to the truth about your customers' experience. When lab and field data disagree, give more weight to the field data.

Test the right pages

Do not test only the homepage. Customers often arrive directly on product and collection pages from search or ads. Test at least:

  • the homepage
  • a popular collection page
  • a popular product page
  • the cart

Test on mobile as well as desktop. Most stores receive a large share of their traffic from phones, which usually have slower processors and connections.

What usually makes a Shopify store slow?

Too many apps and scripts

Each app that adds something to the storefront may load its own JavaScript, stylesheets, fonts or requests to external servers. One app rarely makes a big difference. Ten or twenty together can.

Common contributors include:

  • review widgets
  • pop-ups and email capture forms
  • live chat
  • upsell and cross-sell tools
  • currency converters and translation tools
  • product recommendation widgets
  • loyalty and referral programmes

Apps you have uninstalled can also leave code behind in the theme, which may still try to load. See How can I tell if a Shopify app is causing a problem? for how to find it.

Large images and videos

Shopify automatically serves images through its content delivery network and can deliver resized versions, but only if the theme requests sensible sizes. Problems often come from:

  • very large original files uploaded for banners and slideshows
  • hero videos that start playing automatically
  • slideshows with many full width images
  • images inserted through rich text or page builders without size controls
  • GIF animations used where a short video or still image would do

The image at the top of the page matters most, because it is usually what Largest Contentful Paint measures.

A heavy or heavily customized theme

Some themes include many features: mega menus, animations, quick view, multiple sliders, sticky elements. Each feature adds code. Customizations added over the years by different developers can also pile up, sometimes duplicating features or loading libraries the theme already has.

An older theme may not use the more efficient approaches available in current themes.

Third-party tracking

Marketing and analytics tools are valuable, but each one adds work for the browser. Stores often have:

  • several analytics tools collecting similar data
  • advertising pixels from multiple platforms
  • heatmap and session recording tools
  • tag manager containers that load further tags
  • old tracking codes from campaigns that have ended

These can affect responsiveness in particular, because they run JavaScript while the customer is trying to use the page.

Fonts and external resources

Custom fonts, icon libraries and embedded content such as social media feeds or maps all add requests. Loading several font families and weights adds up quickly.

Large collections and complex filters

Collection pages that show many products, each with several images, swatches and badges, can become heavy. Filters, infinite scroll and quick view features add more.

What are the quick wins?

These changes are often low risk and can make a visible difference. Make one change at a time and measure again.

  • Remove apps you no longer use. Check whether they hold data you need first.
  • Switch off app embeds you do not need on every page. Some can be limited or removed from the theme.
  • Compress and resize large images before uploading, especially banners and slideshow images.
  • Replace autoplay hero videos with a still image, or check that the video is short and optimized.
  • Reduce the number of slides in homepage slideshows.
  • Review tracking tools and remove duplicates or old campaign pixels, after confirming with whoever manages marketing.
  • Limit font families and weights in the theme settings.
  • Reduce the number of products per page on very heavy collection pages.

Quick wins are worth doing, but they will not solve every case. If the store is still slow afterwards, it usually needs a closer look at the code.

What needs deeper work?

Some improvements require a developer and careful testing:

  • removing leftover code from uninstalled apps
  • optimizing how the theme loads scripts and stylesheets
  • deferring or delaying non-essential scripts
  • fixing layout shifts caused by images, banners or app widgets
  • reviewing custom Liquid code that does unnecessary work
  • consolidating features handled by several overlapping apps
  • moving to a more modern theme, which is a project in its own right
  • reviewing tracking setup so that tags load more efficiently

Deeper work should always happen on a duplicate theme, with before and after measurements, and with a full test of the cart and checkout before publishing.

What should I avoid?

  • Chasing a perfect PageSpeed score. The score is a guide, not the goal. A store that customers find fast and easy to use matters more.
  • Installing a speed app without understanding what it does. Some change how scripts load in ways that can break other apps or tracking.
  • Removing tracking without asking. Marketing reports and ad campaigns may depend on it.
  • Changing many things at once. You will not know which change helped or which one broke something.
  • Editing the live theme. Always work on a duplicate first.
  • Judging from a single test. Run tests several times and look at field data over time.

When should I ask for support?

Consider involving a developer when:

  • the store is still slow after removing unused apps and fixing large images
  • field data shows poor Core Web Vitals across many pages
  • you suspect leftover app code or heavy custom code
  • speed problems appeared after a theme update or a new app
  • the add to cart button or menus feel slow to respond
  • you are considering a theme change mainly for speed
  • conversion rates have dropped and speed may be a factor

What information should I collect?

Helpful information includes:

  • the URLs of the pages that feel slow
  • PageSpeed Insights results for those pages, ideally saved as links or screenshots
  • the web performance report from Shopify analytics, if available
  • a list of installed apps and recent changes
  • the theme name and version
  • which tracking tools are in use and who manages them
  • when the store started to feel slower, if you know

How D4Hub can help

Improving speed is about finding the real bottlenecks and fixing them without breaking features or tracking the business depends on.

Depending on the store, D4Hub can help with:

  • measuring speed with both lab and real-user data
  • identifying which apps, scripts and images have the most impact
  • removing leftover code from uninstalled apps
  • optimizing how the theme loads images, scripts and fonts
  • fixing layout shifts on key pages
  • reviewing tracking and tag setup with your marketing team
  • testing changes on a duplicate theme before publishing
  • checking cart and checkout after every change
  • advising on whether a theme change is worth it

You can ask for support at any stage, from a quick review of your PageSpeed results to a full performance project.

Open a support ticket

For hands-on users: measuring and testing speed

These steps are for users comfortable with the Shopify theme editor and browser developer tools. Make changes only on a duplicate theme and keep the live theme untouched until you have tested.

Record a baseline

Before changing anything, run PageSpeed Insights on your homepage, a collection page and a product page. Save the report links or screenshots, noting the date. Check both the mobile and desktop results, and look at the field data section at the top if it is available.

If your admin shows a web performance report in Analytics, note the current Core Web Vitals values and the trend over the past weeks.

Create a duplicate theme for testing

In the Shopify admin, go to Online Store > Themes, open the actions menu next to the live theme and choose Duplicate. Name the copy clearly, for example "speed test" and the date. Use the preview of this copy for every test.

Test the effect of app embeds

Open the duplicate in the theme editor with Customize, then open the App embeds panel. Switch off one embed at a time, preview the duplicate and run a lab test on the same page. Compare against your baseline.

Lab results on a preview are only indicative, but a large change after switching off one embed is a clear sign of where to look.

Check the network and performance panels

Open a product page, open your browser's developer tools and look at the Network tab with the cache disabled. Sort by size and look for:

  • very large images
  • videos loading at the top of the page
  • scripts from domains you do not recognize
  • requests to apps you have uninstalled

The Performance panel can show long tasks that block the page while it loads. Script names in those tasks often point to a specific app or tracking tool.

Check the main image

The image at the top of a page often determines Largest Contentful Paint. PageSpeed Insights usually identifies which element was measured. Check that this image is not oversized and that it is not set to load lazily, since the first visible image should normally load straight away.

Look for leftover app code

On the duplicate, use Edit code and look in layout/theme.liquid and the Snippets folder for references to apps you no longer use. Comment out any you find rather than deleting them, then preview and test the store, including cart and checkout.

Measure again

After each change, run the same tests on the same pages. Keep a simple log of what you changed and what happened. Only apply changes to the live theme once you are confident they help and do not break anything.

D4Hub can help you interpret the reports and prioritize the changes worth making.

FAQFrequently asked questions

Shopify's hosting and content delivery network are managed by Shopify and are generally not the bottleneck. Most speed problems come from apps, images, themes, tracking and custom code added to the store.

Lab tests are affected by network conditions, test location and the exact content loaded at the time. Small differences between runs are normal. Look for consistent patterns and give more weight to real-user field data where available.

No. The score is a diagnostic tool. What matters is that real customers can see and use your pages quickly, which is better reflected in Core Web Vitals field data and in how the store feels on a typical phone.

Not necessarily. Some apps help with specific issues such as image compression. Others change how scripts load, which can interfere with other apps or tracking. Understand what an app changes before installing it, and test it on a duplicate theme first.

A modern theme can help, but changing theme is a project that involves rebuilding layouts, reinstalling app blocks and testing every feature. It is worth doing the measurements and quick wins first, so you know how much of the slowness actually comes from the theme.

Speed is one of many factors in how customers experience a store, and Core Web Vitals are part of how Google evaluates page experience. It is hard to predict the effect of a specific improvement, so the best approach is to measure before and after and watch your own conversion data.