Skip to main content
Growth

Shopify Growth Stalled? Diagnose It in This Order

Why is my Shopify store not growing? Split revenue into traffic, conversion, order value and repeat customers, then open one report for each to find what moved.

November 4, 2026 19 min read Talha Butt.
Share

Shopify Growth Stalled? Diagnose It in This Order

Quick answer: Shopify revenue is, roughly, sessions multiplied by conversion rate multiplied by average order value, and your returning customers sit inside those orders. A store stalls when one of those numbers moved and the others did not make up for it, so the job is to find which one. Confirm the stall against the same weeks last year, then compare four branches in this order: traffic by source, conversion rate by funnel step and device, average order value split into units, price and discount, and new against returning customers. Work on the branch that moved most; the report to open for each is named below.

Search for why a Shopify store is not growing and you mostly get lists of causes. Weak product, thin marketing, slow site, no email list, too many apps. Some will be true of your store, but a list does not tell you which. It is a set of hypotheses with no test attached.

This post gives you the test. It is a sequence: confirm the stall is real, work out which of four numbers moved, then open the one report that shows why. It does not depend on your revenue, so it works at A$200K a year and at A$900K. For what tends to change as a store gets bigger, see why Shopify stores stall around $500K.

One thing up front. Prism3 does Shopify SEO, GEO and CRO. We do not run ads, email or SMS. Two branches (paid traffic and repeat purchase) are partly run through ads and email, so I cover them as a diagnosis you can do yourself and say plainly when the fix belongs to whoever runs those channels. Every platform fact comes from the platform’s own help pages, read on 31 October 2026. Every dollar figure in the worked examples is invented to show the arithmetic. None is a benchmark or a result from a store.

The revenue equation behind this order

Shopify’s own definitions let you write revenue as a chain:

  • Conversion rate is the percentage of sessions that resulted in a purchase.
  • Average order value (AOV) is gross sales minus discounts, excluding post-order adjustments such as edits or exchanges, divided by the number of orders.
  • Net sales is gross sales minus discounts minus sales reversals (returns, cancellations, edits and refunds).

Put together, you get a working approximation. It is my method, not a formula Shopify publishes:

Net sales ≈ sessions × conversion rate × AOV − sales reversals

It is approximate for two reasons Shopify states. One session can include more than one purchase, so orders and completed-checkout sessions can differ. And AOV leaves out post-order adjustments, which is why reversals are separate.

Two things follow from the multiplication. A 10% fall in any one factor is a 10% fall in revenue. The factors carry equal weight in the arithmetic; they differ in what it costs to move each.

Repeat customers are a split, not a fourth multiplier. Orders come from new and returning customers, so the fourth branch asks who is placing them. A store can hold orders flat while buying more new customers to replace ones who stopped coming back.

BranchThe questionWhere the answer starts
TrafficDid sessions fall, or did their source change?Shopify sessions by referrer, GA4, Search Console
ConversionDid the share of sessions that buy fall, and where?Shopify conversion rate reports
Order valueFewer items, cheaper items, or bigger discounts?Shopify sales report
RepeatAre fewer past customers coming back?Shopify new vs returning, cohorts

Step 0: Confirm the stall is real

A “stalled” store is usually a real decline, a flat line against last year, or a comparison that was never fair. Settle that first.

Compare like with like. Compare the last four or more full weeks with the same weeks a year earlier, and with the four weeks before. Google’s Search Central guidance on debugging search traffic drops lists seasonality as a cause and says different industries have different levels of it, and your sales face the same effect. Shopify’s sales reports let you compare date ranges and group by day, week or month. GA4 offers previous period, previous period (match day of week) and previous year, per Google Analytics Help; “previous year” compares the same dates, not the same weekdays, so use full weeks or months. Search Console’s help page suggests weekly or monthly granularity when you compare two date ranges, because aggregating by week or month neutralises the day-of-the-week effect.

Use one revenue measure. Pick net sales or total sales in Shopify and stay with it. Total sales adds taxes, duties, shipping charges and fees to net sales, so it moves when shipping income moves even if product sales did not.

Mind the Shopify session change. Shopify’s help centre says its session measurement update rolled out from 21 to 23 September 2026. Sessions are now based on continued customer activity instead of ending at midnight UTC, some sessions without a pageview are counted, and identified bot sessions are filtered out of session-related reports by default. Conversion rate is calculated from sessions, so it moves: fewer sessions from bot filtering can raise it, and extra no-pageview sessions can lower it. Shopify says your total orders, sales and customer counts are not affected, that this does not make sessions measured before the update directly comparable with sessions measured after it, and to use data from after the update as your new baseline for session-based metrics.

