<- Back to blog
Platform11 min readUpdated May 1, 2026

Shopify Analytics in 2026: A Complete Guide

How to set up analytics on Shopify in 2026: native reports, GA4 limits, cookieless options, theme.liquid install, custom checkout events, and the pitfalls that bite store owners.

shopify analyticsshopify analytics guideshopify google analytics alternativeshopify trackingshopify privacy analyticsshopify checkout tracking

TL;DR

  • 1.Shopify ships with decent native reports but the dashboard is slow, real-time is shallow, and anything custom requires Shopify Plus.
  • 2.GA4 on Shopify works, but checkout events broke twice in the last two years and consent banners eat 20–30% of the data in the EU.
  • 3.For most stores, a privacy-first script in `theme.liquid` plus a `purchase` event on the checkout success page is enough.
  • 4.Use `window.sleek("track", "purchase", { value, currency })` on the order status page — Shopify gives you `Shopify.checkout` to read totals from.
  • 5.Skip the Shopify App Store for analytics. App-store apps are mostly wrappers that slow your storefront down.

What Shopify gives you out of the box

Every Shopify store gets a Reports section with the basics: sessions, conversion rate, average order value, top products, top landing pages, and a Live View for real-time visitors. On Basic and Shopify plans you get a fixed set of reports. On Advanced and Plus you get custom reports.

For stores doing under $50K MRR, the native reports are good enough to answer "did the campaign work" and "what is selling this week." Past that volume you start running into the ceiling: reports take 10–60 seconds to render, the date picker is awkward, and any segmentation past the dropdowns means a CSV export.

The real reason store owners add a second analytics tool is not depth — it is speed and clarity. Shopify's dashboard is built to defend Shopify, not to make your daily growth review easy. The same query you run every Monday should take one second to load, not thirty. That sounds petty until you have spent 18 months running a store and the cumulative hours of waiting for reports start to feel like a real tax.

There is also a structural problem: Shopify Analytics treats your store as a closed system. If you run any traffic from a Webflow marketing site, a blog on Ghost, or a docs page on a different domain, none of it shows up. The conversion path that actually drives your business is invisible inside Shopify.

The limitations that push stores off Shopify-only analytics

  • Reports are slow. A 90-day top-products query on a busy store can take 30+ seconds.
  • No real-time funnel. Live View shows visitor counts but not where they are dropping out right now.
  • No cross-site view. If you run a marketing site on Webflow plus a store on Shopify, Shopify Analytics only sees the store.
  • Checkout extensibility breaks tracking. The migration from `checkout.liquid` to Checkout Extensions broke many GA4 / Meta Pixel implementations in 2024–2025.
  • No web vitals. Shopify will not tell you that your LCP is 4.2s on mobile — but Google ranking will quietly punish you for it.
  • EU compliance is on you. Shopify's native cookies + GA4 + Meta Pixel together require a real consent banner.

Install a privacy-first script on a Shopify theme

Adding a third-party analytics script to Shopify means editing your theme. The cleanest place is `theme.liquid` — the master template that wraps every page, including product, collection, cart, and the order status page.

Go to Online Store → Themes → ⋯ → Edit code, open `layout/theme.liquid`, and paste the snippet just before the closing `</head>` tag. Save. The script is now live on every storefront page.

layout/theme.liquid
<head>
  {{ content_for_header }}

  {%- comment -%} Sleek Analytics — privacy-friendly, cookieless {%- endcomment -%}
  <script async src="https://getsleek.io/v1.js" data-site="YOUR_SITE_KEY"></script>

  <link rel="canonical" href="{{ canonical_url }}">
  {{ 'theme.css' | asset_url | stylesheet_tag }}
</head>
tip:Always paste analytics scripts inside `<head>`, not at the end of `<body>`. The async attribute means the page will not block on the script, but having the snippet in head ensures the very first pageview gets recorded — including bounces that close the tab in under a second.

Track Shopify checkout success — the only event that matters

