Page Performance

Per-page analytics for any product, collection or content page — visits, adds to cart, orders, devices, traffic by channel, what buyers bought and payback.

Ordinary Written by The Ordinary Team · Updated
On this page

The Page Performance page is your per-URL analytics view — same cards as the home Pulse dashboard, but scoped to a single page so you can see how that page drives the funnel.

Getting there

In the sidebar under Insights, click Page Performance. You’ll see a list of pages on your store with their visits, visitors who added to cart, orders, ATC rate and CVR — the same counts as the funnel on each page’s detail view — followed, on Starter and higher, by the page’s net revenue, its ad spend, and the new customers, CAC, Product CAC and ROAS its ads brought in. Click any row to drill into that page’s detail.

The detail URL is /page-performance/<page-path>. So /page-performance/products/blue-widget is the per-page view for the product at /products/blue-widget on your store.

Versions of a page: angles and test arms

Some pages exist in more than one version at the same path: a landing-page angle built as a Shopify alternate template (/products/deodorant?view=lp-sensitive), or the variant arm of a split-URL test (/?view=v2). Page Performance shows each version as its own row.

  • In the list, the page’s row is the whole page — every version together, exactly as before. A page that has versions carries a variants chip; click it to expand one row per version, plus a Base page (no view) row for visits with none of them. The child rows have the same columns as the page, and there is no total row: the page’s own row is the total.
  • Each version’s visits, adds to cart and orders are counted on their own. A visitor who saw two versions is counted on both, so the versions can add up to more than the page. Spend, by contrast, is split exactly: each ad’s spend lands on the version its link points at, so the versions’ spend adds up to the page’s.
  • Open the page and the Overview starts with Versions of this page: the whole page, then each version on its own — visits, orders, CVR, each version against the base page, and on Starter and higher its net revenue, spend, new customers, CAC and ROAS — so the versions are compared in one table without going back to the list. A version with too few visitors to judge says “Too few to tell” rather than reading as ahead or behind. Click a row, or use the picker at the top of the page, to scope every section — funnel, traffic, devices, ads, orders, payback — to that version; the table marks which one is showing, and the × on the chip returns to the whole page.
  • The table has two halves, labelled above the columns. Sold on this version counts the orders added to cart on the version itself. From ads landing here counts what the version’s ads brought in under the attribution model you picked: spend, Ad orders, new customers, CAC and ROAS, wherever the buyer then added to cart. A landing page that sends shoppers on to the product page to buy can show 0 orders on the left and still earn ad orders and a ROAS on the right. It is bringing buyers in, but they buy somewhere else.
  • Rows show the template name until you give the version a label: click the pencil on its row (admins), or add labels under Settings → Tracking. A label changes only what the row says.
  • A version that is part of a test shows Part of experiment with a link to the test’s report. Only the report knows which version each visitor was assigned to and whether the difference is real; Page Performance does not do that maths.

Ordinary splits pages on the view parameter automatically. To split on a parameter of your own (?angle=), add it under Settings → Tracking, or use the notice that appears above the list when visitors are arriving with a parameter that looks like a page version (“Split by angle” adds it, “Ignore” hides the suggestion). History is re-keyed in the background; the rows fill in over a few minutes. A parameter with more than 30 different values on one page is treated as a tracking id and the page is not split on it. Tracking parameters such as UTMs and ad click ids are never offered.

For how to build an angle in Shopify and point ads at it, see Setting up landing-page angles.

Comparing pages: spend, ROAS and CAC

Starter and higher. Beside the funnel, each row in the list shows what the page costs and what its ads bring in, so you can compare pages side by side. Hover any column header for its definition. Every column sorts, and the list opens sorted by Spend.

The attribution model in the page’s header — the same control, and the same setting, as on Channels — decides how a customer is shared when their ads landed them on more than one page: First-touch, Last-touch, Linear or Time decay. Changing it here changes it on Channels too. Each column’s definition names the model in use.

Above the tables, a strip sums up the store’s ad economics for the same dates: total Meta and Google spend, how much of it landed on a page, spend with no add-to-cart, and the store’s ROAS and CAC from its ads — all ad spend against everything and everyone the ads brought in — with the blended ROAS alongside.

Page Performance: the ad-spend summary strip above the product pages list with visits, orders, spend and CAC. Demo data.

