Website technology stack
The rest of what the pages carry, grouped by what it does: the runtime, the framework, the CDN in front and the third-party scripts the site loads.
Beyond the web server and the CMS, a page carries a whole stack of components. SiteScan lists them one row per category, ordered from what serves the page to what the page loads: runtime (PHP, Node.js, ASP.NET), framework (Next.js, Nuxt, Laravel), JS libraries, CSS and UI kits, bundler, e-commerce, CDN, hosting, cache, analytics, marketing tags, payments, captcha, chat, maps, fonts, PWA features and the site generator.
How it is detected
Signatures are matched in the headers and HTML of the entry page the crawler already fetched — script paths, global variables, cookies and response headers such as X-Powered-By or x-vercel-id. A version is shown only when the site publishes one. The analytics row also includes the trackers the privacy check found on any crawled page.
These rows are inventory, not verdicts: everything here is shown in green.
How to use the list
- Check the versions against current releases — an outdated jQuery or framework is an easy target.
- Count the third parties. Every chat widget, map, font host and marketing tag costs loading time and may need consent; see third-party scripts.
- Look for leftovers: two analytics tools doing the same job, or a library nothing uses any more.
- If you would rather not advertise the stack, remove
X-Powered-Byand similar headers; it does not change what the markup reveals.
See this check on your own site
Run a free scan: the report shows this row for your domain along with the other checks of the site audit.
More in “Technology”
What SiteScan checks
TLS certificate
- TLS certificate expiry
- Outdated TLS versions (TLS 1.0/1.1)
- TLS certificate chain
- TLS certificate issuer
- Certificate signature algorithm
Domain registration
- Domain registration expiry
- Registered domain name
- Domain registrar
- Domain registration date
- Domain last updated date
- Domain status codes (EPP)
- Domain transfer lock
- Registrar abuse contact
- RDAP and WHOIS data source
Indexing
- robots.txt file
- CSS and JS blocked in robots.txt
- XML sitemap
- Sitemap index file
- Off-domain URLs in the sitemap
- Sitemap lastmod dates
- Broken URLs in the sitemap
- RSS and Atom feed
Addresses & redirects
Security headers
- HTTP security headers and grade
- Strict-Transport-Security (HSTS) header
- Content-Security-Policy (CSP) header
- X-Content-Type-Options: nosniff
- X-Frame-Options and clickjacking
- Referrer-Policy header
- Permissions-Policy header
- HSTS preload list
- CORS and cross-origin reads
- HTTP TRACE method
Delivery & reputation
- Cache-Control header for HTML
- ETag and Last-Modified revalidation
- HTTP/3 and QUIC support
- Server version disclosure in headers
- DNS blocklist (DNSBL) check
Internal links
Exposure
- Exposed sensitive files (.env, .git, backups)
- Directory listing enabled
- Public JavaScript source maps
- Exposed WordPress endpoints
Well-known files
- security.txt file
- llms.txt for AI assistants
- llms-full.txt file
- ads.txt authorized sellers file
- humans.txt file
- Well-known change-password URL
DNS & email
- MX records (mail servers)
- SPF record
- DMARC record and policy
- DNSSEC signing
- CAA record
- Nameserver redundancy
- IPv6 support (AAAA record)
- MTA-STS policy
- TLS-RPT reporting record
- BIMI record (brand logo in email)
- Wildcard DNS record
- Dangling CNAME and subdomain takeover
Privacy & consent
- Analytics and tracking scripts
- Cookie consent banner
- Privacy policy link
- Terms of service link
- Imprint (Impressum)
- Accessibility statement
Core Web Vitals
- Lighthouse performance score
- Largest Contentful Paint (LCP)
- Cumulative Layout Shift (CLS)
- Interaction to Next Paint (INP)
- CrUX field data vs lab data