# Sales dropped overnight? Check these five things before you panic.

> A short order of checks for a sudden sales drop: tracking, checkout, stock, traffic and demand, before you change a single ad or price.

- Author: Achour Khattallah
- Category: Growth
- Published: 2026-11-07
- Tags: ecommerce, analytics, troubleshooting
- Canonical: https://www.achour.me/blog/sales-drop-checks

---

When sales fall off a cliff from one day to the next, it's rarely because customers changed their minds overnight. Usually something broke, or someone changed something. So the first job isn't to fix sales. It's to find out which part of the store stopped working.

I'd go through five checks, always in the same order: the data, the checkout, the products, the traffic, and only then demand. Each one is quicker than the next, and each one rules out a whole class of problems. Most of the time you'll find the cause before you reach the last one.

<Callout title="How I wrote this">
  This is a way of thinking through a sales drop, not a case study or a summary
  of research. The shop in it is made up, and so are its numbers.
</Callout>

<Figure
  src="/blog/sales-drop-checks/five-checks.webp"
  alt="Five checks in order. 1, the data: are orders down in the admin, or only in analytics? 2, the checkout: can a stranger on a phone still pay? 3, the products: is a best seller sold out, hidden or repriced? 4, the traffic: did one channel fall while the others held? 5, demand: only now, are fewer people looking?"
  caption="Work down the list. Each check is quicker than the one after it."
  width={1800}
  height={1260}
/>

## Before anything: compare the right days

A drop only means something if you compare it to the right day. Tuesday against Saturday tells you nothing. Tuesday against the last four Tuesdays tells you a lot.

Small numbers also swing more than people expect. Take the linen shirt shop from my [CPC post](/blog/cpc-break-even). Say it averages about ten orders a day. A day with six orders will happen every so often with no cause at all, just chance. Two orders on a day that should have ten is a different story.

<Stats
  items={[
    { value: "10", label: "Orders on a usual Tuesday" },
    { value: "6", label: "A slow Tuesday, nothing wrong" },
    { value: "2", label: "Today. Time to check" },
  ]}
/>

So before you open a single report, write down two numbers: today's orders, and what you'd normally expect for this weekday. If today sits inside the usual range, give it another day. If it's far outside, start checking.

## 1. Is it real, or is it the dashboard?

Open your store admin and count the orders there. Not in Google Analytics, not in the ads platform. The order list is the only number that's actually money.

If the admin shows a normal day and your analytics shows a crash, you don't have a sales problem. You have a tracking problem. That's annoying, but it's a much better problem to have. The usual causes are dull ones:

- A theme update dropped the tracking code
- A new cookie banner is blocking analytics until people accept it
- An app you removed was the thing sending the data
- Someone edited the checkout and the purchase event stopped firing

This matters for more than reporting. If your ad platform stops seeing conversions, it starts making worse decisions about who to show ads to. A broken pixel can turn into a real sales drop a week later, so fix it quickly even though no money was lost today.

If the admin is down too, the drop is real. Keep going.

## 2. Can people still pay?

This is the easiest check to skip, and it's the one I'd do first if I could only do one. Take your phone, switch off Wi-Fi, open your store in a private tab and buy something. Use a real card and refund yourself afterwards.

Don't do it logged in as the admin on your laptop, because that's the one setup your customers never use. Walk through every step the way a stranger would. Watch for:

- **Shipping.** Does a normal address get a rate? An edited shipping zone can leave a whole country with "no shipping available", and the shopper just leaves.
- **Payment.** Does the card actually go through? Check your payment provider's status page while you're at it.
- **Discount codes.** If you're running a promotion, does the code still work? An expired code in an email that's still going out causes a lot of quiet abandoned carts.
- **Anything an app adds.** Upsell pop-ups, delivery date pickers and wishlist buttons all sit on the path to checkout. One bad update can cover a button or slow the page to a crawl.

Your analytics can point you here too. If add-to-carts look normal but completed checkouts have dropped, the problem is almost certainly between the cart and the thank-you page. And look at the support inbox. One "I tried to pay but it didn't work" email usually means many more people who didn't bother writing.

## 3. Did a product go out of stock or change?

Plenty of stores make most of their money from a handful of products. If one of those quietly changed, the whole store feels it.

Pull up your five best sellers from the last month and open each product page, as a customer would. You're looking for things like:

