The first move is one question that tells you which branch you are on.
Start by checking whether sessions changed. If fewer people visited, start on the traffic side. If the same number visited and fewer bought, work the conversion side. Different causes, different fixes. There is a third possibility most people skip: the drop may not be real, because tracking or attribution broke rather than your store.
The question that narrows the problem
When revenue falls, the instinct is to look at the store. New photos, a different headline, maybe a discount. That is expensive guessing, because you change five things at once and never learn which one mattered.
Ask one question first: did the number of sessions change?
Compare like with like. The same weekday, over four weeks, not "this week versus last week," which mixes weekend and weekday patterns and produces noise that looks like a signal.
Your store is probably fine. Fewer people are arriving. Look at:
- Ad fatigue or a budget change. Check spend and frequency before creative quality.
- A ranking or algorithm shift. If Google moved your rankings overnight, your "conversion problem" is a traffic problem wearing a disguise.
- Channel mix moved. If a high-intent source shrank and a low-intent one grew, total sessions can look flat while quality collapses.
- Seasonality. Boring, real, and easy to confirm against the same month last year if you have it.
Same people arriving, fewer buying. Something changed inside the store, or in what visitors encounter there. This is the harder branch, and the rest of this chapter is mostly about it.
That shape usually comes from one of three things: bot traffic inflating your session count, two tracking scripts double-counting events, or attribution breaking somewhere upstream. Before you tear the store apart, confirm the drop is real.
First, confirm the drop is real
Skip this step and you can lose weeks. A documented example: one beauty brand saw what looked like a 40% drop in paid conversions. The cause was attribution failing, not customers disappearing.
The tell is oddly specific: a sudden spike in "direct" traffic with no matching drop in conversions elsewhere. Some of that is people typing your URL. The rest can be attribution quietly giving up and filing what it can no longer identify under direct.
The five-minute reality check
- Check Shopify's status page before you touch anything in the store
- Open a fresh incognito session, add to cart, reach checkout, and actually complete a purchase
- Confirm your order confirmation emails are still arriving
- Look for two analytics trackers firing at once, which double-counts events in GA4
- Compare Shopify's session count against GA4, expecting some gap, and treat a large one as a data question before a store problem
That last one has precedent. Merchants have reported Shopify session counts inflated relative to GA4, alongside bot traffic spikes.
When the problem cannot be reproduced
The hardest version is the one your customers can see and you cannot.
Store owners reported the same pattern starting on the same date: sessions rising while conversion rates fell, in several cases from around 2% to below 1%. The drop was concentrated at checkout, with more customers reaching the payment stage and fewer completing.
They tried free shipping, discounts, and site improvements. They tested across devices and browsers. Some hired developers to audit their code and apps. Some customers reported checkout failures the owners could not replicate. Conversion data temporarily disappeared from Shopify's own reporting.
Shopify Community, "Sessions up, sales down"
Read what those merchants had to work with. A number that went down. A checkout stage where it went down. And nothing else.
They could see that people were reaching payment and leaving. They could not see what those people encountered, on which device, in which country, with which payment method, at the moment they gave up. So they guessed: free shipping, discounts, developers, redesigns. All expensive, all shots in the dark.
Your analytics can describe the drop to four decimal places. It cannot tell you what caused it. The Dropshipping Playbook
The changes that never notify you
If sessions held steady and the drop is real, something changed. Most of the things that can change your revenue produce no notification at all.
Your Shopify admin will alert you about a failed payout or an app that needs permissions. It will not alert you about any of these:
| What changed | What you see | Notification? |
|---|---|---|
| A variant went out of stock | Product still listed, quietly unbuyable | None |
| Theme update reset collection sort | Different products now appear first | None |
| App auto-updated overnight | Layout or script behaviour shifted | None |
| Supplier raised their price | Margin fell, revenue looks unchanged | None |
| A payment method failing in one region | Checkout drop-off in that region only | None |
| Shipping rate change | Checkout total jumped, abandonment rose | None |
| A product fell out of a collection | It stopped being browsable | None |
| Mobile Add to Cart broke after an update | Desktop fine, mobile dead | None |
Most of these are invisible from the admin and visible only to a customer. That is what Level 03 is about.
Why the reports can't close this
Shopify Analytics is good at what it does. It reports outcomes: sessions, orders, conversion rate, revenue, all sliced by date and channel. Those are the numbers you need to see where the drop happened.
But every one of those numbers is an aggregate of things that already happened. The causal signal lives one level down, in what individual visitors did on the way to not buying:
- What they typed into your search box
- Which searches returned nothing at all
- Which filters they applied, and which combination returned an empty page
- Whether they opened the cart and then closed it
- Which product they viewed three times and never added
Shopify gives you more of that list than most people expect. Its behaviour reports show the terms shoppers searched for and the ones that came back empty, and the conversion breakdown shows how many sessions added to cart and how many reached checkout. Worth opening before you buy anything.
What those reports hand you is the total: which query failed across everyone, on a delay of up to 72 hours, with no route back to the session it happened in. The rest of the list, the filters, the cart opened and closed, the product viewed three times, is not in there. And anything nobody was recording last month is gone, so you diagnose forward from today.
Chapter 3.4 covers that properly. For now: start recording before you need it, because by the month you need it, it is already too late.
The 30-minute diagnostic
When a drop happens, work in this order. It goes cheapest-to-check first, which is not the same as most-likely.
- Status and reality check (5 min). Shopify status page, then a full incognito test purchase.
- Sessions, same weekday, four weeks (5 min). This tells you which branch of the tree you are on.
- Split by device (5 min). A mobile-only drop points somewhere different from one that hits both.
- Split by traffic source (5 min). If one channel fell and others held, look there before you look at the store.
- Split by country (5 min). Payment and shipping failures are frequently regional and invisible in the total.
- Check what changed in the last 14 days (5 min). Apps updated, theme edits, price changes, supplier changes, new shipping rules.
If you keep a written change log, step six takes thirty seconds instead of an hour of trying to remember. That habit costs nothing. Chapter 5.2 covers why.
Common questions
My sales dropped but my traffic is the same. Where do I start?
How big a drop is worth investigating?
Could my sales drop just be seasonality?
Why can't I reproduce the checkout problem my customers report?
One number pays for the rest
What a single order is worth decides what every other fix can afford. Chapter 4.1 is where that number moves.
Go to chapter 4.1