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.
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.
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.
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.
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."
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.
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.
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.
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.
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.
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.
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.