Product Page Leaks the CRO Audit for Shopify stores Finds First

Five Shopify product page leaks a CRO audit flags most: lost add-to-cart, no PDP offer, no cart goal, nothing after add, fake urgency.

Common Shopify product page leaks found by the CRO audit

Key takeaways

  • If add-to-cart does not survive scroll, fix that before any upsell widget.
  • No offer on the PDP and no quantity break are different leaks; a theme FBT block only covers one of them.
  • Drawers and popups that only appear after add need a rendered click to be scored fairly.
  • Fake compare-at prices and countdown timers fail as theme honesty, not as an app upsell.
  • Fix order is always the same: buy path, then AOV, then hygiene. If leak 1 is red, the rest is optional reading this week.

The product page leaks the CRO Audit for Shopify stores finds first are the same five on most stores that look “done”: an add-to-cart button that disappears on scroll, no offer on the product page, a cart with no goal, nothing happening after add-to-cart, and urgency theatre instead of proof. Fix them in that order — buy path first, then basket growth, then hygiene. The audit is tuned to name them in an order you can staff.

What is a product page leak?

A leak is any point where a shopper who wanted to buy either cannot, or buys less than they would have. The first kind is a constraint: the page is unable to take money, or makes it hard enough that a phone user gives up. The second kind is missed AOV: the page sells, but never asks for a second SKU, a larger quantity or a threshold. Both are visible on the public page without analytics, which is why a free audit at /cro-audit/ can find them from the outside.

Leak 1: Add-to-cart that does not survive scroll

Long PDPs bury the button under reviews, a size guide, and a UGC grid. On mobile that is a conversion tax. A sticky bar or a cart drawer that opens on add both count as “the buy control is still there.”

Fix: theme sticky, or a drawer you actually ship. Do not add a popup here.

Leak 2: No offer on the product page

Shoppers who would have taken a second SKU never see one until checkout — if then. Frequently bought together, a small bundle, an add-on: something with a price and a button, not a related-products carousel of randoms.

A theme block can pass this. If the HTML is silent, Addly owns the miss. If you want to build the offer in the theme first, the frequently-bought-together guide covers placement and copy.

Quantity breaks are a separate leak. Selling “complete the look” does not tell a bulk buyer the unit price drops at three.

Leak 3: Cart with no goal

A $47 cart and a $50 free-shipping line with no progress UI is money left in the session. Goalify owns the miss when there is no threshold, gift, or bar the crawl can see.

Delivery dates and protection sit in the same “basket confidence” family. They are not interchangeable with a threshold, but they fail the same shopper: “I do not know what this cart costs me in time or risk.”

Leak 4: Nothing after add-to-cart

Redirect-to-cart themes still convert. They also skip the moment when an extra SKU is cheapest to attach. A drawer (Addy) and an intent popup (Monet) are different jobs. Passing one does not pass the other.

If you only view source, you will think they are missing when they hydrate after click. The server audit clicks add and waits. That is why local static scoring can disagree with a full run. If you are choosing between a drawer and a cart page, the cart drawer guide walks through the trade-offs.

Leak 5: Theatre instead of proof

Fake compare-at (same number in both fields). Countdown timers that reset. “12 people viewing” with no source. The rubric treats these as theme honesty, not as urgency apps. Turning on a scarcity widget to paper over a fake sale makes the score worse, correctly.

In what order should I fix product page leaks?

Buy path, then AOV, then hygiene, then stop. Seven rows. If leak 1 is red, later leaks are optional reading. The status next to the score is the score band. The line beside it names which rubric missed — Fail in Rubric A is still a buy-path week even if four AOV rows also failed.

LeakRubricUsual ownerWhen to fix
Add-to-cart lost on scrollA — can they buy?ThemeBefore anything else
No PDP offer / no quantity breakB — does the basket grow?Theme block or AddlyOnce the buy path is green
Cart with no goalBTheme or GoalifyAfter the PDP offer, or first if AOV sits just under a threshold
Nothing after addBTheme drawer, Addy, MonetAfter the offer and goal exist
Fake urgency, fake compare-atA / C honestyThemeRemove now; it costs nothing

