Option 1: read the signs yourself
Open the site, press Ctrl+U (⌘+Option+U on a Mac) to view the source, and search it with Ctrl+F.
- The generator tag. Many CMSs announce themselves:
<meta name="generator" content="WordPress 6.4">,Drupal 10,Wix.com Website Builder. - Asset paths. Files load from places that give the platform away (table below).
- Response headers. In DevTools (F12), open Network, reload, click the first request and read the headers:
server: cloudflare,x-vercel-id,x-powered-by: PHP/8.2,x-shopid. - Cookies. Under Application → Cookies:
_gameans Google Analytics,_fbpthe Meta Pixel,hubspotutkHubSpot,_shopify_yShopify. - DNS.
nslookup -type=mx example.comshows who handles the company's email (see our email provider lookup guide).
| If the source or headers contain | The site probably uses |
|---|---|
/wp-content/ or /wp-includes/ | WordPress |
cdn.shopify.com, header x-shopid | Shopify |
static1.squarespace.com | Squarespace |
static.wixstatic.com | Wix |
data-wf-site, website-files.com | Webflow |
/_next/static/, __NEXT_DATA__ | Next.js (React) |
/_nuxt/, __NUXT__ | Nuxt (Vue) |
googletagmanager.com/gtag/js | Google Analytics 4 or Google Ads tags |
header x-vercel-id / x-nf-request-id | Hosted on Vercel / Netlify |
This works well for one site. It doesn't scale to a list of prospects, and it's easy to miss less famous tools.
Option 2: a browser extension
Extensions such as Wappalyzer and BuiltWith do the same checks automatically and show the result in a popup. They're the quickest way to look up the site you're on, but they still work one site at a time and don't give you a spreadsheet.
Option 3: check a whole list automatically
Our Tech Stack Detector on Apify takes a list of domains and checks each one against 7,600+ technology fingerprints: the HTML, scripts, headers, cookies, meta tags and public DNS. You get one row per site with columns for CMS, ecommerce, analytics, advertising, marketing automation, payments, email, hosting and CDN, plus the evidence for every detection.
from apify_client import ApifyClient # pip install apify-client (3.x)
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("rimulabs/tech-stack-detector").call(run_input={
"domains": ["wordpress.org", "allbirds.com", "hubspot.com"],
"includeDns": True,
})
for site in client.dataset(run.default_dataset_id).iterate_items():
print(site["domain"], "|", site["cms"] or site["ecommerce"], "|", site["techStack"])
Part of a real result for wordpress.org, checked on 18 October 2026:
{
"domain": "wordpress.org",
"status": "ok",
"cms": "WordPress, WordPress Block Editor, WordPress Site Editor",
"tagManagers": "Google Tag Manager",
"webServer": "Nginx",
"techStack": "Google Font API, Google Tag Manager, Gutenberg 24.2.0, HSTS, MySQL, Nginx, Open Graph, PHP, Priority Hints, RSS, WordPress 7.2, ...",
"technologies": [
{ "name": "WordPress", "version": "7.2", "confidence": 100, "categories": ["CMS", "Blogs"], "foundIn": ["headers", "html", "meta", "scripts"] },
{ "name": "Gutenberg", "version": "24.2.0", "confidence": 100, "categories": ["WordPress plugins", "Editors"], "foundIn": ["html", "scripts"] }
]
}
Two settings help with lead lists. Only return sites using keeps just the sites on a given platform, for example Shopify stores that also use Klaviyo. Monitor mode remembers each stack and reports what was added or removed since the last run, so a replatform or a new CRM shows up as a change.
Limits worth knowing
- Detection reads the page as served, without running JavaScript. A few tools that load only after scripts run, such as some tag-manager pixels, can be missed.
- Sites behind strict bot protection answer automated visits with a challenge page. Those are reported as
blockedwith what the headers and DNS show, and they aren't billed. - Sites can hide their stack, for example by removing the generator tag. Several independent signals usually still give it away.
Cost: $3.00 per 1,000 sites checked. A list of 500 prospects costs $1.50.
Rimu Labs builds and maintains the Actor mentioned in this guide. The guide was written with help from our AI assistant and checked against real runs in October 2026. Questions or corrections: support@rimulabs.com.