Shopify bot traffic checker

This free checker reads a sessions export from your own Shopify admin and shows how many sessions Shopify classified as bots, which countries they came from and which pages they landed on. It runs in your browser: the file is never uploaded, stored or sent anywhere.

How do I check my Shopify store for bot traffic?

To check a Shopify store for bot traffic, run two ShopifyQL queries in your Shopify admin, export the results as CSV and drop the files below: the checker shows the share of sessions Shopify classified as bots, by country and by landing page. It takes a few minutes, and the files never leave your browser.

We tested it on 10 October 2026 with real exports from X Shield’s demo store. You need access to the store’s reports in its Shopify admin.

Step 1: Run the two queries in your Shopify admin

Each link opens Analytics → Reports in your Shopify admin, with the query already loaded, in a new tab. If you work in more than one store, the link may open a different one from the store you mean, so check the store name before you export. Neither query filters out bots, which Shopify’s own session reports do by default.

Query 1: Sessions by country, human or bot

FROM sessions
  SHOW sessions, sessions_with_cart_additions, sessions_that_reached_checkout,
    sessions_that_completed_checkout
  GROUP BY session_country, human_or_bot_session
  SINCE startOfDay(-30d) UNTIL today
  ORDER BY sessions DESC
  LIMIT 1000

Open query 1 in your Shopify admin

Query 2: Sessions by landing page, human or bot

FROM sessions
  SHOW sessions, sessions_with_cart_additions, sessions_that_completed_checkout
  GROUP BY landing_page_path, human_or_bot_session
  SINCE startOfDay(-30d) UNTIL today
  ORDER BY sessions DESC
  LIMIT 1000

Open query 2 in your Shopify admin

Step 2: Export each result as CSV

  1. Click Export at the top of the report (on a narrow window it may be under the ⋯ menu). You don’t need to save the report first.
  2. Choose Comma Separated Values (CSV) and All results from the data query, then click Export. The file downloads with the report’s name and dates, such as “Sessions by location - 2026-09-10 - 2026-10-10.csv”.

If the Unsaved changes bar covers the Export button, collapse the admin’s sidebar or widen the window. Labels checked in a Shopify admin on 10 October 2026.

Step 3: Check the files here

This step needs JavaScript, which is off or blocked in your browser. You can still read the export yourself: see how to read the export without the checker.

How do I read the export without the checker?

To read a Shopify sessions export by hand, open the CSV in a spreadsheet and add up the Sessions column twice: once for the rows marked bot, once for all rows. The first total divided by the second is your bot share. Sort the bot rows by Sessions to see where the bots come from.

ColumnWhat it counts
Session countryThe country the visitor was in (query 1)
Landing page pathThe first page of the visit; your home page is / (query 2)
Human or bot sessionShopify’s verdict on the visit: human or bot
SessionsVisits to your online store
Sessions with cart additionsVisits in which something was added to the cart
Sessions that reached checkoutVisits that reached the checkout page (query 1)
Sessions that completed checkoutVisits in which a purchase was completed

Field definitions: Shopify’s ShopifyQL sessions schema. In the country export, a country whose sessions over 30 days never once add to cart or complete checkout deserves a second look, even where Shopify says they were human: a person who never shops and a bot Shopify didn’t catch look the same here.

Example exports from X Shield’s demo store, 10 September to 10 October 2026

Query 1, as Shopify exported it (it downloaded as “Sessions by location - 2026-09-10 - 2026-10-10.csv”). The demo store’s storefront is password-protected, so it gets few visitors.

"Session country","Human or bot session","Sessions","Sessions with cart additions","Sessions that reached checkout","Sessions that completed checkout"
"India","human",28,0,0,0
"Vietnam","human",18,0,0,0
"United States","bot",9,0,0,0
"France","human",2,0,0,0
"Canada","human",2,0,0,0
"United States","human",2,1,1,0
"Italy","human",1,1,1,0
"Pakistan","human",1,0,0,0
"Japan","human",1,0,0,0
"French Polynesia","human",1,0,0,0
"Switzerland","human",1,0,0,0

Query 2, with the handles of two unlisted test pages replaced by page-a and page-b.

"Landing page path","Human or bot session","Sessions","Sessions with cart additions","Sessions that completed checkout"
"/","human",43,2,0
"/pages/page-a","human",12,0,0
"/","bot",9,0,0
"/pages/page-b","human",2,0,0