- The best seller, or its most popular size, is sold out
- A sale ended and the price jumped back up
- A product got set to draft or hidden by mistake
- A collection was re-sorted and the best seller fell off the first screen
- A new photo or description went up that's worse than the old one

For the shirt shop, "size M sold out" could easily wipe out a third of a day's orders. Nothing on the site is broken, and every report looks fine. You only spot it by looking at the page.

## 4. Which traffic source moved?

Now open your analytics and split visits and orders by channel: paid search, organic search, email, social, direct. You're looking for one line that fell while the others stayed put.

Here's what that looks like for the shirt shop. Every channel is close to a normal Tuesday except one:

<BarChart
  title="Visits today, as a share of a usual Tuesday"
  suffix="%"
  data={[
    { label: "Email", value: 104 },
    { label: "Direct", value: 98 },
    { label: "Organic search", value: 95 },
    { label: "Social", value: 91 },
    { label: "Paid search", value: 6, highlight: true },
  ]}
  note="Made-up numbers for the example shop. Paid search is the one that fell, so start there."
/>

If one channel dropped, the problem lives in that channel, and each one has its own usual suspects:

- **Google Ads.** The payment card failed and ads stopped. The daily budget runs out by 10am. An ad or a product in Merchant Center got disapproved.
- **Organic search.** A theme change added a noindex tag, or left the storefront password on. Search Console's page indexing report will show it.
- **Email.** An automated flow got paused, or a campaign went out at 3am to the wrong list.
- **Social.** One post or one creator was driving most of the sales, and that post has stopped being shown.

If every channel fell at once by about the same amount, the cause is probably on your site rather than in any one channel. Go back to check 2, and check that the site loads at a normal speed on a phone.

## 5. Only then: is demand down?

If the data is right, checkout works, the products are fine and no single channel broke, then it may really be that fewer people want to buy today. That does happen. It's just less common than people assume when they see a bad day.

The pattern looks like this: fewer visitors across every channel, but the visitors you do get buy at about the usual rate. Some likely reasons:

- A competitor is running a big sale. In early November, everyone with an early Black Friday deal is pulling from the same shoppers.
- The season is turning. Linen shirts in November are a harder sell than linen shirts in June.
- Something outside your control, like the weather, a holiday or the news, is keeping people busy.

You can get a rough feel for it in [Google Trends](https://trends.google.com/) by searching your category and comparing this week to the same week last year. It won't tell you much about one small store, but it will tell you if the whole category is quiet.

If it is demand, the fix is a business decision, not a repair, and that's the moment to think about offers, ads or new products. Not before.

## What not to do on day one

Don't change five things at once. When sales drop, the urge is to raise ad bids, start a discount, swap the homepage banner and email the whole list, all before lunch. If sales come back, you'll have no idea which change did it, or whether they'd have come back on their own.

Change one thing. Write down what you changed and when. Give it long enough to see a result, then decide on the next step.

<Callout type="tip" title="Turning on a discount isn't a diagnosis">
  If checkout is broken, a 20% discount just means fewer people fail to pay at a
  lower price. Find the cause first.
</Callout>

## Keep a one-page change log

Most of the drops I've described start with a change somebody made: a theme update, a new app, a price edit, a shipping tweak. The fastest way to find the cause is a list of what changed and when. That list is almost never kept.

It doesn't need to be clever. A shared note or a spreadsheet with two columns does the job. Add a third for who made the change if more than one person runs the store:

| Date | What changed |
|---|---|
| Nov&nbsp;3 | Theme updated to the latest version |
| Nov&nbsp;4 | Delivery date app installed |
| Nov&nbsp;5 | 15% autumn sale ended |
| Nov&nbsp;6 | Orders down by half |

With that open, the drop on November 6 stops being a mystery and becomes a short list of three things to test. Without it, you're guessing.

## The short version

- [ ] Compare today to the same weekday over the last few weeks
- [ ] Count orders in the store admin, not in analytics
- [ ] Buy something yourself, on a phone, on mobile data
- [ ] Check your five best sellers' pages, stock and prices
- [ ] Split traffic by channel and find the one that moved
- [ ] Only then look at demand, and change one thing at a time

Print it, pin it somewhere, and next time a bad morning arrives, you'll have something to do other than refresh the dashboard.
