CMS & Tech Stack Detector — See What Any Website Is Built On
Enter any URL to detect the CMS, JavaScript framework, analytics tools, CDN, and hosting. Every detection shows the exact signal that gave it away — no black box.
Enter any URL above to detect its CMS, JS framework, analytics, CDN, and hosting.
Works with any publicly accessible URL. Results include the evidence that triggered each detection.
How CMS Detection Works
Every CMS and framework leaves traces in the HTML it generates. Our detector fetches the page source from the server — the same HTML a search engine crawler sees — and runs it through a fingerprint engine that checks seven categories of signal:
Signals checked per URL
- 1. Meta generator tag —
<meta name="generator">in the page head. Most CMSes set this by default. WordPress, Ghost, Joomla, and Drupal all expose version numbers here. - 2. HTTP response headers — server-added headers like
X-Powered-By,X-Shopid, orX-Ghost-Cache-Status. Often the most reliable signal. - 3. HTML body patterns — path patterns like
/wp-content/in stylesheet links, or Nuxt'sid="__nuxt"root element. - 4. Script src URLs — platform CDN domains in
<script src="...">attributes. Shopify loads fromcdn.shopify.com, Framer fromframerusercontent.com.
- 5. JavaScript globals — inline script blocks often expose platform globals. Next.js writes
__NEXT_DATA__directly into the HTML; Wix injectswixBiSession. - 6. Cookies — response cookies in the
Set-Cookieheader. Drupal session cookies follow the patternSESS[32 hex chars]; Shopify sets_shopify_y. - 7. URL patterns — some platforms are detectable from the URL alone. A
*.myshopify.comdomain is 100% Shopify;*.blogspot.comis always Blogger.
What We Detect — 24 CMS Platforms + Stack
Our fingerprint database covers the platforms that power over 97% of all CMS-using websites. The remaining 3% are fragmented across hundreds of minor regional builders — and the ~41% of websites with no detectable CMS at all are custom-built or plain static HTML by design.
| Platform | Category | % of all websites | Primary signal |
|---|---|---|---|
| WordPress | CMS | 41.9% | Meta generator + /wp-content/ paths |
| Shopify | CMS | 4.9% | x-shopid header + cdn.shopify.com scripts |
| Wix | CMS | 4.1% | Meta generator + parastorage.com CDN |
| Squarespace | CMS | 2.4% | server: Squarespace header |
| Joomla | CMS | 1.5% | Meta generator + Joomla JS global |
| Webflow | CMS | 0.9% | Meta generator + Webflow global |
| Drupal | CMS | 0.8% | Meta generator + X-Drupal-Cache header |
| Blogger | CMS | 0.5% | Meta generator + blogspot.com URL |
| Next.js | Framework | 0.5% | __NEXT_DATA__ in HTML |
| Magento | CMS | 0.4% | mage-cache cookies + js/mage scripts |
| GoDaddy Website Builder | CMS | 0.4% | Meta generator |
| Framer | CMS | 0.3% | framerusercontent.com CDN |
| TYPO3 | CMS | 0.3% | Meta generator + typo3conf/ paths |
| Ghost | CMS | 0.2% | Meta generator + X-Ghost-Cache-Status |
| HubSpot CMS | CMS | 0.2% | x-hs-hub-id header |
| Nuxt.js | Framework | 0.2% | id='__nuxt' div + /_nuxt/ scripts |
| Astro | Framework | 0.1% | Meta generator + astro-island elements |
| Gatsby | Framework | 0.1% | Meta generator + ___gatsby div |
| Hugo | Framework | 0.1% | Meta generator |
| SvelteKit | Framework | 0.1% | data-sveltekit-preload + /_app/ scripts |
| Craft CMS | CMS | <0.1% | X-Powered-By: Craft CMS header |
| Contentful | CMS | <0.1% | x-contentful-request-id header |
| Sanity | CMS | <0.1% | x-sanity-shard header |
| Strapi | CMS | <0.1% | X-Powered-By: Strapi header |
Market share data from W3Techs, May 2026.
Beyond CMS platforms, the detector also identifies analytics tools (Google Analytics 4, Google Tag Manager, Hotjar, Plausible), CDN providers (Cloudflare, Fastly), and hosting platforms (Vercel, Netlify, WP Engine) from response headers and script patterns.
Why We Show the Evidence
Every other free CMS detector is a black box — it tells you "WordPress" and gives you a confidence percentage with no explanation. We show the exact signal that triggered each detection: "Meta generator: 'WordPress 6.5.3'", "HTTP header x-pingback: /xmlrpc.php", "Script src: wp-content/themes/...".
This matters for SEO and security audits. If you're a consultant reviewing a client's site, you need to know why the tool reached its conclusion — and whether the signals are intentional or accidental leaks. A site exposing its WordPress version via meta generator is also exposing it to attackers scanning for vulnerable versions.
If you're trying to hide your tech stack, the evidence list tells you exactly what to suppress. The HTTP headers panel shows every response header, making it easy to identify unnecessary information disclosure.
🔍 Transparent detection
Every result shows which signal triggered it. No guessing why the tool reached its conclusion.
🛡️ Security insight
Version numbers exposed via generator tags are also visible to attackers. Know what you're leaking.
📡 Raw headers
Every HTTP response header is displayed in full — useful for debugging CDN configuration and server setup.
