FFastero

Connect any database. Ask in plain English.

Try free
Back to blog

Blog article

Are You Advertising Sold-Out Products? How to Find Shopify Spend Leaks

Your store looks fine, but a product you're driving clicks to might be sold out — every click landing on a page nobody can buy from. Here's why these Shopify spend leaks stay invisible, and a free scanner that finds them in seconds.

Fastero Dev TeamFastero Dev Team
2026-07-29
shopifye-commercead spendrevenue leaksout-of-stock

Open your store on your phone right now. Tap the first product in your hero section. Does it add to cart — or does it just sit there on a grey "Sold out" button?

For most stores, most of the time, it adds to cart. But "most of the time" is the whole problem. Because the one week your best-selling bundle goes out of stock while it's still pinned to your homepage, still in your top-performing ad set, still the hero image in Tuesday's email — nothing tells you. The page still loads. Analytics still logs the visit. Your dashboard just shows a slightly softer week, and you go hunting for the reason in your creative, your CPMs, the algorithm, the weather.

Sometimes the reason is sitting on your own homepage. You're paying to send people to a product they can't buy.

I want to walk through how this leak works, why it's nearly invisible, how to check for it by hand, and how to scan your whole storefront in about ten seconds.

The leak that never trips an alarm

Most things that go wrong in a store announce themselves. A failed checkout throws an error. A payment decline shows up in Stripe. A broken theme deploy looks broken the moment you load it.

A sold-out product that's still linked from your homepage does none of that. The page returns a clean 200, the images load, the reviews are there. The only difference is the button says "Sold out" instead of "Add to cart" — and by the time a shopper reads it, you've already paid for the click.

That's what makes it so quietly expensive: it's not an outage, it's a dead end. Nothing in your normal tooling is watching for it:

  • Your ad platform keeps optimizing toward the link you gave it. Meta doesn't know the landing page is unbuyable; it just knows people clicked, so it keeps spending.
  • Shopify's dashboard shows aggregate sales down a bit. It will not tell you "your #3 hero product has been unbuyable for nine days." (This is the same blind spot I wrote about in Shopify Analytics Beyond the Built-In Dashboard — the built-in reports are great at what sold and useless at what's quietly not selling and why.)
  • Your customers mostly just bounce. A handful email you. The rest you never hear from — they were never going to fill out a contact form to tell you your store is broken.

So the signal you get isn't a red alert. It's a soft month. And a soft month is the easiest thing in the world to explain away.

Where the money actually leaks

When I say "spend leaks" on Shopify, I don't mean anything exotic — just a boring, common list of ways a storefront sends traffic somewhere it can't convert. Worth checking, in rough order of how often they bite:

Sold out, but still on the homepage. The classic. A product (or a whole bundle) goes out of stock, but it's still featured in your hero, your "Bestsellers" grid, or a "Shop the collection" tile. Every visitor who taps it — organic, paid, email, whatever — lands on a Sold out button.

Dead product pages. The page loads fine, returns 200, looks completely normal — but every single variant is unavailable. Not "the medium is gone," but the whole product. These are worse than an obvious 404 because they look healthy. Nothing about the page says "don't send traffic here."

Broken nav and footer links. A collection got renamed, a page got deleted, a handle changed — and now a link in your top nav or footer throws a 404 or 500. These accumulate silently over months of theme edits and "quick" catalog changes.

Empty collections in your menu. The link works, the page loads — and there's nothing in it. A seasonal collection that sold through, a category you emptied and forgot to unlink. A customer clicks "New Arrivals" and gets a blank grid.

Then there's a second tier — things that aren't automatically broken but are worth a human look:

  • Stale-looking promo banners ("Summer Sale — ends June 30!" still up in late July).
  • Partial out-of-stock on featured products — the product's fine, but the size or color you're leading with in the ad is the one that's gone.
  • Tracking presence. Whether your pixels are even installed — Klaviyo, GTM, the Meta pixel. Worth saying plainly: knowing a pixel is present isn't the same as knowing it fires correctly. Presence is a starting point, not a clean bill of health.

None of these are catastrophes on their own. Together, they're the difference between the traffic you pay for and the traffic that can actually buy.

Fastero

Connect your database. Ask questions. Get dashboards.

Postgres, BigQuery, Snowflake, and 10+ sources — live-connected, AI-powered, no dashboard builder learning curve.

Try free →

"Are you advertising it?" — the part you have to connect yourself

Here's where the title of this post comes in — and where I want to be completely straight about what a storefront scan can and can't tell you.