Pages ads pay for that nobody adds to cart from are always listed. Pages normally appear only once a visitor adds to cart or orders, but a page with ad spend is listed either way and marked:

  • Spending · no add-to-cart: visitors arrived from the ads and none added to cart. Its ROAS shows as 0×.
  • Spending · no visits tracked: ads pointed at the address but no visits were recorded there, usually because it redirects (a split test, or a page that forwards elsewhere). The visitors landed on another page, so check where the ad really sends people.

Ads that use a Shopify discount link (/discount/CODE) count on the page the link sends visitors to, not on the link itself. That is the page named in the link’s redirect part (for example /discount/CODE?redirect=/products/your-product). When the link names no page, it is the page the ad’s visitors were seen landing on, or otherwise your store’s home page, which is where Shopify sends a discount link that names no page.

On the Free plan the list shows the funnel columns, and a preview strip above the tables shows what the spend columns add.

  • Spend — ad spend that bought this page’s traffic. Meta spend counts on the page each ad pointed at, on the days it pointed there; Google spend is what Google itself reports the page’s visits cost, for every campaign type, Performance Max included. The small bar compares pages in the same table, so the ones the money goes to stand out.
  • Net revenue — the page’s own sales: orders with a product added to cart on the page, after refunds. Like the Orders column, it describes the page whoever sent the shopper.
  • New customers — first-time customers whose first order followed one of your ads landing them on this page, whatever they bought, shared between pages by the attribution model.
  • CAC — spend ÷ those new customers.
  • Product CAC — spend ÷ only the new customers whose first order included the product the page sells. The bar beside it is the share of the page’s new customers who bought that product; the rest bought something else. Blank for pages that sell no single product.
  • ROAS — revenue after refunds from every order the page’s ads brought in (new and returning customers, shared by the same model) ÷ spend.

A page’s spend, new customers, CAC and Product CAC match its own detail view for the same dates and model: its Ads section and its Payback section. Its orders and net revenue match its Channels cards.

The arrow next to CAC and ROAS compares the page with your store’s figure from all its ads for the same dates: all Meta and Google spend ÷ every new customer your ads brought in, and everything those ads brought in ÷ all Meta and Google spend. Green means the page does better than the store as a whole, red worse. The pages’ new customers add up to the store’s new customers from ads under every model, so switching the model moves customers between pages without changing the total.

A dash means there is nothing honest to show, never zero. You’ll see one when no ad spend reached the page, when its ads brought in no new customers (CAC), or when its spend is below what one new customer from ads costs your store — a single order would decide the figure. A $0 spend with an explanation means the ads that sent visitors were paying for a different page, such as a split test’s original page.

Checkout pages are one row. Each checkout has its own one-off address, so every checkout is counted in a single Checkout row, including spend and customers from ads that link straight to checkout.

Some Google spend can’t be split by page. When Google’s page-level report doesn’t match a campaign’s own spend closely enough that week, that campaign’s spend is left out of the page’s Spend (marked with an asterisk and named in the tooltip), because charging the whole campaign to one page would overstate it. The page’s real spend is then somewhat higher than shown, so its CAC appears as at least a figure (≥) and its ROAS as at most one (≤). The arrow only appears when that bound already settles the comparison — for example, a CAC of at least $150 against a store CAC of $100 is worse whatever the rest turns out to be.

Google spend comes from the connected Google Ads account. Visits from ads that run in any other Google Ads account (a separate account per country, for example) still show as Google traffic, with no spend against them.

The spend columns load a moment after the rest of the table; each cell fills in when its numbers arrive.

How the page is laid out

A page’s detail view is split into sections, the same way Brand Pulse is, each answering one question:

  • Overview — how is the page doing? A page with versions opens with Versions of this page (see above). On Starter and higher it then shows the product the page sells (the one its Product CAC counts) and where that came from; admins can change it. It stays put when you switch the attribution model. On product pages the product order summary follows. Then the funnel — visits (with unique visitors beside them), adds to cart and orders, their rates, and the change against your comparison period — and Performance over time: two rows of three charts, Revenue, Profit and MER over Orders after a visit, CAC and Product CAC. On collection pages it ends with product clickthrough.
  • Ads — what did this page’s ads buy, and are they still running? Starter and higher. It opens with the page’s spend and the new customers, CAC, Product CAC and ROAS its ads brought in — the list’s own figures, under the model in the page’s header — then the ads that send the page its visitors. Shown for any page an ad has pointed at or sent visitors to, or whose ads brought in a customer.
  • Traffic — where the page’s visitors come from: Devices, then the Channels cards with their week-by-week tables.
  • Orders — what the page’s visitors bought: assisted orders, and the products its buyers ordered.
  • Subscriptions — product pages only. The product’s subscription orders.
  • Payback — does a customer from this page earn back what they cost? Advanced plan.