How does Shopify decide which sessions are bots?

Shopify decides which sessions are bots by checking each event on your online store “against a set of criteria” and then labelling the whole session human or bot; the checker only counts those labels. The classification is cautious by design: Shopify says “it's better to miss some bots than incorrectly label real customers as bots”, so read the bot share as a minimum.

  • Only sessions from 7 October 2025 onwards are classified: Shopify “can't retroactively classify older sessions”.
  • Since Shopify’s session measurement update, rolled out from 21 to 23 September 2026, identified bot sessions are filtered out of session-related reports by default. The two queries above count both kinds.
  • The same update ends a session after 30 minutes of inactivity, and Shopify asks you to treat data from after the update as a new baseline. If your period starts before 21 September 2026, the report itself warns that results “may shift”: compare it only with periods after the update.

Sources on help.shopify.com, checked 10 October 2026: Bot filtering in Shopify analytics and reports and Changes to sessions and conversion rate in Shopify Analytics. Exporting is described in Exporting reports.

What should I do with my result?

What to do about the bot traffic the checker finds depends on what it costs you: Shopify already keeps the bot sessions it identifies out of your session reports, which is enough if reports are your only concern. Block traffic on your storefront only when bots cost you something else, such as copied prices and catalogue, or ad audiences built from automated visits.

OptionWhat it doesWhat it can’t do
Shopify’s bot filterLeaves the bot sessions Shopify identifies out of session reports, by defaultStop a single visit: it hides bots, it doesn’t block them
robots.txtAsks named crawlers to stay awayStop scrapers: Shopify calls its rules “directional and advisory”
MarketsLimits where you sellStop browsing: customers outside your markets “can browse your store, but can't complete a purchase”
A storefront blocker appTurns visitors away on storefront pages by country, IP address or network, and catches some bots and VPNsStop bots that never run JavaScript, requests to /products.json, or anything at checkout

X Shield, which we build, is a storefront blocker: visitors you block by country, IP, VPN or bot rules stay out of your Shopify Analytics, and its dry run lets you test a rule without blocking anyone. It works as JavaScript on your storefront pages, so it can’t stop bots that never run JavaScript, requests to /products.json or anything in Shopify’s checkout. See X Shield, a free country and bot blocker for Shopify.

What the data-centre cities in your reports mean, and each way to block, with its trade-offs: Bot traffic from Singapore and China, explained. What X Shield blocked across Shopify stores, month by month: the monthly Shopify bot traffic report.

Is my data private?

Yes. The checker reads your export with your browser’s own file reader and works everything out on your device; nothing is uploaded, stored or sent to us or anyone else.

  • This page’s Content-Security-Policy includes connect-src 'none', so the browser refuses any connection the page’s scripts try to open, ours included, and the page can load nothing from another site.
  • No cookies and no analytics, and nothing from your file is stored: close or reload the tab and it is gone.
  • To see it for yourself, open your browser’s developer tools on the Network tab and check a file: no request appears. Or load this page, disconnect from the internet, and check a file.
  • The two queries group sessions by country and by landing page, so the exports hold no customer names, email addresses or IP addresses.

The rest of the site is covered by the privacy policy.

Frequently asked questions

Why are these numbers higher than my Shopify sessions report?

The checker’s session totals are higher because Shopify’s session reports leave out identified bot sessions by default, and the two queries here count both kinds.

Why does the checker find no bots?

The checker finds no bots when Shopify identified none, which its cautious classification allows, or when the export was filtered to human sessions. Shopify’s own Sessions by location report carries that filter, so export the queries above unchanged. Shopify doesn’t classify sessions from before 7 October 2025.

Can I check a different period?

Yes. In both queries, change -30d in startOfDay(-30d) to the number of days you want, such as -90d, then export again. Shopify labels only sessions from 7 October 2025 onwards.

What if my Shopify admin isn’t in English?

We have tested the checker only with exports from an admin in English, whose column names are English. If yours are named in another language, the checker matches the columns of these two queries by their position and says so under your results. If a number looks wrong, email support@b2bgold.app.

Is the checker free?

Yes. The checker is free, with no account and no sign-up, and it reads files of up to 10 MB, far more than these exports need.