Pageviews are interesting; purchases are the point. Shopify's order status page (the page customers see after Stripe / Shop Pay confirms) is where you fire the conversion event. Shopify gives you a JS object called `Shopify.checkout` on this page with the order total, currency, and line items.

In your Shopify admin, go to Settings → Checkout → Order status page → Additional scripts. Paste the snippet below. It runs once per successful order and tells your analytics tool exactly how much money came in.

Settings → Checkout → Order status page → Additional scripts
<script>
  (function () {
    if (!window.Shopify || !Shopify.checkout) return;

    var value = parseFloat(Shopify.checkout.total_price) || 0;
    var currency = Shopify.checkout.currency || 'USD';

    // Wait for the analytics script to be ready
    function fire() {
      if (typeof window.sleek === 'function') {
        window.sleek('track', 'purchase', {
          value: value,
          currency: currency,
          order_id: Shopify.checkout.order_id,
        });
      } else {
        setTimeout(fire, 200);
      }
    }
    fire();
  })();
</script>

Custom events for add-to-cart, search, and key product views

Beyond purchase, the events worth tracking are the ones that predict revenue: add-to-cart, search-with-results, and views of high-margin products. Shopify exposes the cart via `/cart.js` and emits `cart:added` events on the Dawn theme line of templates.

For an add-to-cart event, hook into the form submit on `product-form` or listen for the theme's built-in event. The pattern is the same as the purchase event — call `window.sleek("track", ...)` with a sensible name.

Resist the urge to instrument every click. The shortlist that matters for a typical Shopify store is: product view, add-to-cart, begin-checkout, purchase, search-with-no-results, and newsletter signup. Six events. If you find yourself instrumenting twenty, you are building a data warehouse, not analytics.

snippets/sleek-events.liquid (include in theme.liquid)
<script>
  document.addEventListener('submit', function (e) {
    var form = e.target;
    if (!form.matches('form[action*="/cart/add"]')) return;
    if (typeof window.sleek !== 'function') return;

    var fd = new FormData(form);
    window.sleek('track', 'add_to_cart', {
      product_id: fd.get('id'),
      quantity: parseInt(fd.get('quantity') || '1', 10),
    });
  });
</script>

Pitfalls that bite Shopify stores

  • Theme updates wipe edits. If you upgrade Dawn or switch themes, your `theme.liquid` snippet disappears with it. Use a snippet file (`snippets/analytics.liquid`) and include it from `theme.liquid` so the install survives theme swaps.
  • Checkout Extensions vs `checkout.liquid`. Stores migrating to Checkout Extensibility lost any tracking that lived inside `checkout.liquid`. The order status page additional-scripts box still works.
  • Shopify Markets duplicates pageviews. If you run multi-region storefronts, the same shopper hitting `/en` and `/fr` is counted twice unless you canonicalize.
  • Bot traffic is heavy. Shopify stores attract a lot of scraping — make sure your analytics tool filters bots, or your "real" visitor counts will be inflated 30–60%.
  • App scripts pile up. Every Shopify app installs at least one script tag. After 6 months you can be carrying 10–15 third-party scripts, and that is the actual reason your LCP is bad.
warning:If your store uses Shop Pay's accelerated checkout, the customer can complete a purchase without ever hitting your `/cart` page. Make sure your purchase event fires on the order status page, not on a "checkout step 3" page that no longer exists.

How to use UTMs with Shopify campaigns

Shopify shows UTMs in the Sessions by source report, but it groups them in ways that hide detail. The fix is to keep your UTMs disciplined and let your secondary analytics tool do the slicing.

A working pattern: `utm_source` is always the platform (google, twitter, newsletter), `utm_medium` is paid vs organic vs email, `utm_campaign` is the offer name. Avoid `utm_content` for anything except A/B testing — it explodes your report cardinality.

When a customer reaches checkout, Shopify preserves the UTMs as order attributes. That means even if the customer comes back 3 days later, the original UTM is still attached to the order. You can pull this attribution from the Shopify Admin API later if you need to reconcile spend with revenue at the campaign level.

