Quick Answer
You can often identify what a website is built with by inspecting its source code, checking HTTP headers, using technology-detection tools, and looking for telltale file paths or JavaScript patterns. No single method is foolproof, but combining several approaches usually reveals the content management system, frontend framework, and server environment.
More from this site
Keep reading the latest coverage
Check the Source Code
Right-click anywhere on a webpage and choose View Page Source, or press Ctrl+U (Cmd+U on Mac). The HTML comments near the top frequently contain generator tags from WordPress, Joomla, or Drupal. Search for keywords like "generator," "powered by," or the names of common frameworks such as React, Vue, or Angular.
Use Built-In Developer Tools
Press F12 or Ctrl+Shift+I to open the browser's developer tools. On the Network tab, reload the page and look at file extensions and paths. A WordPress site will often load wp-content and wp-includes directories. A site using Next.js may show _next/static chunks, while Shopify stores typically include assets.shopify.com references.
Try Online Detection Tools
Websites like BuiltWith, Wappalyzer, and WhatCMS can scan a URL and return a list of detected technologies, including the CMS, analytics tools, JavaScript libraries, and even the hosting provider. These tools work by matching patterns in the HTML, JavaScript, and HTTP response headers, but they can produce false positives or miss custom-built solutions.
Examine HTTP Headers
Using the Network tab in developer tools or a tool like curl, inspect the response headers. Servers often disclose their identity through headers such as Server, X-Powered-By, or X-Generator. A header showing Apache, nginx, or a specific framework like Express.js gives direct clues about the backend stack.
Look for JavaScript Fingerprinting
Many modern frameworks leave identifiable patterns in the compiled JavaScript. For example, Next.js includes __NEXT_DATA__ objects in the HTML, and Gatsby sites often reference gatsby-*.js files. Single-page applications built with React or Vue frequently include characteristic variable names and chunk-loading logic in their bundled scripts.
Limitations and Caveats
None of these methods is definitive on its own. Custom-coded sites, heavily obfuscated builds, and services that strip identifying headers can hide their underlying technology. A site might use WordPress as a headless CMS with a custom React frontend, making it difficult to classify with standard detectors. Treat every detection as a strong clue rather than absolute proof.