A US apparel brand pulled up its Shopify dashboard on a call with us in July. Conversion rate month to date: 0.65%. Year to date: 0.81%. The kind of number that starts a conversation about the product page.
Then he applied one filter, and the year-to-date number became 1.67%.
Nothing on the site had changed. The only difference was excluding bot traffic from the denominator. Everything that brand believed about its own funnel had been built on a number that was roughly half of the real one.
Most coverage of this stops at how to filter. We have written that part separately, as a practical guide to diagnosing Shopify bot traffic. This article is about the harder half: what the wrong number already did to your benchmarks, your year-over-year comparison, your test history, and your ad platform, and how to restate all four.
What bot traffic does to the arithmetic

Conversion rate is orders divided by sessions. Bots almost never order, and they generate a great many sessions. Inflate the denominator and the rate collapses, without a single thing changing about how real customers behave on your store.
Shopify's own documentation is explicit that ecommerce stores have a specific problem here. General crawlers read content. Ecommerce bots simulate shopping behaviour to scrape pricing, inventory, and product data, which means they generate sessions that look superficially like browsing and contribute nothing to orders.
Some of that traffic is legitimate and you want it: search engines indexing products, social platforms generating link previews, price comparison services, uptime monitors. Blocking all of it costs you indexing and breaks sharing. The goal is not a bot-free store. It is a report that separates the two.
The one filter, and what it does not cover

Since October 7, 2025, Shopify Analytics includes a "Human or bot session" dimension. You can add it to any sessions report as a dimension to see the split, or apply it as a filter set to Human to see your real conversion rate.
Shopify's own worked example shows an unfiltered rate of 3.5% resolving to 4% human, with bots converting at 2% because some automated traffic does complete checkout events, typically from testing tools or automated purchasing.
Four limitations matter more than the feature itself.
It is not retroactive. Classification applies only to data collected after October 7, 2025. Sessions before that date cannot be reclassified.
It only covers sessions-related metrics. It is a reporting lens, not a global data correction.
It does not exist for Headless and Hydrogen storefronts. If you are on either, this article's diagnosis still applies and this particular tool does not.
It is deliberately conservative. Shopify would rather miss a bot than mislabel a real customer, which means the number it gives you is a floor, not a total.
There is a fifth limitation that is structural rather than a design choice, and it is the one people miss. Shopify Analytics, GA4, and your advertising pixels are all JavaScript counters running in the visitor's browser. A bot that never executes JavaScript loads your pages, consumes your infrastructure, and remains invisible to all three. Whatever number your dashboards show, your network edge sees more.
Run the diagnosis in ten minutes

Open any sessions report, add the "Human or bot session" dimension, and set the range to the last 90 days. Write down two conversion rates: unfiltered, and human only.
Compute the gap. This is the number that matters, and almost nobody calculates it. If you want the full diagnostic sequence, including step-to-step rates rather than sitewide conversion rate, that is the companion piece. The gap between the two rates is the magnitude of the error in every decision you have made from that dashboard.
Interpret the gap honestly. Under half a percentage point is noise and you can stop reading. Between half a point and a full point, your channel comparisons are distorted but your directional conclusions probably survive. Above a full percentage point, your benchmarks are wrong and everything downstream needs restating.
Cross-check against geography. Put sessions by location next to orders by location. A country producing thousands of sessions and zero orders is the classic signature, particularly where those sessions cluster in known data centre locations rather than in your markets.
Look at the shape of the sessions. Single page view, near-zero time on site, no add to cart, at volume, from a source you do not advertise in. Any one of those signals alone is weak. All of them together, at scale, is close to certain.
The part nobody talks about: the damage is already done

Filtering fixes tomorrow's report. It does not fix the decisions you already made, and this is where the real cost sits.
Your benchmarks are wrong
If you have been running against a 0.8% target because that is what the dashboard said, and the human number is 1.7%, then every judgement anchored to that target was miscalibrated. Product pages you rebuilt because they "underperformed". A channel you cut. A seasonal comparison you read as a decline. Every number in your KPI dashboard that has sessions in the denominator inherited the same error.
Restate the baseline before you set another target. And annotate the date you turned the filter on, because every trend line that counts sessions breaks its history on that day, and in three months somebody will read the drop as a traffic problem.
Your year-over-year comparison is structurally broken
This one is underappreciated. Because Shopify's classification does not apply to data before October 7, 2025, you cannot construct a clean like-for-like comparison across that boundary. Your filtered 2026 conversion rate against your unfiltered 2025 conversion rate will show an improvement that is partly or wholly a measurement artefact.
Say that out loud in the reporting meeting before someone builds a strategy on it. If you need a comparable series, the only honest option is to compare unfiltered to unfiltered, and treat the filtered series as a new baseline starting from the date you adopted it.
Your CRO test history is contaminated
Every A/B test you ran before you started filtering had bot sessions distributed across both variants. If that distribution was even, your relative result probably holds and your absolute lift is understated. If it was uneven, which happens whenever one variant sits on a URL pattern that gets scraped differently, the result is unreliable.
The practical rule: trust the direction of old tests, discard the magnitudes, and rerun anything close to the significance threshold that you made a real investment decision on.
Your ad platform is learning from it
This is the most expensive consequence and the least visible.
Bot sessions that execute JavaScript fire your Meta pixel and your Google tags. Those platforms use your event stream to build their model of who is worth showing your ads to. Feed that model traffic that never buys, and it optimises toward sources that produce more of the same.
You are not just measuring badly. You are training badly.
Two mitigations are worth the effort. Move conversion tracking server side through Shopify's Customer Events or the Meta Conversions API rather than relying on browser-side pixels that a bot can trigger. And review your paid performance again after filtering, because your true cost per human acquisition may be materially different from the blended figure you have been optimising against.
When to go beyond filtering

Shopify's filter cleans the report. The bots still arrive, still load pages, still fire pixels, still count in every app you pay for by session.
If your measured bot share is modest, the native filter plus disciplined annotation is a completely reasonable place to stop. If your diagnosis shows a large share, particularly concentrated in geographies you do not sell to, the only structural fix is filtering traffic before it reaches your store, which means putting an edge service in front of your domain.
That is a bigger decision with real operational caveats, and it is worth taking seriously only after you have measured. Measure first. Most stores that think they have a bot problem have a five to ten percent problem, and the ones that genuinely have one usually find something closer to half.
Key takeaways
- Conversion rate is orders over sessions. Bot traffic inflates the denominator, which makes your funnel look broken when it is not.
- Shopify's "Human or bot session" dimension has been available since October 7, 2025. It is not retroactive, it does not cover Headless or Hydrogen, it applies only to sessions metrics, and it is deliberately conservative.
- The gap between your filtered and unfiltered conversion rate is the size of your decision error. Above one percentage point, restate your benchmarks.
- Because classification starts in October 2025, year-over-year comparisons across that boundary are not like for like. Compare unfiltered to unfiltered, or start a new baseline.
- Bot sessions fire your advertising pixels, so they corrupt platform optimisation as well as reporting. Server-side conversion tracking limits the damage.
Before you rebuild a product page, make sure the number that flagged it was real. We audit measurement integrity as the first step of every CRO engagement. Request a CRO analysis