The practical result is that a year-on-year Shopify conversion rate for any window after 23 September 2026 crosses that line. Compare orders, sales and AOV year on year, because they are not session-based. For sessions and conversion rate, compare periods that both sit after the update. If you need a year-on-year conversion rate, GA4 has its own session rules, so use GA4 on both sides and expect it to disagree with Shopify (see why GA4 and Shopify Analytics disagree). That workaround is mine, not Shopify’s.

Take out what you already know. Write a change log for both windows: sales and promotions, price or shipping-cost changes, theme or app changes, a hero product out of stock, tracking changes, big swings in ad spend or email sending. If you are reading this in December, the Black Friday weekend (Friday 27 to Monday 30 November 2026) sits in your recent window. Compare sale weeks with sale weeks.

Decide what counts as a stall. None of the Shopify, Google or Meta help pages I read publishes a threshold for a real change, so I give no percentage. My test: the gap shows in several consecutive full weeks, in the same direction in orders and net sales, and it survives the change log.

If Shopify and GA4 disagree badly on orders, fix that first, because every branch below is read through those numbers. What to fix first before spending on ads sets out the tracking test I use.

Step 1: Find which number moved

Pull these for both windows from Shopify: sessions (Sessions over time, with compare), conversion rate (Conversion rate over time), orders, AOV and net sales (the sales report), and new and returning customers (New vs returning customers). Divide this period by the comparison period for each. A ratio of 1.00 means nothing changed. 0.90 means it fell 10%. For the session-based numbers, apply the Shopify session change above: the orders and AOV ratios are safe year on year, and the sessions and conversion ratios need a comparison window on the same measurement.

A worked example (illustrative numbers)

The same four weeks, this year against last year, assuming sessions were measured the same way in both:

NumberLast yearThis year
Sessions40,00041,000 (ratio 1.025)
Conversion rate2.0%1.8% (ratio 0.90)
AOVA$85A$86 (ratio 1.012)
Orders800738 (ratio 0.92)
Gross sales less discountsA$68,000A$63,468 (ratio 0.933)

Multiply the three ratios: 1.025 × 0.90 × 1.012 ≈ 0.933, which matches the last row. Revenue is down about 6.7%. Sessions are up and AOV is up. Conversion rate fell by a tenth and did almost all of the damage.

A founder who said “we need more traffic” already has it, sitting behind a conversion problem.

How to read your own ratios

  • One ratio is clearly the furthest from 1.00. That is your branch.
  • Two moved in opposite directions. The offset hides a problem. Sessions up 15% and conversion rate down 13% looks like “flat” and is two separate stories. Open both branches.
  • More than one moved the same way. Work in the order below: traffic, conversion, order value, repeat. Traffic comes first because a change in where visitors come from changes who they are, and that moves the conversion rate and order value that follow.
  • Nothing moved. You have a plateau, not a decline. Skip to the plateau section.

Step 2: The traffic branch

Total sessions only tells you whether traffic changed; what matters is which source changed.

Split sessions by source

  • Shopify: Sessions by referrer shows whether visitors arrive directly, from search or through a referral, and the sales report can be broken down by traffic referrer source (Direct, Search, Email, Social or Unknown). Use the sales view so you see revenue by source, not just visits.
  • GA4: the Traffic acquisition report uses Session default channel grouping as its default dimension and includes sessions, engagement rate, key events and total revenue. Google’s help page says the purchase event needs both value and currency parameters or purchase data will not appear in total revenue. Turn on a date comparison to see the change by channel.

Then apply the volume or quality test to the source that moved:

What you seeWhat it suggests
The channel’s sessions fell, its conversion rate heldVolume: fewer people arrived
The channel’s sessions held or rose, its conversion rate fellQuality: the wrong people arrived, or the page failed them

A quality problem on a source is a conversion problem in disguise. Open the conversion branch and check that channel’s landing pages first.

If organic search fell

