Shopify theme detector: how to read the answer, and when it is wrong
A Shopify store reports four theme fields and detectors pick different ones. How to read all four in one line, and the cases where detection fails.
GuideNovember 12, 2026 · 10 min read
A Shopify theme detector reads a small block of JavaScript that a Shopify storefront prints into its own HTML, and then shows you one of its fields: the name the merchant typed, the name the theme's code declares, its version, or its Theme Store id. Those fields disagree far more often than they agree, which is why two detectors can hand you two different answers for the same store. ShopLeads is our product and it sells store and contact data, so we say so; this page is about reading that block, and you need no tool at all to see it.
Paste a store into any of the free detectors and you get one line back. The useful version of that answer is all four fields at once, and it takes one command and no account. Ten storefronts were read for this page on November 9, 2026, each one a live Shopify store that day, and the readings below are theirs rather than any detector's.
Check a Shopify theme yourself in one line
Open the store, view source, and search the page for Shopify.theme. Or skip the browser:
That returns the whole object rather than one field of it. For ban.do on November 9, 2026 it answered: name "Gift Guides + F&F Sale - 11.2.26", schema_name "Pipeline", schema_version "6.4.0", theme_store_id 739. A detector that shows you the name field tells you this store runs "Gift Guides + F&F Sale". A detector that shows you schema_name tells you it runs Pipeline, which is the real answer and is sold in the Shopify Theme Store.
What each theme field means
Field
What it is
What it is worth
schema_name
The name the theme's own code declares
The answer you wanted: this is the theme family
schema_version
The version of that theme this copy declares
How far behind the store is, and whether it has been maintained
theme_store_id
Set when the theme was installed from the Shopify Theme Store
A number means you can go and look at the theme; null means custom or uploaded
name
Whatever the merchant typed in their admin
Close to nothing on a larger store: usually a release label or a campaign
id
Shopify's internal id for this copy of the theme on this store
Nothing at all outside that store's own admin
role
Whether this is the published theme for the storefront you asked for
Confirms you are reading the live theme, not an unpublished copy
Field names as printed by Shopify storefronts. The merchant controls the copy of the theme in their admin, and duplicating a theme before customizing it is the documented way to work (Shopify Help); the theme itself declares its own name and version in its code (Shopify.dev).
What ten real Shopify stores report today
This is the part the free tools cannot show you, because they answer one store at a time and show one field. Ten well-known storefronts, read on the same morning:
Read from each storefront's own homepage HTML on November 9, 2026 with the command above. A merchant publishing a new copy changes the name field, so expect these to move.
Read down the second column and then the third. Not one of the ten typed a plain theme name: they are release branches, dates, campaigns and backups. One of them literally says "BF backup". If the detector you used reported any of those strings as "the theme", it was reading the field a human typed rather than the field the code declares.
Reading the fields together
theme_store_id is a number: the store installed a theme from the Theme Store and you can go and look at it. One of the ten: ban.do, with schema_name Pipeline (Pipeline in the Theme Store).
theme_store_id is null but schema_name is a Theme Store theme: the store is running an uploaded copy, usually a developer's fork kept in Git. Four of the ten are forks of Dawn or Expanse. You can buy the same starting point; you cannot buy what they did to it.
schema_name is the brand's own word: GS2, allbirds-theme, Olipop, Liquid Death, Shopify Theme Lab: five of the ten. These themes were built for one store and are not for sale, so "which theme is this" has no useful answer beyond "a custom one".
The versions say who keeps their storefront current. Three of these stores run Dawn at 7.0.0, 10.0.0 and 15.4.1 at the same time. The 7.0.0 store forked years of releases ago and has been carrying its own patches since.
If you are shopping for a theme, the only rows worth your attention are the ones with a theme_store_id. Everything else is a brief for an agency, not a purchase.
Where a Shopify theme detector gets it wrong
1
The store is headless, so there is no theme to find
Hydrogen and Oxygen
A store built on Shopify's Hydrogen framework serves a React storefront instead of a Liquid theme, so there is no theme object in the page at all. We checked two: Chubbies and Hiut Denim both reference Hydrogen and Oxygen in their HTML and print no theme object, and Chubbies still answers /products.json as a Shopify store. Most detectors will tell you such a store is "not Shopify", which is wrong in the way that matters.
The better Shopify test is /products.json: it is served by the platform, not by the theme. cdn.shopify.com in the HTML is the second-best test.
A detector that reports "not Shopify" for a store whose checkout is clearly Shopify is almost always looking at a headless storefront.
2
The theme was renamed, so the detector reports a campaign
The commonest misread
Merchants rename themes constantly, because duplicating the live theme and labelling the copy is how you ship a change safely. The label ends up in the name field, and the name field is what the simplest detectors read. Every one of the ten stores above would be misreported, or half-reported, by a tool that trusts it.
A reading like brand/november-2026-signup is a Git branch, not a product.
When the name holds a date, you have learned something else worth knowing: roughly when the store last shipped.
3
The HTML never arrives
Bot filters and password pages
One store in our sample answered a plain request with a 403 and no HTML at all, so nothing could be read from it, and a detector would have to guess or fail. Development stores and unlaunched stores are a quieter version of the same problem: they sit behind a password page, and whatever theme that page runs is the theme you will be told about.
A detector that answers instantly for a store you cannot open yourself is answering from a cache, not from the store.
Check the date on any cached answer. A theme reading from last quarter is a guess about today.
4
One storefront is not one theme
Markets and A/B copies
Larger brands publish different themes to different markets and keep unpublished copies live for testing. The object you read carries role: "main", which tells you it is the published theme for the storefront you requested, from the country you requested it from. One of the ten stores above names its theme "Production US", which is a merchant telling you plainly that there is another one.
Request the market you care about, not just the root domain.
Two detectors disagreeing can both be right if they were served different markets.
Finding stores by what they run, instead of checking one at a time
A detector answers "what does this store run". If you sell themes, apps, or development work, the question you actually have runs the other way: which stores run the thing I support, and who at those stores decides. No lookup tool answers that, because a lookup is one store deep. You need an index you can filter, and then a person.
Pick the signal you really sell against. A theme family is a weak one: forks make it unreliable, as the table above shows. An installed app, a missing app or a sales band is far more stable.
Filter a store index down to it, and keep only the stores that look like real brands rather than resellers and dropshippers.
Add the person before you export: decision-makers only, in the departments you sell to, with a work email that has been checked.
Read the store page before you write. Its installed apps, whether it also sells through other retailers, and its product list give you the one specific line that makes an email look addressed.
So treat theme as something you read one store at a time, and treat installed apps as the thing you filter a list on. ShopLeads holds each store's apps and technologies as named filters, alongside tech gaps such as no reviews app or no loyalty program, and pairs every store with its decision-makers in the same search; it carries no theme filter, which is the honest answer to why this post is a per-store method rather than a query. Search and counts are free and contacts stay masked until you unlock one, and signing up is open on the 7-day trial. Start at the Shopify store directory, then start the free trial or read the pricing page.
Before you trust any theme answer, confirm the store is a Shopify storefront at all: curl -s https://example.com/products.json returning JSON, or cdn.shopify.com in the homepage HTML. A detector that guesses from the design will describe a WooCommerce store to you with total confidence.
Open the store's page source and find Shopify.theme. The schema_name field is the theme family and the real answer, schema_version is the version that copy declares, and theme_store_id is a number only when the theme came from the Shopify Theme Store.
Why do two Shopify theme detectors give different answers?
Because they read different fields of the same object. One reports the name the merchant typed, which is usually a release or campaign label, and the other reports schema_name, the name the theme's own code declares.
Can you detect the theme of a headless Shopify store?
No. A Hydrogen storefront serves React rather than a Liquid theme, so there is no theme object to read and nothing to detect. Test whether the store is on Shopify with /products.json instead, which the platform serves regardless of the front end.
Is a Shopify theme detector accurate for custom themes?
It can tell you a theme is custom and little else. When theme_store_id is null and schema_name is the brand's own word, the theme was built for that one store and is not for sale anywhere.
How do I find Shopify stores by the theme they run?
Not with a detector, which answers one store at a time. You need a store index you can filter and then the person to contact; ShopLeads filters stores by the apps and technologies installed rather than by theme, and pairs every store with its decision-makers.