How Theme Detectors Work, and Why They Sometimes Disagree
Inside a theme detector: the signals it reads, how confidence works, and the honest limits of detection.
Article Summary: A theme detector downloads a page, looks for platform fingerprints such as file paths, scripts and headers, then reads the platform's own theme record. Tools disagree when they trust different fields, such as a store's renamed theme label instead of the theme's internal name, or when a site blocks automated visits.
- Detectors combine several weak signals into one confident answer, so more matching signals means a more reliable result.
- Shopify themes have a free text label and a fixed internal name, and tools that show the label give misleading results.
- A browser extension reads the live page and sees scripts that load later; a website checks the raw HTML from a server.
- Bot protection and headless front ends are the most common reasons for an empty result.
Run the same store through three theme detectors and you can get three different answers. That isn't because detection is guesswork. It is because tools read different signals and trust different fields. Knowing how detection works lets you judge any result for yourself.
Step one: fetching the page
A detector starts by loading the page. A website does this from a server, which gets the raw HTML a first time visitor would receive. A browser extension reads the page you already have open, which includes anything that loaded after the first HTML arrived, such as chat widgets, review stars and marketing scripts.
That difference explains a lot of disagreements. A server request can be blocked by bot protection or see a slimmer page, while an extension sees everything a real visitor sees.
Step two: finding fingerprints
Next, the detector looks for evidence of a platform. Each piece of evidence is called a signal:
- File paths, such as
/wp-content/for WordPress or/cdn/shop/for Shopify - Scripts and globals, such as
Shopify.themeor Drupal's settings object - Generator tags, which name the platform directly
- Response headers, such as
x-shopidorx-drupal-cache - Asset domains, such as
wixstatic.comorframerusercontent.com
Some signals are conclusive on their own. Others only count when they agree with another. Any Theme Detector weighs each signal, reports the platform only when the evidence adds up, and labels the result "Confident" or "Likely". The "How we know" list under every result shows exactly which signals matched.
Step three: reading the theme
With the platform known, the detector reads that platform's theme record. On Shopify that is the Shopify.theme object. On WordPress it is the theme's style.css header. On Magento, PrestaShop and Joomla it is the theme folder in file paths.
This is where most bad results come from. On Shopify, the theme record contains a free text label the store can set to anything, alongside the theme's fixed internal name and Theme Store ID. A tool that shows the label will report "Copy of Live Theme" or a release tag. A tool that reads the internal name and ID reports the real theme. Our article on Shopify theme names covers this in detail.
Why results differ between tools
| Cause | What you see | Which result to trust |
|---|---|---|
| Renamed Shopify theme | One tool shows a label, another a theme name | The one matching the Theme Store or schema name |
| WordPress child theme | One tool shows the child, another the parent | Usually the parent, which is the product |
| Bot protection | One tool finds nothing | The one that loaded the real page |
| Late loading apps | Only the extension lists some apps | The extension, which saw the live page |
| Outdated theme list | A new theme shows as unknown | A tool that reads the theme's own name |
The honest limits of detection
No detector can name a theme the platform never publishes. Wix, Squarespace 7.1, Webflow and Framer copy templates into each site without a name. Headless sites have no theme. Fully custom themes can be named, but not bought. A trustworthy tool says which of these you are looking at, instead of guessing.
Frequently asked questions
Why do theme detectors give different results?
They read different fields and load the page in different ways. The most common difference is showing a store's renamed theme label instead of the theme's real internal name.
Are browser extensions more accurate than websites?
For apps and scripts, often yes, because an extension reads the live page including anything that loads later. For the theme itself, both are equally accurate when they read the right fields.
Why did a detector find nothing on a site I know is Shopify?
The site may be headless, password protected or blocking automated requests. Try the Chrome extension on the open page, which isn't affected by bot checks.