In Search Console’s Performance report, impressions are how often someone saw a link to your site on Google and clicks are how often someone clicked through. Google’s method for a drop gives you a sequence:

  1. Check the Data Anomalies page for reporting glitches.
  2. Read the main chart. If impressions and clicks both fell, work through the causes Google lists (technical issues, security, spam, algorithm updates, seasonality, site moves). If impressions held but clicks fell, the title or snippet may need work.
  3. Set the date range to 16 months to see whether the drop repeats every year.
  4. Compare the last three months with the previous period or the same period last year, filtering by query, page, country, device or search appearance.
  5. Sort pages by clicks difference to find what lost most, then use the Page indexing report for sitewide problems and URL Inspection for single pages.

Google advises not to focus too much on average position, because clicks and impressions are the main measures. The full sequence is in how to diagnose a Shopify organic traffic drop.

If paid social fell

I do not run ads, so this is a checklist for reading the numbers, not media-buying advice. Everything below is from Meta’s Business Help Centre as at 31 October 2026.

  • Did spend change? Sessions from ads follow spend. Meta says that on some accounts spend can run up to 75% over the daily budget on some days and less on others, and cautions that narrow breakdowns such as hour of day produce swings that average out. Judge by full weeks, at campaign level.
  • Check the learning phase. Meta says ad sets usually exit learning after about 50 results in the week after the last significant edit, and that while learning, ad sets are less stable and usually have a higher CPA. Add the “Last significant edit” column. If someone edited the ad set recently, the result is not yet a trend.
  • Check frequency. Meta calculates it as impressions divided by reach, calls it an estimate based on sampled data, and says that if performance drops as frequency rises, the audience may be experiencing ad fatigue. For ad sets with one creative, Ads Manager shows “Creative limited” when cost per result is above your past ads but under twice as much, and “Creative fatigue” when it is at least twice as much.
  • Check the attribution setting. Meta says results cannot be compared in the campaign overview table across ad sets with different attribution models. Standard attribution settings include click-through (1 or 7 days after a link click) and view-through (1 day after an impression). My reading: a different window counts conversions over a different period, so reported results can change with no change in your store.

If paid performance is the cause, the next question belongs to whoever runs your ads. Our post on why Meta CAC rises gives the order I would use to split the cost into the parts that moved.

Whichever source moved, write one sentence: “Sessions from [channel] fell by [x]%, and its conversion rate [held / fell].” That is your brief to whoever owns it.

Step 3: The conversion branch

Open this branch when the conversion ratio was furthest from 1.00, or when a source’s sessions held and its conversion rate fell.

Where in the funnel

Shopify’s Conversion rate over time report has columns for sessions, sessions with cart additions, sessions that reached checkout, sessions that completed checkout, and conversion rate. “Reached checkout” counts sessions with user input during checkout, such as a key press or mouse click. The Conversion rate breakdown report shows the same four steps as a funnel, each step’s rate being that step’s sessions divided by all sessions, as an open funnel (sessions can enter at any step) or a closed one (steps in sequence).

For both windows:

  1. Write down the four step rates.
  2. Find the step where the rate fell. A fall before the cart is an earlier problem than a fall inside checkout.
  3. Split by device. Shopify’s Sessions by device report shows which devices carry your sessions, but the Conversion rate breakdown section I read describes no device filter. For conversion rate by device, use the GA4 funnel below. Check the device that carries more of your sessions first.
  4. Split by landing page. Sessions by landing page shows where sessions start. If one page now takes a much larger share, a page change or a new campaign may explain the whole movement.

The same split in GA4

GA4’s funnel exploration lets you define up to 10 steps, add a breakdown such as device category, and apply up to four segments. Two limits from Google’s help page: steps cannot be based on metrics, and a breakdown attributes each user only to the first breakdown value that applies. On retention, Google’s help says properties keep 2 months of data by default, and standard properties can set event data retention to 2 or 14 months. That setting affects explorations and funnel reports but not standard aggregated reports, so if you want last year in an exploration, check retention first.

What a step’s drop usually points to

These are hypotheses to test, not findings. A number tells you where, never why.

Step that fellUsual suspects
Sessions to cartProduct page changes, price, stock, offer, a new traffic source
Cart to checkoutShipping cost or delivery time shown late, cart friction, a broken button
Checkout to completedPayment methods, form errors, a failing discount code, a consent or tracking change

To get from number to reason, watch recordings of sessions that stopped at that step and place a test order on a phone on mobile data. If you can name a reason that fits the step and the timing in your change log, you have a fix. The sequence I use is in why your Shopify conversion rate dropped. I give no target conversion rate: compare your store with its own history on the same kind of traffic.

Step 4: The order value branch

