How to Track First-Time vs Repeat Customers in Shopify

Shopify already tracks first-time versus returning customers natively, no app required. The part worth understanding is exactly how it defines "returning," because that definition is different from how GA4 defines it, and the gap between the two explains a lot of confused reporting.

Where to Find This in Shopify Natively

Analytics > Reports and search for First-time vs returning customer sales, or the New vs returning customers report under Customer reports. Both show orders, sales, and customer counts split by first-time and returning, with a Group by option to view the data by hour, day, week, month, or year, and a Comparison option to check against a previous period.

How Shopify Actually Defines "Returning" (It's Identity-Based, Not Session-Based)

Per Shopify's own documentation, a first-time customer is someone who placed their first order with your store; a returning customer is someone who placed an order where their history already includes at least one prior order. That matching happens on the customer record, tied to an email address or phone number captured at checkout, not on a browser cookie or session. This is true whether the customer checked out as a guest or with a full account. If a shopper enters the same email both times, Shopify's Customer object matches the two orders together and correctly counts the second one as a returning purchase.

The One Thing That Actually Breaks This Tracking

Guest checkout itself doesn't break repeat-customer tracking. What breaks it is a shopper using different contact information across orders, a personal email the first time and a work email the second, for instance. Shopify has no way to know those two orders belong to the same person, so the second order gets counted as a new first-time customer even though it isn't. This is a real, structural gap, and there's no native setting that fixes it; it's simply a limitation of identity matching based on contact details alone.

Why This Differs From GA4's "New vs Returning" Report

GA4 determines new versus returning based on whether a browser has a recognized first-party cookie from a prior visit, a session-level, device-level signal. Shopify's version is a purchase-level, identity-level signal based on matching order records. A customer who clears cookies, switches devices, or uses a different browser will look like a new visitor to GA4 even on their fifth purchase, while Shopify's Customer report will correctly show them as returning as long as their email matches. Neither report is wrong. They're answering different questions: GA4 answers "is this the same browser session," Shopify answers "is this the same paying customer."

What Shopify's Native Report Doesn't Give You

Purchase frequency, meaning how many times the average returning customer buys within a given window, isn't available directly in Shopify's native customer reports and typically requires a third-party app or manual calculation from exported order data. The native report also won't break out revenue by acquisition channel crossed with customer type (new customers from Meta versus new customers from organic, for example) without combining it manually against your attribution data.

How to Use This for a Real Metric: New vs Returning Revenue Split

The single most useful number to pull from this report regularly isn't the customer count, it's the revenue split: what percentage of total revenue in a given period came from returning customers versus first-time customers. A growing returning-customer revenue share means you're building a real, durable asset. A flat or shrinking share, even while total revenue grows, usually means growth is being rented from ad spend rather than earned from the product and post-purchase experience. Track this split monthly, using the Comparison feature against the same period last year to control for seasonality.

A Quick Setup Checklist

Bookmark the First-time vs returning customer sales report so it's a two-click check rather than a search each time. Set Group by to month for your regular review, reserving weekly or daily views for investigating a specific spike or dip. Check your checkout settings to understand whether "Require customers to log in before checkout" is on or off, since that setting affects how often shoppers get prompted to make an account versus checking out as a guest with the same recognized email. Pull the returning-customer revenue share monthly, and watch its trend over time rather than any single month's number in isolation.

FAQ

How does Shopify know if a customer is returning?

By matching the email address or phone number on an order against existing customer records. A returning customer is one whose order history already includes at least one prior order under that same contact information. This works whether the customer checked out as a guest or with a full account.

Does guest checkout break repeat customer tracking on Shopify?

Not by itself. Shopify matches returning customers by email or phone number regardless of whether checkout was done as a guest or with an account. Tracking only breaks if the same customer uses different contact information across orders, which Shopify has no way to connect.

Why do Shopify and GA4 show different new vs returning customer numbers?

Shopify identifies returning customers by matching order records to an email or phone number, an identity-based signal. GA4 identifies returning visitors by browser cookies, a device-based signal. A customer who switches devices or clears cookies will look new to GA4 even on a repeat purchase, while Shopify correctly recognizes them as returning based on their contact details.

What is the most useful metric from Shopify's new vs returning customer report?

The revenue split between new and returning customers, tracked monthly. A growing returning-customer revenue share signals durable growth; a flat or shrinking share, even with rising total revenue, often means growth is being rented from ad spend rather than earned from repeat purchases.