A section your plan doesn’t include keeps its title, with a blurred preview under it, so you can see what it holds.

The funnel

The funnel opens the Overview. It is a horizontal-cell layout — same visual idiom as the home Pulse funnel, just scoped to this page.

A page's funnel: visits, added to cart and orders, with the rate between each step and a trend under each. Demo data.

Three stages:

  1. Visits — people who were on this page, counted once per visitor per day. Someone who reloads the page five times in a day is one visit; someone who comes back on three different days is three visits. The same on every page type.
  2. Added to cart — visitors who added a product to cart on this page, counted the same way.
  3. Orders — orders with a product added to cart on this page.

Each cell shows the stage’s count, a sparkline trend, and a step-to-step conversion-rate badge floating between cells (e.g. “2.5%” between Visits and Added to cart = the % of visits that added to cart — the page’s ATC rate).

Beside the Visits number sits the page’s unique visitors — see below. When comparison is on, each count carries its change against the comparison period, and a dashed outline beside each bar shows the comparison period’s level.

The last cell carries the CVR label — page conversion rate — with its own sparkline and, when comparison is on, its own change.

How CVR is calculated

CVR = orders ÷ visits.

Specifically:

  • Orders = orders with a product added to cart on this page. The add to cart is what ties an order to a page, so an order counts for the page that sold it, not for every page the shopper passed through.
  • Visits = people who were on this page in the date range, once per visitor per day.

A few intentional design choices worth knowing:

  • Visits, not page views. A visitor who refreshes the same product page 5 times in a day is 1 visit, so the rate measures people rather than reloads. It is a different count from Shopify’s sessions, which split one person’s morning and evening visits into two.
  • The order doesn’t have to be on the same visit. If someone added the product to cart on this page yesterday and checked out today, the order counts for this page.
  • Orders from visitors who added to cart elsewhere are not in CVR. Those are this page’s assisted orders, shown in their own card and in the Channels total.
  • Inline ATC counted at the page. If a collection page has inline Add to Cart buttons (a collection grid with quick-add), adds to cart on the collection are counted in its Added to cart stage.

Unique visitors and orders after a visit

  • Unique visitors, beside the funnel’s Visits number — the people who visited this page in the date range, each counted once however many days they came back. Visits counts the same people once per day, so unique visitors is never more than visits, and the gap between the two is how much the page’s audience comes back. A shopper whose visitor id changed between visits (a new device, or cleared cookies) counts once only where the page saw the same person behind both ids.
  • Orders after a visit, the first chart of Performance over time’s second row — orders this page’s visitors placed within a chosen time of their latest visit to it: 1, 7, 14 or 30 days, or All for no limit. Pick the window in the chart’s own header. The line under the number splits it into orders added to cart here and assisted orders. All matches the Channels total.

The time control also sets the What this page’s buyers bought card, so both count the same orders. A short window shows how many sales followed the page closely; a long one shows how far its influence reaches.

Conversion rate, expanded

The funnel carries two rates:

  • ATC rate: added to cart ÷ visits. The % of visits that started building a cart here — the badge between Visits and Added to cart.
  • Conversion rate (CVR): orders ÷ visits. The full visit-to-purchase rate, shown under the funnel’s last step with its sparkline.

The info icon beside the Overview title says what each number in the section counts or divides by.

ATC rate tells you whether your page is doing its job (getting people interested). CVR tells you whether the journey from this page finishes (getting them to buy). A great ATC rate paired with mediocre CVR usually means the checkout flow downstream is leaking; a mediocre ATC rate paired with great CVR usually means the people who DO add are highly qualified — the page just isn’t grabbing enough total attention.

What each card answers

Product order summary (product pages only)

At the top of the Overview on every product page, a summary card reconciles this page’s funnel against your full order count for the product:

  • Total — every order containing this product in the date range. This matches what you see filtering your own Shopify Orders list by product and date.
  • Began on this page — orders whose shopper added the product to cart from this page. This is what the funnel below counts.
  • Began elsewhere — the shopper added the product from a different page: a collection grid with quick-add, search results, a localized version of the page, or another product’s page (bundles, upsells).
  • No browsing session — orders that can’t be tied to any page: draft orders you created in the admin, subscription renewals, and shoppers whose browsers blocked tracking or declined consent.