Open this branch when AOV moved, or when conversion rose but revenue did not.

Shopify’s sales report gives you orders, average order value, units per transaction (net quantity divided by total orders), and breakdowns by product, discount, sales channel and traffic referrer. Shopify’s changelog post of 9 January 2023 says AOV is based on gross sales minus discounts, excluding adjustments made after the order was created, everywhere it is shown in the admin, historical data included. A comparison inside Shopify is therefore consistent; an AOV from another tool may use a different definition.

Split AOV into three parts

Because AOV is gross sales less discounts divided by orders:

AOV = (units per order × average price per unit) − discount per order

An example with invented numbers. Last year customers bought 2 units a time at an average of A$50, so gross sales per order were A$100, and discounts averaged A$15 per order. AOV was A$85. This year the basket is the same, 2 units at A$50, but discounts averaged A$21 per order. AOV is A$79, down 7.1%. Nothing about what customers put in the basket changed. The discount rate went from 15% of gross to 21%.

What movedWhat it suggests
Units per order fellSmaller baskets: bundles, thresholds, product mix, more single-item buyers
Price per unit fellMix moved to cheaper products, or prices were cut
Discount per order roseMore discounting: a longer or deeper sale, or more codes in use

Use the sales-by-product and sales-by-discount breakdowns to find which products or codes drove it.

Do not judge AOV on its own

If discounts bought extra orders, the net effect can still be positive. Continue the example: if the extra discount lifted orders from 800 to 896 (+12%), then 896 × A$79 is A$70,784 against A$68,000, up 4.1% on gross sales less discounts. But you gave up A$6 more on every order, including to customers who would have bought at the old price. Rising revenue does not show profit rose, so work out contribution per order before deciding the change was worth it. The method is in bundles, upsells and the margin check.

Step 5: The repeat customer branch

Open this branch when the first three look normal and revenue is still flat, or when new customers grew and revenue did not.

Split customers into new and returning

Shopify defines a first-time customer as one who placed their first order with your store, and a returning customer as one who placed an order and whose order history already includes at least one order. Its New vs returning customers report counts both for a period, and its analytics fields define the returning customer rate as returning customers as a percentage of all customers who placed orders.

A worked example, invented numbers. Last year in the window: 600 new customers and 200 returning, 800 in total, so a returning customer rate of 25%. This year: 660 new and 140 returning, still 800, a rate of 17.5%.

Total customers are flat and new customers are up 10%, which feels like progress. But 60 fewer past customers came back, and the store may be spending to replace them.

Check whether it is a cohort problem

A fall in returning customers can mean past customers came back less, or that fewer were acquired earlier, leaving a smaller pool to return. Shopify’s Customer cohort analysis separates them. By default it groups customers into cohorts by first-order date, and the period 0 column counts returning orders in the same period as the first order. You can change the interval and choose a metric: number of customers, customer retention rate, gross sales, net sales or average order value. The page I read does not define how retention rate is calculated, so I would not treat it as a verdict. Compare like with like:

  1. Pick two cohorts of the same age, such as the same first-order month a year apart.
  2. Compare them at the same interval after the first order (period 1, 2, 3).
  3. If the newer cohort returns less at the same age, the problem is repeat behaviour. If not, the older base simply shrank.

Shopify also has a Returning customers report (customers with two or more orders) and a One-time customers report (exactly one order), which split your base the same way. Repeat purchase depends heavily on what you sell, so compare your store with its own history. I found no benchmark at a primary source, so I give none.

If cohorts show a repeat problem, the fix sits with product, post-purchase experience and email or SMS, which Prism3 does not run. The numbers are still yours to read. We cover the calculation and the cohort report in how to calculate and raise your repeat purchase rate.

When nothing moved: a plateau, not a drop

If every ratio in Step 1 sits close to 1.00, nothing broke. You have a ceiling, and the question changes from “what moved?” to “which factor has the most room?”

First, split before you conclude: a flat total can sit on two moving halves, so check the same numbers by device and by new against returning customers.

If it is still flat, equal percentage moves are worth the same. With invented numbers, take 40,000 sessions, a 2.0% conversion rate and an A$85 AOV, which is A$68,000 of gross sales less discounts. Raise any one of the three by 10%:

ChangeResult
Sessions 40,000 to 44,000A$74,800
Conversion rate 2.0% to 2.2%A$74,800
AOV A$85 to A$93.50A$74,800

