Shopify store slow during a sale? How to diagnose the slowdown

How an Agency Saved a Client $50,000 by Catching a Checkout Bug Early

Shopify store slow during a sale? How to diagnose the slowdown

Your sale went live, ads are spending and someone on the team messages: "the site feels slow." A Shopify store slow during a sale is stressful because every minute of guessing costs orders. A vague complaint gives you nothing to act on, so the first job is to turn "feels slow" into a specific problem on a specific page, compared against how that page behaved before the sale started.

This guide walks through a practical diagnosis: confirm what kind of slow you are dealing with, keep loading speed and layout stability apart, then work through four questions. What was the baseline? What changed? Which page is affected? What do you check next?

First, separate slow from broken

A lot of "the store is slow" reports turn out to be something else. A product page that never finishes loading the add-to-cart button is a broken flow, not a slow one. A cart drawer that spins forever because a discount app is not responding is an app problem. Before you open any speed tool, try the journey yourself on a phone: land on the sale collection, open a product, add it to cart, start checkout.

If everything is slow everywhere, including pages you have not touched, check the platform before blaming your theme. This guide on telling a Shopify incident apart from a store-level problem covers that quickly. If the platform is fine and only some pages drag, the cause is almost always on your side of the line, and you can find it.

Why a Shopify store slow during a sale usually traces back to changes

Flatlay of a business analytics report, keyboard, pen, and smartphone on a wooden desk.

Shopify hosts the storefront and handles the infrastructure. What you control is everything layered on top: the theme, the apps, the scripts and the content. Sale preparation tends to change all of those in the same week.

Think about what typically goes live for a promotion:

  • A new hero banner, often a large image or video exported in a hurry

  • A countdown timer or announcement bar app

  • A popup or email capture offer

  • Discount, bundle or upsell apps that rewrite prices or inject widgets

  • Extra tracking pixels for the campaign

Each of these can be fine on its own. Stacked together and shipped days before the sale, they are the usual suspects. That is why the diagnosis below starts with what changed, not with traffic.

Keep LCP and CLS apart (they point to different causes)

Two Core Web Vitals come up in almost every slowdown conversation, and they get blurred together constantly. Treat them as separate problems with separate fixes.

Slow LCP: the main content arrives late

Largest Contentful Paint (LCP) measures how long it takes for the biggest visible element, usually the hero image or the main product photo, to render. When shoppers say the page "takes forever to show up," that is an LCP problem.

During a sale, look at the new hero creative first. A full-resolution banner swapped in for the campaign, an autoplay video, or a hero section that waits on a script before displaying are common reasons LCP gets worse. Render-blocking scripts from newly installed apps can also hold back the main image even when the image itself is small.

High CLS: the page moves under the shopper's thumb

Cumulative Layout Shift (CLS) measures visual stability. It has nothing to do with how fast the page loads. A page can load quickly and still have terrible CLS if content jumps around after it appears.

Sale features are notorious for this. An announcement bar that injects itself at the top after the page renders pushes everything down. A discount app that replaces the regular price with the sale price a moment later shifts the product form. A popup that loads late and reflows the page does the same. Shoppers experience this as "I tapped the wrong button" or "the page is glitchy," and they often report it as slowness.

If you fix the hero image when the real issue is a late-loading banner, nothing improves. Name the metric before you change anything.

A four-step diagnosis: baseline, regression, affected page, next check

Person using a smartphone for contactless payment at a retail counter, highlighting cashless convenience.

1. Establish the baseline

"Slow" only means something compared to normal. Pull the numbers for the same pages from before the sale changes went live. Shopify's web performance report in the admin shows field data for LCP, CLS and INP over time, and lab tools like PageSpeed Insights let you test a specific URL. If you did not record anything before the sale, test a page you did not change (an older product page, the contact page) as a rough reference point.

2. Find the regression

Line up the timing. When did the metric move, and what shipped around then? Check the theme's version history, recently installed or updated apps, and any edits to the sale collection or homepage. If you can, preview the published theme against a duplicate without the sale changes and compare. One change at a time. Removing three apps at once tells you the problem is somewhere in those three apps, which is not much of an answer.

3. Identify the affected page

Site-wide averages hide the problem. A homepage with a heavy video can drag down your overall score while product pages are fine, or the reverse. Test the pages shoppers actually hit from the campaign: the landing page your ads point to, the sale collection, the top two or three products in the promotion, and the cart. Test on mobile, because that is where most sale traffic tends to land and where heavy assets hurt most. Write down which page, which metric and roughly how much worse it is than the baseline.

4. Decide the next check

Once you have made a fix, decide how you will confirm it held. Retest the same page with the same tool. Then check the journey around it: if you removed a discount app script to fix CLS, make sure discounted prices still display and the code still applies at checkout. Speed fixes made in a hurry break things just as often as the changes that caused the slowdown.

The sale-specific suspects worth checking first

When time is short, start where problems most often hide.

  • The hero banner file size and format, for LCP on the landing page

  • Announcement bars and countdown timers that render after the page, for CLS

  • Price-rewriting discount or bundle apps on product and collection pages, for CLS

  • Popups set to fire on load instead of after a delay

  • Third-party services that are themselves degraded, which can stall widgets that depend on them

That last one is easy to miss. If a reviews, search or upsell app is having a bad day, its widget may load slowly or not at all on your store, and none of your own changes caused it. Keeping an eye on the health of your app stack helps you rule this in or out in minutes instead of digging through theme code.

What monitoring can and cannot tell you

Be clear about what each tool does. Speed tools measure LCP and CLS. They do not simulate a flood of sale traffic, and nothing in this guide is a load test. What you can do is make sure that the pages and journeys that matter are checked continuously, so a regression shows up as an alert rather than a customer complaint.

This is where Shoptest fits. Automated test flows walk through real shopper journeys (collection filters, product image galleries, quick add to cart, cart editing, checkout) on a schedule, so when a sale change or a hurried speed fix breaks one of them, you find out early. Shopify and app monitoring flags when a service your storefront depends on is degraded. When a test fails, AI-assisted diagnosis explains what broke and suggests how to fix it, which saves time when everyone is watching the sales dashboard.

Pair that with the speed metrics you already have. Our guide on which page speed signals to monitor automatically goes deeper on what to track between sales. And for the next campaign, a sensible freeze on risky changes before peak days keeps a lot of these problems from shipping in the first place.

Turn this sale into next sale's baseline

Once the dust settles, write down what you found: the page, the metric, the change that caused it and the fix. Record current LCP and CLS for your campaign landing pages and top products so you have a real baseline next time. Then set up checks on the journeys that slowed or broke this time, so the next promotion starts with evidence instead of guesswork.

If you want those journeys verified automatically before and during your next sale, install Shoptest, set up test flows for your sale landing page, cart and checkout, and run them after every theme or app change.

Related articles

Keep every sale you earn.

Ensure your path to purchase works flawlessly.

Set up in 15 minutes, and let Shoptest do the rest.

Keep every sale you earn.

Ensure your path to purchase works flawlessly.

Set up in 15 minutes, and let Shoptest do the rest.

Keep every sale you earn.

Ensure your path to purchase works flawlessly.

Set up in 15 minutes, and let Shoptest do the rest.

Keep every sale you earn.

Ensure your path to purchase works flawlessly.

Set up in 15 minutes, and let Shoptest do the rest.