Website Tech Stack Detector
Pricing
Pay per usage
Website Tech Stack Detector
Give a list of websites and get one row per site with the CMS, shop platform, analytics, ad tags, CDN, hosting, frameworks and other technologies found, each with the evidence it was found by.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Sampon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Paste in a list of websites and get back one row per site with the technologies it runs on: the CMS or shop platform, analytics and ad tags, tag manager, CDN and hosting, web server, frameworks, JavaScript libraries, fonts, payment and chat widgets, cookie consent tools and a few security features.
Every technology comes with the evidence it was found by, so you can see why the Actor thinks a site uses Shopify or HubSpot instead of having to take it on trust.
What you put in
A list of addresses. Home pages work best, but any public page is fine, and a bare domain such as example.com is accepted too.
{"startUrls": [{ "url": "https://wordpress.org/" },{ "url": "https://www.joomla.org/" },{ "url": "https://nextjs.org/" }]}
Optional settings:
| Setting | What it does |
|---|---|
onlySitesUsing | Keeps only the sites that use at least one of the technologies or categories you list, for example ["Shopify", "live-chat"]. Useful when you start from a long list of domains and want only the ones on a given platform. |
includeFailed | On by default. Sites that could not be checked still get a row that says why. Turn it off to keep only successful rows. |
maxConcurrency | How many sites are checked at the same time, from 1 to 4. Default 4. |
requestDelayMs | Minimum gap between two requests to the same site. Only matters when you list several pages of one site. Default 1 second. |
timeoutSecs | How long to wait for a slow site before giving up. Default 20 seconds. |
What you get
One row per site. The summaryText column is the one most people paste into a spreadsheet; technologies has the full detail.
{"url": "https://wordpress.org/","finalUrl": "https://wordpress.org/","statusCode": 200,"technologyCount": 6,"technologyNames": "WordPress, Google Tag Manager, Nginx, Google Fonts, HSTS, Jetpack","summaryText": "cms: WordPress 7.2; tag-manager: Google Tag Manager; web-server: Nginx; fonts: Google Fonts; security: HSTS; wordpress-plugin: Jetpack","summary": {"cms": "WordPress 7.2","tag-manager": "Google Tag Manager","web-server": "Nginx","fonts": "Google Fonts","security": "HSTS","wordpress-plugin": "Jetpack"},"technologies": [{"name": "WordPress","category": "cms","version": "7.2","evidence": ["header", "meta", "html"],"signals": ["link: <https://wordpress.org/wp-json/>; rel=\"https://api.w.org/\", <https://wo...", "meta generator: WordPress 7.2-alpha-64252", "html: /wp-content/plugins/", "html: /wp-includes/"]},{"name": "Nginx","category": "web-server","version": null,"evidence": ["header"],"signals": ["server: nginx"]}],"error": null,"checkedAt": "2026-10-10T08:03:57+00:00"}
(The technologies list above is shortened to two entries.)
evidencetells you where each technology was seen: a responseheader, ametatag, ascripttag, acookiename, or the pagehtml. A technology seen in more than one place is a safer bet than one seen in a single class name.signalsshows the actual text that matched, cut to a readable length.versionis filled in only when the site reveals it, for example in a generator tag or a file name.summaryhas one key per category, so you can split it into columns.
The categories are: cms, ecommerce, analytics, advertising, tag-manager, cdn, hosting, web-server, caching, web-framework, programming-language, javascript-framework, javascript-library, ui-framework, fonts, payments, live-chat, marketing-automation, cookie-consent, security, monitoring, a-b-testing, search, video, maps, reviews, seo, page-builder and wordpress-plugin. Close to 200 technologies are recognised.
How it works
- It makes one ordinary request for the page you listed, with no browser. That is why it is fast and cheap, and also why it only sees what the site sends in its first response (see Limits).
- Before that request it reads the site's robots.txt and skips the page if robots.txt disallows it. If robots.txt cannot be reached because of a server error, the page is skipped as well, to be safe. A crawl delay in robots.txt is honoured.
- It follows redirects (for example from
example.comtowww.example.com) and checks robots.txt again when a redirect leads to another host. - It keeps only the names of cookies, never their values, and does not collect any information about people.
Price
Free for now. You only pay Apify's usual platform usage. In our test, 251 sites were checked in about two and a half minutes with the default settings; at 256 MB of memory that should come to roughly two cents of platform usage per 1,000 sites. The three-site example above finishes in a few seconds.
Limits
- Technologies that are added only by JavaScript after the page loads (some chat widgets, tags loaded from inside a tag manager, single-page apps that render everything in the browser) can be missed. A site that loads Google Tag Manager will often have more tags than this Actor can see.
- Large sites with bot protection may answer with HTTP 403 or 429. You still get a row with the status code and whatever the headers revealed, usually the CDN and the protection service.
- Detection is based on fingerprints, so it can be wrong. The
evidenceandsignalsfields are there so you can check. - Only the page you list is read. Links are not followed.
This Actor is an independent tool. It is not affiliated with any of the companies whose products it recognises, or with the owners of the sites it checks.