Each adds A$6,800, but not at the same cost. More sessions usually means more spend or time, so judge extra spend by its marginal return, not the average. A higher conversion rate costs a fix rather than a bigger media budget, but only if a specific leak exists. A higher AOV can cost margin. Repeat purchase is slower to show.

So ask where the data shows a specific, fixable leak, and how fast you can fix and measure it. I rank candidates on PIE (potential, importance, ease): how much room there is to improve, how valuable the traffic and pages involved are, and how quickly the fix can be built and tested. That is the scoring we use in our CRO audits, done on a napkin.

Where Prism3 fits, and where it does not

If the branch that moved is conversion after the click, or the numbers cannot be trusted, that is our work: a Shopify CRO audit that starts with a tracking check before any optimisation. If it is organic search or AI-search visibility, that is our SEO and GEO work. We promise no particular revenue, conversion rate or ranking. If the branch is paid traffic or email and SMS, hand these numbers to the person who runs them.

Key takeaways

  • Revenue is roughly sessions × conversion rate × AOV, less sales reversals. A 10% fall in any one factor is a 10% fall in revenue, so find which factor moved.
  • Confirm the stall first: same weeks last year, same promotions, one revenue measure. No platform page publishes a threshold for a real change, so look for a gap that holds across consecutive full weeks.
  • Shopify’s session measurement changed from 21 to 23 September 2026. Orders, sales and AOV compare cleanly across it; sessions and conversion rate need a window that sits wholly after it.
  • Work the branches in order: traffic by source, conversion by device and funnel step, AOV as units, price and discount, then new against returning customers.
  • A source whose sessions held while its conversion rate fell is a conversion problem. A source whose sessions fell is a volume problem.
  • Repeat customers are a split of orders, not another multiplier. Compare cohorts of the same age, not totals.
  • If nothing moved, check by segment, then pick the branch with a specific, fixable leak. A number tells you where, never why.

FAQs

Why is my Shopify store not growing even though traffic is up?

Because revenue also depends on conversion rate and order value, and either can fall while sessions rise. If sessions are up 2% and conversion rate is down 10%, revenue falls. Check which source the extra traffic came from: a new low-intent source can lift sessions and drag conversion rate down at once.

How do I tell whether I have a traffic problem or a conversion problem?

Divide this period by the comparison period for sessions, conversion rate and AOV. The ratio furthest from 1.00 is your branch. If sessions fell and conversion rate held, it is traffic. If sessions held and conversion rate fell, it is conversion. If they moved in opposite directions, open both.

Should I compare against last month or last year?

Both, but weight the same weeks last year, because a month-on-month comparison can mistake a seasonal swing for a stall. Match sale weeks with sale weeks, and use full weeks or months because GA4’s year-on-year comparison uses the same dates, not the same weekdays.

How long should sales be flat before I act?

No platform help page I read gives a number, so I will not invent one. My test is practical: the gap shows in several consecutive full weeks, in both orders and net sales, and it survives a check of your change log. My rule of thumb is that revenue flat for a quarter while you have changed nothing deserves the full diagnosis.

Does Shopify’s September 2026 session change affect my numbers?

Yes, for session-based figures such as conversion rate. Shopify says total orders, sales and customer counts are not affected, and to use data from after the update (rolled out 21 to 23 September 2026) as your new baseline for session-based metrics. Check Shopify’s help centre if you are reading this much later, in case the guidance has changed.

Do I need GA4 for this?

Not for most of the first pass, because Shopify’s reports cover revenue, sessions, conversion rate, AOV and new against returning customers. GA4 helps with a year-on-year conversion rate across Shopify’s September 2026 session change, or a funnel split by device or channel, and Search Console is the source for organic clicks and pages. If GA4 and Shopify disagree on orders, resolve that first.

Keep reading

Not sure which number moved?

Growth stalled and you cannot tell which part moved? Two of the three numbers in that sum, conversion rate and order value, and the tracking behind all three, are the work we do. Book a free 30-minute diagnostic or tell us about your store: we look at where your store loses buyers after the click, using your own numbers, and tell you what to fix first. We do not run ads or email. No pitch. No email gate.

If the branch that moved is conversion or tracking, that is the work of our Shopify CRO service.

Free 30-min diagnostic

Seen enough?
Book a free diagnostic.

We'll look at where your store loses buyers after the click and what to fix first. No pitch. No email gate. 30 minutes.

More from Prism3