For paid campaigns specifically, prefix every campaign with the year and month (`utm_campaign=2026-05-spring-launch`). Six months from now, when you want to know which May campaigns drove which March returns, having the date in the campaign name saves a serious amount of time.

Alternatives to Shopify Analytics

The honest landscape in 2026: Shopify Analytics for the basics, GA4 for advertisers who need Google Ads conversion tracking, and a privacy-first tool like Sleek, Plausible, Fathom, or Simple Analytics for the daily growth review.

Shopify's own App Store has dozens of "analytics dashboards" — almost all of them are wrappers that read the Shopify Admin API and display it more nicely. They do not give you anything Shopify did not already have, and they slow your storefront down with another script.

For most stores under 1M sessions/month, the right setup is: Shopify Analytics for the storefront-specific metrics (returning customer rate, average order value, repeat purchase intervals) plus a single privacy-first analytics tool for traffic and conversion. Skip GA4 unless you are running Google Ads at scale.

  • Sleek — best for SaaS-shaped stores that want AI chat and Stripe-style revenue tracking
  • Plausible — open source, very minimal, popular in the Shopify community
  • Fathom — privacy-first, simple dashboards, EU-hosted option
  • Triple Whale / Polar — heavier "ecommerce intelligence" suites; more expensive
  • GA4 — only if you need it for Google Ads conversion tracking

A working setup that takes 10 minutes

  1. Pick a privacy-first analytics tool. For most stores Sleek, Plausible, or Fathom is the right call.
  2. Sign up, create a site, and copy your site key.
  3. In Shopify admin, go to Online Store → Themes → ⋯ → Edit code → `layout/theme.liquid` and paste the script tag inside `<head>`.
  4. In Settings → Checkout → Order status page → Additional scripts, paste the purchase event snippet.
  5. Place a $1 test order through the storefront, refund yourself, and check that the purchase event landed in your analytics dashboard.
  6. Add UTMs to your three biggest traffic sources (newsletter, paid ads, partner links) and verify they show up correctly.

Frequently asked questions

Does Shopify need Google Analytics?

No. Shopify's native reports cover the basics, and most stores are better served by a single privacy-first analytics tool than by adding GA4. The exception is stores running Google Ads at scale, where GA4 is needed for conversion tracking and audience building inside Google Ads.

Where do I add a tracking script in Shopify?

Edit `layout/theme.liquid` from Online Store → Themes → ⋯ → Edit code and paste the script tag just before `</head>`. For checkout/purchase events, use Settings → Checkout → Order status page → Additional scripts.

Why did my Shopify GA4 conversion tracking break?

Shopify migrated checkout from `checkout.liquid` to Checkout Extensions in 2024–2025. Any tracking script that lived inside `checkout.liquid` was effectively turned off. The order status page additional-scripts box still fires reliably and is where conversion events should live.

Can I track add-to-cart in Shopify?

Yes. Listen for form submits on `form[action*="/cart/add"]` and fire a custom event from your analytics SDK. On most modern Shopify themes you can also listen for the `cart:added` event the theme dispatches.

Do I need a cookie banner for Shopify analytics?

It depends on your stack. GA4 and Meta Pixel both require consent banners in the EU. Cookieless analytics tools (Sleek, Plausible, Fathom, Simple Analytics) do not require a banner under GDPR.

How accurate is Shopify Live View?

Live View shows raw active visitors and is reasonably accurate but does not filter bots well. If your Live View shows 200 visitors and your privacy-first analytics tool shows 80, the analytics tool is closer to ground truth — Live View is including a lot of crawlers.

What is the best Shopify analytics app?

Most "Shopify analytics apps" in the App Store are wrappers around the same Shopify Admin API data you already have. The bigger upgrade is adding a real privacy-first analytics tool (Sleek, Plausible, Fathom) for daily growth reviews and keeping Shopify Analytics for ecommerce-specific reports like repeat purchase intervals.

Track your own growth loop

Sleek Analytics gives you visitors, sources, pages, devices, and real-time behavior with one lightweight script. No cookies, no GDPR banners.

Related reading