The three buckets always add up to the total, so you can see exactly where every order came from before comparing numbers between Ordinary and Shopify.

Ads pointing at this page

Starter and higher. The Ads section, directly under the Overview, for any page an ad has pointed at or sent visitors to. On the Free plan this section shows a blurred preview. Four tiles answer the first question — is paid traffic still arriving here:

  • Last ad visit — the last day an ad sent a visitor to this page, and how many days of the date range have gone by without one.
  • Pointed here — how many ads (Meta) and campaigns (Google) had this page as their destination during the range, how many still do, and how many are active.
  • Via split test — visits that reached this page as a split test’s variant. When there are none, this tile shows Visits from ads instead.
  • Spend charged here — the ad spend counted against this page, and the orders added to cart here by the visitors those ads sent.

The tiles count all ads and campaigns in the selected range. The list shows up to 50, ranked by visits and then recent spend. When capped, “Showing 50 of N ads and campaigns” explains the difference; expanding quiet ads only reveals the folded rows within that list.

Dates include the year when it differs from the year at the end of your selected range — for example, Since 23 Sep 2025 in a September 2026 report.

Below the tiles, one row per ad or campaign, in groups:

  • Pointed at this page — the ad’s destination was this page.
  • Arrived through split test ”…” — the ad pointed at the test’s original page, and the test sent some of those visitors here instead. The group names the test, links to it, and names the page those ads point at. These ads are not counted as pointing here, and their spend counts on the page they point at.
  • No destination recorded — visitors arrived carrying the ad’s or campaign’s id, but there is no record of where it points.

A page that ads have pointed at for months can have dozens of old ads on record. Ads that pointed here during the date range but sent no visitors and spent nothing anywhere in it are folded into one row under the ads that did — for example 38 ads and one campaign with no visits or spend in this range. Click the row to open them, and again to fold them away.

Each row starts with the platform’s logo (Meta or Google) beside the ad’s name, and shows:

  • Visits — how many it sent here, with a bar for its share of all ad visits. The hatched part of the bar came through a split test.
  • Pointed here — a timeline across the date range. A solid bar is when the ad’s destination was this page, as the ad platform records it; Since 23 Jul under it is the day the ad was created with, or changed to, this page, taken from the ad account’s own history of changes. A bar with a soft left edge is Recorded since: the page was already the destination on the first day Ordinary has a record of, so it may have pointed here for longer. A bar whose left end is curved started before the date range and runs on past its start; a bar that starts inside the range has a square end. A faded bar, marked from traffic, is worked out from where visitors landed, because the ad platform has no record for that stretch. Hatched bars are visits through a split test, and the small tick is the ad’s last day of spend. A Google campaign can hold several ads, each with its own record: when they share a start date it is shown once, and when they differ the earliest is shown with how many more there are (Recorded since 12 Sep · +2 more). Point at it to see them all. If the ad now points at a different page, a link under the timeline names it.
  • Status — the ad’s delivery status in Meta (Active, Paused, Ad set paused, and so on) and the last day it spent anything. Google rows are campaigns and show the last spend day.
  • Spend here and Orders — the spend charged to this page and the orders added to cart here by visitors from that ad.

Bars are coloured by platform, the same colours as the Channels cards. The info icon beside each heading explains what it counts.

If an ad links to a page that redirects here, its visits and its destination count here. That includes a Shopify discount link whose redirect lands on this page.

Last ad visit is about traffic, not destinations: an ad can still list a page as its destination while it is paused and sending no one, which is why Pointed here says how many of those ads are active.

Performance over time

