How to Check if a Website Is Shopify: 8 Quick Checks
Eight quick ways to tell if a website is Shopify, from page source and headers to /cart.js, plus how to spot headless stores and tell WooCommerce or Wix apart.
Roasan Team11 min readTürkçe

The fastest way to check if a website is Shopify is to open yoursite.com/cart.js in your browser. If you get back a short block of JSON with "token", "items" and "item_count", the store runs on Shopify. If you want a second opinion, view the page source and search for myshopify.com: almost every Shopify theme prints the store's internal .myshopify.com address in a line that starts with Shopify.shop =.
Those two checks settle most cases in under a minute. The rest of this guide covers the other signals, which ones you can trust, and the one case where all the easy checks fail: headless stores built with Hydrogen or another custom frontend.
We tested every check below against live Shopify storefronts in October 2026. Some advice that still circulates online, like looking for an x-shopid header, no longer works, and we point that out where it applies.
Add /cart.js to the store's domain, for example example.com/cart.js. On a standard Shopify store you get a JSON response that starts like this:
{"token":"...","note":null,"attributes":{},"original_total_price":0,"total_price":0,"item_count":0,"items":[] ...This is Shopify's Ajax cart endpoint and every Online Store theme has it. It works even on stores that have customised everything else. A WooCommerce or Wix site returns a 404 page or redirects to the homepage.
Reliability: very high for normal Shopify stores. It fails on headless storefronts (see below), which return a 404.
Right-click the page, choose "View page source" (or press Ctrl+U, Cmd+Option+U on a Mac) and search for myshopify.com. On a Shopify store you will usually find a line like:
Shopify.shop = "storename.myshopify.com";Every Shopify store has a permanent .myshopify.com address, even if it uses a custom domain. On the stores we checked, myshopify.com appeared 15 or more times in the homepage HTML. While you are in the source, window.Shopify, Shopify.theme and ShopifyAnalytics are equally strong tells.
Reliability: very high. A non-Shopify site has no reason to reference myshopify.com dozens of times.
Older guides tell you to look for cdn.shopify.com. That still helps, but Shopify now serves most theme files and images from the store's own domain under the path /cdn/shop/. A product image URL looks like:
//example.com/cdn/shop/files/product-photo.jpg?v=1791588884&width=800On one store we checked, the homepage referenced /cdn/shop/ 474 times and cdn.shopify.com only 20 times. So search the source for both. Either one in quantity is a strong signal.
Reliability: high. The /cdn/shop/ path pattern is specific to Shopify. A few non-Shopify sites hotlink images from cdn.shopify.com, so one stray reference proves little; hundreds do.
Open your browser's developer tools (F12), go to the Network tab, reload the page and click the first request (the HTML document). In the response headers, a Shopify storefront currently sends:
powered-by: ShopifyYou will often see shopify-complexity-score headers and a server-timing header that mentions theme and pageType too. From the command line, curl -I https://example.com shows the same.
A note on outdated advice: many articles list x-shopid, x-shopify-stage or x-sorting-hat-shopid as the headers to look for. On the live stores we tested in October 2026, none of them were present. If a guide tells you to look for those and you don't find them, that does not mean the site isn't Shopify.
Reliability: high. The header comes from Shopify's servers, not from the theme, so merchants don't normally strip it. The server header usually says cloudflare, which tells you nothing on its own, since Shopify's edge sits on Cloudflare.
Shopify exposes a public product feed at /products.json and a small store profile at /meta.json. The second one is especially telling: it returns the store's numeric ID, name, city, country, currency and its myshopify_domain.
{"id":12345678,"name":"...","city":"...","country":"US","currency":"USD","domain":"www.example.com","myshopify_domain":"..."}/collections/all.atom (an Atom feed) is another Shopify-only path that still responds on standard stores.
Reliability: high when they respond. A small number of stores restrict these endpoints with apps or edge rules, so a 404 here is not proof the site isn't Shopify.
Type /admin after the domain. On a Shopify store you are redirected to storename.myshopify.com/admin, Shopify's login screen. You don't need to log in; the redirect is the signal. It also reveals the store's .myshopify.com name if the source didn't.
A WordPress site sends you to /wp-admin or wp-login.php instead, which tells you just as much.
Reliability: high. This one even worked on the Hydrogen demo store we tested.
Add something to the cart and click checkout. Shopify's checkout now runs on the store's own domain under a path like /checkouts/cn/.... Many guides still say checkout happens on checkout.shopify.com, which was true years ago and no longer is. If the shopper is logged into Shop Pay or the store pushes it, you may be bounced to shop.app/checkout/... instead.
Reliability: high, but it takes more clicks than the checks above, so use it as confirmation rather than a first step.
Run nslookup example.com (Windows, macOS and Linux all have it). A store on Shopify's hosting usually resolves to shops.myshopify.com, and the IPv4 address is in Shopify's 23.227.38.x range. Both stores we looked up pointed to 23.227.38.74.
Reliability: high for stores on Shopify's hosting, but it's the most technical of the eight and rarely needed.
<meta name="generator" content="Shopify">.| Signal | Where to look | Reliable? |
|---|---|---|
/cart.js returns cart JSON | Browser address bar | Yes, except headless stores |
Shopify.shop = "....myshopify.com" | Page source (Ctrl+U) | Yes |
/cdn/shop/ or cdn.shopify.com in asset URLs | Page source, image URLs | Yes, in quantity |
powered-by: Shopify header | DevTools > Network > response headers | Yes |
If you don't want to do any of this by hand, paste the URL into our free Shopify checker. It runs the same checks and tells you in a few seconds.
Check if a site is on Shopify
Try it freeSome larger brands keep Shopify as their backend (products, inventory, checkout) but build the storefront themselves, either with Hydrogen, Shopify's own React framework, or with something like Next.js on Vercel. These are called headless storefronts, and they break the easy checks.
On the Hydrogen demo storefront we tested:
/cart.js, /products.json and /meta.json all returned 404.Shopify.shop line and no /cdn/shop/ paths.cdn.shopify.com (over 300 references on the homepage).powered-by: Shopify, Oxygen, Hydrogen. Oxygen is Shopify's hosting for Hydrogen, and there was also an oxygen-full-page-cache header./admin still redirected to a .myshopify.com address.So for a suspected headless store, check in this order: response headers for Hydrogen or Oxygen, then image URLs for cdn.shopify.com, then /admin, then the checkout. A headless store hosted outside Oxygen won't send the Hydrogen header, but it almost always still serves product images from cdn.shopify.com and hands off to Shopify's checkout.
Headless stores are a small minority. Most of the roughly 1.6 million active Shopify stores Roasan tracks run a regular Online Store theme, where /cart.js answers the question on the first try.
Often the real question is "is this website Shopify or WordPress". Here is what each platform leaves behind, based on what we saw in page source and headers this month.
| Shopify | WooCommerce (WordPress) | Wix | |
|---|---|---|---|
| Page source | Shopify.shop, myshopify.com, /cdn/shop/ | wp-content, wp-includes, woocommerce- CSS classes | static.wixstatic.com, static.parastorage.com |
| Generator meta tag | None | WordPress x.x and often WooCommerce x.x |
A quick rule: if the source mentions wp-content, it's WordPress, and woocommerce in the class names makes it a WooCommerce store. If it mentions wixstatic, it's Wix. If it mentions myshopify.com and /cart.js works, it's Shopify. BigCommerce, Squarespace and Magento each have their own tells, but these three cover most small and mid-size stores you'll run into.
Confirming the platform is usually step one. What people want next:
Shopify.theme with a name field, though merchants often rename their copy. Our theme detector reads it for you.No. Being on Shopify tells you which software the store uses, nothing more. Shopify hosts well-known brands and one-person shops, and it also hosts stores that ship late, ship something different from the photos, or never ship at all. Anyone can open a Shopify store with an email address.
What Shopify does give you is a known checkout. Payments go through Shopify's checkout rather than a form the store built itself, which reduces one kind of risk, but it says nothing about whether the seller delivers.
If you are deciding whether to buy from a store you don't know, check things that actually relate to the seller:
Add /cart.js to the domain in your browser. If you see JSON with "token" and "items", it's a Shopify store. Then press Ctrl+U and search for myshopify.com to confirm.
Yes. Roasan's Shopify checker at /tools/shopify-checker is free. Paste a URL and it runs the platform checks for you.
Partly. A merchant can remove the footer link and rename the theme, but the powered-by: Shopify

Guide13 min read

Guide13 min read

Guide11 min read
/meta.json returns store ID and myshopify_domain | Browser address bar | Yes when it responds |
/admin redirects to .myshopify.com/admin | Browser address bar | Yes |
Checkout on /checkouts/cn/ or shop.app | Click through to checkout | Yes, slower |
DNS points to shops.myshopify.com / 23.227.38.x | nslookup in a terminal | Yes, technical |
x-shopid, x-shopify-stage headers | Response headers | No, absent on stores we tested |
| "Powered by Shopify" footer text | Bottom of the page | No, easy to remove |
Wix.com Website Builder |
| Response headers | powered-by: Shopify | Varies by host; Link: </wp-json/> is common | x-wix-request-id, server: Pepyaka |
| Admin path | /admin → .myshopify.com | /wp-admin | No public admin path |
| Cart endpoint | /cart.js | /wp-json/wc/store/v1/cart | None public |
/cart.jsmyshopify.comcdn.shopify.comIn our October 2026 checks, live Shopify storefronts no longer sent x-shopid or x-shopify-stage. Look for powered-by: Shopify instead. You can get the numeric store ID from /meta.json if you need it.
Search the page source for Shopify.shop, open /meta.json and read myshopify_domain, or visit /admin and look at the address you are redirected to.
Roasan tracks roughly 1.6 million active Shopify stores as of October 2026. Other trackers report different totals depending on how they count inactive, password-protected and test stores. You can search and filter them by niche, theme and app on Roasan's store search.