How to find out which CMS a site is running
The overwhelming majority of sites on the internet run on a CMS — a content management system, or “engine”.
The exceptions are static sites, made of ready-built HTML pages. Those were the norm in the early days of the web, when pages were written by hand. They are becoming popular again, thanks to their simplicity, their sheer speed, their complete immunity to being hacked, and the arrival of static site generators.
The web is arranged so that visitors never see the CMS itself. All a visitor’s browser receives is the finished HTML page the CMS produced. There is no way to look under the bonnet from outside — that access does not exist from a browser.
The signs a CMS leaves behind
There are, however, indirect signs that give a system away. We list them below, under “Identifying a CMS by hand”.
You can learn those signs and check any site yourself — by reading the HTML of its pages in your browser, looking at the shape of its URLs, and trying the addresses of its technical pages.
And there are automated ways to do the same thing: online services and browser extensions.
The easiest way
Let us start with what we use ourselves: the browser extension Wappalyzer.
Wappalyzer identifies the CMS and the other technologies behind a site automatically as you arrive, and shows the CMS logo as an icon in the browser toolbar. Click the icon and you get a fuller list — from the content management system down to individual libraries, analytics tags and hosting details.
You can install Wappalyzer in Chrome, Firefox, Edge and Opera.
And if you would rather not install anything, you can always go to www.wappalyzer.com and check any site through the form on the front page.
Identifying a CMS by hand
Automated tools do get it wrong. So here, in detail, are the signs you can read for yourself.
1. The name, stated outright
The easiest case is when the CMS is named on the site. WordPress sites give themselves away this way most often, because so many of them are built on ready-made purchased themes. So look at the footer first, next to the copyright line.
If nothing is visible on the page itself, the next place to look is the code.
2. The page source
Viewing the source is available in nearly every browser, usually on Ctrl+U. If that does not work, right-click on the page — on the page itself, not on an image or a video — and choose “View page source” from the menu.
A new tab or window will show you the HTML of the page you clicked on. That is exactly what the CMS generated, or what somebody wrote by hand if the site is static.
2.1. The “generator” meta tag
meta name="generator" is a meta tag that names the CMS outright. Most systems add it to the HTML themselves.
An example from a WordPress site:
<meta name="generator" content="WordPress 4.7" />
Any developer setting up a site can strip that tag out, so its absence tells you nothing either way.
2.2. Paths to the theme files
Near the top of the source you will find the links that pull in the presentation files — .css and .js above all. Different systems leave characteristic fragments in those paths, reflecting their standard folder structure:
| CMS | Tell-tale path |
|---|---|
| WordPress | /wp-content/themes/ |
| Drupal | /sites/default/files/ |
Surprisingly, this is often the most reliable sign of all, because changing those paths is either difficult or pointless.
Take an example. The site of The Economist, the most authoritative economics publication in the world, is built on Drupal — but Wappalyzer cannot tell, because the site has been optimised very hard indeed and its code stripped of everything unnecessary and made as compact as possible (minified). Even so, Drupal’s characteristically long /sites/default/files/ paths appear in that code just as often as they do on an ordinary Drupal site — 85 times, when this article was written.
3. Technical pages in robots.txt
Every properly built site should have a robots.txt. Search engines use it to know which technical or duplicated pages not to index or show. Which means a CMS may well list its own technical pages there.
Finding the file on any site is trivial — add it to the domain after a slash. For example: www.google.com/robots.txt
Characteristic lines by system:
| CMS | Line in robots.txt | Example |
|---|---|---|
| WordPress | Disallow: /wp-admin/ |
https://wordpress.com/robots.txt |
| Drupal | Disallow: /?q=admin/ |
https://www.drupal.org/robots.txt |
4. The login page
Every CMS-driven site has an administration area, and getting into it works like any other service with a login — a form asking for a username and a password.
On commercial sites the way in is not advertised; the owners, or whoever is trusted with the content, go to a particular address. In a standard, unmodified installation those addresses are always the same.
| CMS | Admin URL | Example |
|---|---|---|
| WordPress | /wp-admin |
https://wordpress.com/wp-admin/ |
| Drupal | /user |
https://www.drupal.org/user |
| Joomla | /administrator |
https://www.joomla.org/administrator/ |
You can simply append these — /wp-admin, /user, /administrator — to the domain you are curious about and see what opens.
5. HTTP headers
Sometimes the name and version of the CMS turn up in the HTTP headers — data the web server sends to your browser alongside the page.
Headers are not visible to a visitor directly, but there are tools that will show them:
- online services such as HTTP Header Check
- the Google Chrome extension HTTP Headers.
The idea is straightforward: type the domain into the online service, or open the site and click the extension’s button, and you get a list of lines rather like this:
Here the X-Generator line gives away both the name and the version.