Small charts laid out like the Overview on Brand Pulse: two rows of three. The top row is money — Revenue, Profit and MER — and the second is customers — Orders after a visit, CAC and Product CAC. On a narrower screen they wrap to two across, then one, in the same order. Visits, adds to cart and orders, and their rates, are in the funnel just above. Each chart has its own scale.

  • Revenue is the orders added to cart on this page, net of refunds — the funnel’s Orders, and the same total as the Channels section’s “added to cart here” revenue.
  • Profit is what those same orders made: their revenue before tax, less what the items the customer kept cost when they were sold, less your per-order costs (fulfilment, shipping, and payment fees on the revenue after refunds) from Settings → Product Costs (the Other costs card). A returned item’s cost comes off along with its revenue; an item swapped out by an order edit never shipped, so it costs nothing. Tax is taken off because it is collected for the tax office, not earned — on a store whose prices include VAT that is a sixth of the revenue. The Revenue chart above includes the tax and matches Shopify’s total. Margin is profit ÷ revenue before tax. Under the number: the margin, how much of the revenue has a product cost when that is under 100%, any free items without a cost, and — on Starter and higher — profit after ad spend, taking off the spend the Ads section charges to this page.
    • With no per-order costs entered, the chart is headed Gross profit — revenue before tax less the cost of the items — and carries the link Add order costs to see net profit. Enter any of them and it becomes Profit, with what you entered taken off and the rest named under the number.
    • A ≤ in front means an item that sold for money has no cost, so the true figure is at most that. Items you gave away free with no cost don’t mark the figure; they are counted in a note instead (“12 free items without cost”, naming them), because they carry no revenue and their cost can only lower the figure.
    • When less than 70% of the page’s revenue has a product cost, the chart is replaced by how much is covered and a link to add costs. Profit needs the Financials or Offer Calculator feature; without it the chart is a blurred preview.
  • MER (Starter and higher) is this page’s revenue ÷ the ad spend charged to it, Meta and Google. It counts every order added to cart here, whatever brought the buyer. The list’s ROAS is different: it counts only the revenue from the page’s own ad visitors, under the attribution model. MER is blank when the page’s spend is under the store’s cost of one customer from ads, and reads ≤ when some Google campaign spend couldn’t be split by page.
  • CAC and Product CAC (Starter and higher) are the Ads section’s figures for the whole date range, under the attribution model in the page’s header, so they change when you switch model. A page with no product set shows No product set on Product CAC, with the same Set product action as the product line at the top.

MER, CAC and Product CAC draw a weekly line, because Google reports the spend behind a page one week at a time. Each week’s figure is held level across that week’s days rather than divided into them — a seventh of a week’s spend on a Tuesday is a number nobody measured — so pointing at any day reads the week it falls in, named as the week. A week of CAC needs at least 3 new customers from the page’s ads to be drawn — with fewer, one customer more or less would move it by half or more — and a week whose spend was under one customer’s cost at the store’s rate is left out of all three; point at a gap to see why. These three have no comparison change: their range figures come from the store-wide ad credit, which isn’t worked out for the comparison period.

Today’s figures fill in through the day, about once an hour, and every section of the page counts today’s visits up to the same point, so the charts, the funnel and the Channels cards always agree. The big number on each chart is the total for the date range, with the change against your comparison period beside it; when comparison is on, the comparison period is drawn as a dashed line. When the comparison period had a tenth of the current number or less — a page that barely existed before — the change reads new instead of a percentage in the thousands. When it had none at all, it shows a dash.

Point at any chart to read every chart for the same day. Revenue, Profit and Orders after a visit plot one point per day on every date range, however long it is; MER, CAC and Product CAC plot one per week, and read out the week that holds the day you are pointing at.

Devices

How this page’s visits split across mobile / desktop / tablet, counted the same way as the funnel’s Visits, so the three cards add up to it. If any visits had no device recorded, a line under the cards says how many. Often very different from the store-wide breakdown — paid social pages skew mobile, organic-search-heavy pages skew desktop. If a product page is mostly mobile and the ATC rate is low, your mobile-checkout experience is the first thing to audit.

Channels

The section header gives the page’s visits, and every order its visitors placed, split in two:

  • Added to cart here — the funnel’s Orders.
  • Assisted — placed after a visit to this page, with the add to cart on a different one. The same orders as the Assisted orders card.

Each order is counted once, under the channel of the buyer’s last visit to this page before buying. So a shopper who arrived from a Meta ad and bought a week later through an email link counts under Meta here.

Then one card per channel — Meta, Google, Klaviyo, Direct, and so on — each the full width of the page, with two bars on the same scale side by side (stacked on a phone):

  • Visits — that channel’s share of this page’s visits. This is which channels you’re putting in front of this page.
  • Orders — that channel’s share of the orders, with the revenue behind them (net of refunds) and the split between added here and assisted.