How do I find these leaks on my own store?

  1. Paste the exact /products/ URL your ads or emails land on. A domain paste gives you a bestseller instead.
  2. Read the rubric line beside the score. Rubric A means a constraint; Rubric B means missed AOV; Rubric C means the page is fighting itself.
  3. Note which rows are theme rows and which name an app owner.
  4. Fix the top theme row under Online Store → Themes → Customize, or install the single app that owns the top app row.
  5. Hit Audit again on the same URL and confirm the row is green before moving to the next.

A worked example

Say your average order is $38 and free shipping starts at $50. The audit shows the buy path green, no PDP offer, and no cart goal. Both are Rubric B misses, so the page can sell — the question is which to fix first. The cart goal is the obvious candidate: the average basket is already within $12 of the threshold, and a progress line in the cart tells that shopper exactly what to add. The PDP offer is the second job. Ship one, re-run, then ship the other.

Which leaks are commonly mistaken for each other?

  • Offer vs quantity break. A bundle sells a second product; a quantity break sells more of the same one. A theme FBT block passes the first and says nothing about the second.
  • Drawer vs popup. A drawer keeps the shopper on the page after add; an intent popup makes one offer at a moment of intent. Passing one does not pass the other.
  • Related products vs an offer. A carousel of randoms with no price or button is content, not an offer.
  • Compare-at vs a real sale. If both price fields hold the same number, the strikethrough is theatre and the rubric scores it as such.

When should I not fix a leak yet?

If Rubric A is red, do not touch the AOV rows. Every widget you add to a page that cannot add to cart is another thing fighting the buy box. If the theme already opens a drawer after add, do not install a second one — duplicates are a hygiene miss, not a double pass. And if the audit says the theme could not be read (Partial), fix the URL before you fix anything on the page.

Paste yourstore.com for a bestseller. Paste the problem child when you already know which PDP the ads hit.

The leaks are boring. Boring is what you can ship this week.

Frequently asked questions

What is this score based on?

Ninety9’s product-page rubric — defaults we apply the same way on every public Shopify PDP. It is not a conversion-rate prediction, and it will not fit every store or situation. How we score.

What is a product page leak?

A point on the product page or in the cart where a shopper who intended to buy either cannot, or buys less than they would have. Constraints stop the sale; missed AOV leaves the basket smaller than it could be. Both are visible on the public page without analytics.

What is the most common constraint on Shopify product pages?

A buy button that is fine at the top of the PDP and gone after the fold on mobile, with no sticky bar and no drawer. Shoppers who read the description cannot purchase without scrolling back up.

We have a bundle app. Why did the offer still fail?

The widget is not on that template, the app embed is off, or the copy is not in the HTML the crawl sees. Audit the live URL, not the app admin toggle, and check the block is enabled under Online Store → Themes → Customize.

Is a missing cart drawer always an Addy miss?

The owner of “drawer after add” is Addy in this rubric. A theme drawer can pass if it is in the DOM after add. Duplicate drawers are a stack problem, not a pass.

Should I add a popup if the page cannot add to cart?

No. Popups on a broken add-to-cart multiply frustration, not AOV. Fix the buy path first, re-run, then decide whether an intent popup earns its place.

How do I see leaks on a specific product?

Paste that /products/ URL. A domain paste will pick a bestseller instead, and you will be reading a different page from the one your ads land on.

Ninety9 Team

We build 5 conversion apps used by Shopify merchants in Bulgaria and beyond. Everything we write here comes out of what we see in real store data.

Keep reading

Related articles

How Ninety9 scores the CRO Audit for Shopify stores — a rubric, not a conversion forecast
CRO & Analytics

How We Score the CRO Audit for Shopify Stores

How Ninety9 scores the CRO Audit: a public product-page rubric applied the same way every time — not a conversion forecast or a law.

4 min read