A scan reads your public storefront. It does not read your ad account. It can't see your Meta ad sets, your Google Shopping feed, your Klaviyo flows, or your SMS list — and any tool that claims to "prove you're paying to advertise a sold-out product" from a store URL alone is overselling. (Cross-referencing dead destinations against your actual ad spend is something we're building toward, but it's not what a public scan does today.)

What a scan does give you is the other half of the equation: a clean list of the dead destinations on your store. You supply the half only you can see — where you're sending traffic.

Put the two together and the picture gets uncomfortable fast. Say a customer clicks your Meta ad for the Aperitivo set — nice creative, good hook, ready to buy. The link drops them on the product page, and the set sold out on Thursday. They see "Sold out" and leave. You paid for that click, and you'll pay for the next one, because the ad set is still running and the algorithm has no idea the destination is a wall.

Now multiply that by however long it takes you to notice. Say that set spends $40 a day — the exact CPC barely matters, because every dollar is buying visits to a page that structurally cannot convert. Same story if the Aperitivo set is the hero of your abandoned-cart flow, the featured tile in Tuesday's newsletter, or the first result when someone searches your own site.

The scan won't tell you the set is in that ad — you know that. What it does is hand you the dead-end list so you can check it against every place you're actively spending. That's the honest version of "are you advertising sold-out products?": a question only you can answer, but one you can't even ask until you know which products are the dead ends.

How to check it by hand

You don't need a tool to find these. You need about twenty minutes and some patience.

Check 1: Walk your own store like a stranger. In an incognito window, tap every featured product, every collection tile, every nav item, every footer link. Note anything that lands on a Sold out button, an empty grid, or an error page. Then do it again on mobile — your mobile nav is probably different, and it's where most of your paid traffic lands.

Check 2: Read your own product feed. Every Shopify store publishes a public catalog at yourstore.com/products.json (add ?limit=250 to see more per page). It's a wall of JSON, not a report — but it's the raw list of what's in your catalog, the same public data a scanner starts from. For whether a specific variant is in stock, the product page itself is the source of truth — which is why the click-through in Check 1 still matters.

Both checks work. The only problem is that they're manual, boring, and capture a single moment in time. A product that's fine when you check on Monday can sell out Wednesday afternoon, and you won't walk your own nav again until something feels off — which brings us back to the soft month.

The ten-second version

This is exactly the tedious, repeatable, easy-to-forget work that a tool should do for you, which is why we built one and made it free.

Paste your Shopify store URL into the free Shopify spend-leak scanner and it walks your storefront — homepage, nav, footer, featured products — and hands you a report: what's sold out but still linked, which product pages are dead, which nav and footer links are broken, which collections are empty. No signup, no connecting your store, no credit card. You paste a URL, you get the list.

Scan your store free and you'll have the dead-end list in the time it takes to read one more paragraph.

A few honest notes on scope: it's Shopify-only, it reads your public storefront (not your admin or ad account), and the "worth a look" items above are flagged for a human to judge, not treated as confirmed breakage. It replaces the twenty-minute manual walk-through — it doesn't read your mind about your marketing.

What to do with the report

The report itself is the easy part; the value is in what you do next.

Fix the confirmed leaks first. Pull sold-out products off the homepage, repoint or remove broken links, hide empty collections. These are usually five-minute theme edits with an immediate payoff — you stop paying to route traffic into walls.

Then reconcile against your spend. Check the dead-end list against your live ad sets, email flows, and SMS campaigns — the "am I advertising it?" step, and where the actual money is. A sold-out product is a minor annoyance; a sold-out product that's the destination of a $40/day ad set is the leak.

Then decide if you want it watched continuously. A one-time scan tells you about today, but catalogs change constantly and nobody re-walks the store on schedule. If you'd rather be told the moment a linked product goes dark, the scanner has an optional email hand-off for continuous monitoring — and if you want to watch this alongside your other numbers, that's what the deeper Shopify integration and our revenue-leak detection product are for. The through-line is the same in all of them: the expensive problems in a store are the quiet ones, and the fix is to make them loud.

Start with the free scan. Even if it comes back clean, that's twenty minutes you didn't spend clicking through your own footer — and now you actually know.


Stop paying to send traffic to pages nobody can buy from. Scan your store free — paste your URL, no signup, get the dead-end list in seconds.

Related: Shopify Analytics Beyond the Built-In Dashboard | How Fastero detects revenue leaks

Ready to try it yourself?

Connect your database, ask questions in plain English, and get live dashboards — in under 2 minutes. No credit card required.