The cards add up to the section header, on visits, on both kinds of order and on revenue. Revenue throughout this section is net of refunds: the refunds recorded so far on these orders are already taken out.

The gap between the two bars is what the card is for. A channel with a long Visits bar and a short Orders bar is sending people who don’t buy; the reverse means a channel punches above the traffic it sends. The two bars are not a conversion rate for the channel — the orders bar includes assisted orders, which by definition didn’t convert on this page. The week-by-week table has the channel’s real conversion rate.

On a laptop or larger screen each card splits: the two bars, the mediums and the campaigns landing here down its left quarter, and the week-by-week table across the other three quarters. On a narrower screen the card stacks: the bars, the mediums table, the campaigns, then the weeks. Inside each card:

  • Mediums — what the channel is made of (cpc, organic, email, product_sync, and so on), with visits, orders and revenue per medium, adding up to the card. In the left column the list is compact: assisted orders show as a small +N beside the orders (point at it for the count); on a narrower screen the table gives them their own column, like the week-by-week table. Traffic arriving with no medium tag shows as untagged. Long lists collapse behind “Show more”.
  • Campaigns landing here — the Meta, Google Ads, and Klaviyo campaigns that brought visitors to this page, with how many, listed under the channel that ran them. If someone clicked a Meta ad, landed on the homepage, then browsed to this page, the Meta campaign still gets credit for the visit.

Channels accounting for under 1% of both visits and orders are collected into a single Other card, which still names each one so nothing disappears.

Week by week

Under each channel card is that channel’s own week-by-week table, in your store’s timezone: visits, adds to cart, ATC rate, orders, CVR, assisted orders, revenue, AOV, ad spend and cost per order, one row per week. Ad spend, cost per order and the ads inside each week are part of Starter and higher; on the Free plan the tables show the other columns, with a blurred preview of spend and cost per order above the channel cards.

Each channel gets its own table rather than everything sharing one. A page’s story is nearly always one channel changing while the rest hold steady, and a blended table hides exactly that.

The Visits column is the same count as the funnel at the top of the page — once per visitor per day, credited to the channel they arrived from. Summed across every week and every channel it equals the funnel’s Visits for the same date range.

Orders, revenue, AOV, CVR and cost per order are about orders added to cart on this page, the funnel’s Orders. Revenue and AOV are net of refunds. Cost / order divides the week’s ad spend by those orders, so refunds don’t move it; it is a cost per order, not the page’s CAC, which divides spend by the new customers its ads brought in (the Ads section and the CAC chart). Assisted is the channel’s other orders from that week’s visitors, kept out of CVR and cost per order. Down each table, the Orders column adds up to the card’s “added here” figure and the Assisted column to its “assisted” figure.

Expand a week to see what ran inside it, with the same columns per row. Meta expands to individual ads; Google expands to campaigns, because Google’s own tagging puts the campaign on the landing link and never the individual ad. Either way these come from the tracking parameters on the link the visitor actually arrived with, so they appear whether or not the platform’s own reporting has been connected.

Meta ad spend counts on the page the ad pointed at, on the days it pointed there. An ad that pointed at another page until the 4th and at this page from the 4th counts here from the 4th only. Visitors who reached this page through a split test, or from an ad pointed at a different page, show that ad with $0 spend and name the page the spend counts on instead — so no dollar is counted on two pages. Google spend follows Google’s own report of what each landing page cost.

A week with ad spend and no visits still gets a row, tinted so it stands out. That combination is the finding rather than a hole in the data — money went out and nobody arrived on this page, usually because the ads were repointed at a different page or the link broke. A week with nothing at all has no row; a week with spend and nothing to show for it is the one you need to see.

Click any Orders number to open the orders behind it: order number, date, value net of refunds, and the ad that drove each one. When a refund changed an order’s value, its value before refunds is shown under it. The values add up to the week’s Revenue. Order numbers open the order; ads open the campaign that ran them.

With a comparison period selected, each week is compared against the week the same distance into that earlier period — week one against week one — not against whichever row happens to sit in the same place on screen.

Assisted orders

Orders placed after a visit to this page, where the add to cart happened on a different page. The card shows one bar split in two — orders added to cart here and assisted orders, each with its orders and its revenue net of refunds — and the two add up to the Channels total. Below it, one row per page where the assisted orders were added to cart, with its share of them, its orders and its revenue.

Only orders placed at or after the shopper’s first visit to the page in the date range count — an order from before they ever saw the page isn’t one the page helped sell.

This is the page’s influence rather than its conversion. A comparison page, an ingredients explainer or a blog post can be the reason a sale happens and never be the page anyone adds to cart from, so its own funnel makes it look like it does nothing.

Assisted orders are deliberately kept out of the funnel’s order count and out of CVR. Folding them in would raise the conversion rate of every page that merely sits on the path to a purchase, and would count one order on several pages at once — CVR would stop matching Shopify and stop matching its own history. They sit beside the funnel so you can read both.

One order can appear under more than one page in that list, so the shares can add up to more than 100%. It ranks where the demand landed rather than splitting the revenue between pages.

What this page’s buyers bought

In the Orders section, beside Assisted orders, one row per product that this page’s buyers ordered, in the time window set on the Overview’s Orders after a visit tile. Each bar is the share of those orders containing the product: the solid part was added to cart on this page, the light part was assisted. Under each bar: orders, units and net revenue.

  • Products, not product variants. Every size and option of a product is one row. The Product variants card below splits them.
  • Items listed at a price of 0 are left out. Free add-ons that come with a bundle, or a product you use to send replacements, are not products the buyer chose. The note under the Product variants card says how many units were left out.
  • Bundles are products of their own. A set that contains this page’s product is listed under the set’s name, not counted as the product.
  • An order with two products counts under both, so the shares can add up to more than 100%. Net revenue is each order’s revenue after refunds, split across the products in it, so it adds up once.
  • Edited orders count what the customer originally chose. When an order edit swaps one item for another — an out-of-stock size replaced by two smaller ones, say — the row is the original item, with the order’s revenue. The swapped-in items are listed in the note under the card.

It tells you what the page actually sells, which is not always the product it is about: a landing page for one product can mostly send people to another, or to a bundle.

Product variants

Below What this page’s buyers bought, for every product whose buyers chose between more than one Shopify product variant (for example Core, Essentials and Complete packs of one product). “Product variant” is Shopify’s variant of a product; “page variant” is a version of this page you are testing. Product variants are told apart by Shopify’s variant, not by SKU. It uses the same orders and time window as the products card.

For each product variant:

  • Share of orders: its share of the product’s orders.
  • Orders / 1k visits and Revenue / visit: divided by this page’s visits, the same denominator as its conversion rate. Revenue per visit is the number to compare. A share can rise just because fewer people bought the others.
  • Revenue / order, New customers (first orders) and Refunded units.
  • Repeat in 90 days: of the buyers whose order here was their first with your store and included this product variant, the share who ordered again (any product, subscription renewals included) within 90 days of that first order. Cancelled orders, test orders and orders made up only of items listed at zero (replacements) are not counted as a repeat. Only first orders at least 90 days old count, so the line under the figure (“12 of 40 mature”) says how many buyers it is based on; “low sample” means fewer than 30, and ”—” means none of the first orders is 90 days old yet. The date range picks the first orders, so a longer range (for example the last 12 months) gives more buyers who have had time to come back. It loads a moment after the rest of the page.
  • Profit / order (Advanced plan): the same profit definition as the page’s Profit tile, split across the products in each order. “Gross profit” until you enter per-order costs. Shown as ”—” when too few of the orders have product costs.
  • Low sample: fewer than 30 orders. Read it as a direction, not a result.

Pre-selected on this page shows which product variant the page had selected when it loaded, day by day. Changing the default is a change to the page, so it is shown next to the results it can affect.

Added to cart here → what happened follows the shoppers who added each product variant to cart on this page: what share bought it, what share bought another product variant of the same product instead, and what share didn’t buy. It covers shoppers the pixel tracked, so read it as a rate. It loads a moment after the rest of the page.

By channel shows the top product’s product variant mix for each channel’s buyers, using the same channels as the Channels section (a buyer belongs to the channel that brought them to this page before they ordered). Each row shows that channel’s order count; channels with fewer than 30 orders are marked low sample. A page’s mix can change just because one channel sent more of its traffic, so use this as context: if every channel leans toward the same pack, the page is doing it.

On a page with versions, the whole-page view also shows the product variant mix by page variant, next to each version’s revenue per visit. Use the mix as background and decide on revenue per visit.

Payback (Advanced plan)

Does a customer from this page earn back what it cost to win them? The section’s Customer value vs CAC card sets this page’s CAC — its ad spend in the date range divided by the new customers its ads brought in, under the attribution model in the page’s header, the same CAC as the Page Performance list — against what a new customer is worth to your store:

  • First order — the average first order.
  • 90 days and 180 days — the average a new customer spends from their first order to 90 and 180 days later, including it. Only customers who have been with you that long count, averaged over recent months.

Each bar that reaches the CAC line has paid back, and the badge names the first one that does. Under the bars: how many customers order again within 90 days, and how many new customers the page’s ads brought in.

The ad spend is the same spend the week-by-week tables charge this page. Google campaign spend that Google can’t split by landing page is not charged here; when there is some, CAC is shown as a minimum, and the card only says a customer doesn’t pay back when even that minimum isn’t reached.

Customer value is revenue after refunds, not margin — product costs, shipping and fees are not taken off.

Subscriptions (product pages only)

For /products/* pages, the per-product subscription card shows new subscriptions, recurring reorders, and revenue split between the two — for this product specifically, not the store-wide total. Use it to evaluate which products subscribers actually stick around for.

Its revenue is net of refunds, valued the same way as the rest of the page, so an order-edit swap counts at what was actually sold. Subscription share compares that revenue with your whole store’s revenue for the period, also net of refunds.

Product clickthrough (collection pages only)

For /collections/* pages, a card shows what fraction of collection viewers clicked through to a product page within 30 minutes. Plus the top products they clicked. Complements the inline ATC count in the funnel above:

  • High clickthrough rate: collection is good at discovery — shoppers are clicking deeper.
  • Low clickthrough, high inline ATC: collection is doing the selling itself (quick-add buttons working).
  • Low clickthrough, low inline ATC: collection’s job isn’t landing — too many products? wrong sort order? broken images? This is the case to investigate first.

How page type affects the layout

Ordinary auto-detects page type from the URL and adapts the cards:

Page URLProduct order summarySubscription cardProduct-clickthrough card
/products/*✓✓ (per product)—
/collections/*——✓
Everything else———

“Everything else” covers your homepage (/), /pages/about, /blogs/<post>, and any custom pages. Every page type gets the same default cards (funnel, unique visitors, devices, channels, assisted orders, what the page’s buyers bought, and payback), and every funnel starts at Visits.

Getting told when a page goes quiet

A page can stop earning its traffic without anything on this screen looking wrong. When the ads pointing at a landing page end or get pointed somewhere else, the page keeps showing a conversion rate — just computed on a handful of visitors instead of hundreds. It can read as healthy while it is, in fact, no longer receiving anyone.

The bell in the page header, next to the star, is there for that. Click it and choose:

  • Tell me when traffic falls — how far below normal the page has to go. Default: below 20% of normal. “Normal” is this page’s own average over the previous 28 days, so a busy page and a quiet one are each measured against themselves rather than a store-wide number.
  • …and stays there for — how long the drop has to last before you hear about it. Default: 14 days. A shorter window catches it sooner but reacts to ordinary quiet weeks.
  • Where to send it — notifications in Ordinary, or notifications and an email. The email goes to your own account address.

Ordinary checks once a day. When a page crosses the line you get one alert, not one every day the drop continues; if traffic comes back, the page is eligible to alert again on the next real drop.

Two things worth knowing:

  • Pages under about 50 visits a week are never alerted on. At that volume a quiet fortnight isn’t a signal, and alerting on it would bury the ones that matter.
  • Alerts are per-person. Turning the bell on is your setting, not the team’s — a colleague watching the same page arms their own.

The bell fills in when an alert is on, so you can see at a glance which pages you’re watching. Click it again to change the settings or turn it off.

Tips

  • Compare two periods. Use the date-range picker to compare this month vs last month. Big CVR drops on a single page often reveal a recent change (a price update, an image broken, a checkout link wrong) before they show up on the store-wide CVR.
  • Cross-reference with the Channels and Ads sections. If a product page gets a traffic spike with weak CVR, check the page’s Channels cards and Ads pointing at this page section to see which channel or ad drove it, then click through to that campaign to see if the audience is mismatched.
  • Inline-ATC vs clickthrough on collections. A collection with quick-add buttons should have a healthy ATC count in the funnel; a traditional collection should have a high product clickthrough rate. Whichever path the collection is built to drive should be the one performing — if neither is performing, the collection page itself needs work.

Did this answer your question?

Thanks for your feedback! 🙌

Related articles