You have found a WordPress site whose design you like and you want to know what it is running. Usually this takes one lookup. When that fails, there are three manual methods — and the reason it failed is worth understanding, because it tells you something about the site.
The quick way
Run the URL through the WordPress Theme Detector. It reads the page's public HTML for theme and plugin paths, then fetches the theme's own style.css to get the published name, version and author.
That last step is why the result is trustworthy rather than a guess: WordPress requires every theme to declare its name in a header block at the top of style.css. The theme identifies itself.
If the tool returns a name, you are done. If it says the theme could not be identified, read on — that is a real answer with a real cause.
Method 2: read the page source
Every WordPress theme serves its stylesheet from a predictable path.
Right-click the page, choose View Page Source, and search for wp-content/themes. You will find something like:
<link rel="stylesheet" href="https://example.com/wp-content/themes/astra/style.css">
The directory after /themes/ is the theme — astra here.
Then open that stylesheet directly in your browser:
https://example.com/wp-content/themes/astra/style.css
The header block at the top is the theme telling you exactly what it is:
/*
Theme Name: Astra
Theme URI: https://wpastra.com/
Author: Brainstorm Force
Version: 4.6.2
*/
Note the directory name and the published name often differ, which is why reading the header matters rather than stopping at the folder.
Method 3: check for a child theme
If you find two theme directories in the source, one is probably a child theme.
Open each style.css header and look for a Template: line:
Theme Name: Astra Child
Template: astra
Template names the parent. The theme declaring it is the active one, but most of what you are looking at comes from the parent — a child theme typically holds a few style overrides and some custom functions.
So if you want to build something similar, the parent is what to buy or download. The child is that site's own customisation and is not available anywhere.
Method 4: the generator tag and REST API
Two other places WordPress leaves fingerprints, useful for confirming the platform when asset paths have been obscured.
Search the source for:
<meta name="generator" content="WordPress 6.9.6" />
Or visit https://example.com/wp-json/. If it returns JSON, the site is WordPress. Some installs expose theme information there too.
Neither always names the theme, but both confirm you are looking at WordPress at all — which matters when detection returns nothing and you are not sure whether the tool failed or the site simply is not WordPress.
When you cannot find it
A caching plugin has merged the stylesheets
The most common reason detection fails, and not a fault in the tool.
Plugins like WP Rocket, LiteSpeed Cache, Autoptimize and WP Fastest Cache combine several stylesheets into one file served from a cache directory. That is good for performance and it removes the path that names the theme:
<link rel="stylesheet" href="/wp-content/cache/min/1/a3f9c2.css">
There is no reliable way through this from the outside. Sometimes the merged CSS still contains a comment naming the theme — open the combined file and search for "Theme Name" — but often it has been stripped.
A CDN is rewriting asset paths
Similar effect. Assets are served from a different hostname with a restructured path, so /wp-content/themes/ never appears.
It is a custom theme
Plenty of larger sites run something built specifically for them. TechCrunch, for example, runs a theme built by an agency that has never been distributed. You will get a name, and there will be nothing to download — which is itself the answer.
It is not WordPress
The detector checks four independent signals. If none appear, the site is most likely built on something else.
The one exception is headless WordPress, where WordPress manages content but a separate front end serves the pages. That leaves none of the usual traces and is genuinely undetectable from the HTML.
If it is your own site
Far simpler: log in and look at Appearance → Themes in the admin. The active theme is marked, with its version.
Over FTP or a file manager, look in wp-content/themes/. Every installed theme has a directory; the active one is whichever style.css header matches what the admin shows.
What to do with the answer
If it is a free theme, search the WordPress.org theme directory for the name. Install and configure it yourself.
If it is premium, the Theme URI line in the style.css header links straight to where it is sold.
If it is custom, you cannot have it. What you can do is identify what you actually liked — the layout, the typography, the spacing — and reproduce those with a flexible theme. Most of what people admire about a site's design is configuration and content choices rather than the theme itself.
One caution worth stating: a theme is not a site. The site you are looking at has its own content, images, spacing decisions and probably a page builder on top. Installing the same theme produces something that looks noticeably different out of the box, and that gap is normal.
The plugins are also visible
The same technique finds plugins — /wp-content/plugins/{slug}/ in asset paths. The detector looks each slug up in the WordPress.org directory for the real name, version and last update date.
Two limits worth knowing. Only plugins that load CSS or JavaScript on the page you checked appear, so SEO, backup and security plugins are usually invisible. And the same caching plugins that hide the theme hide these too.
On a site you own, the last-updated dates are worth reviewing: a plugin untouched for two years or more receives no security fixes and is a common route into WordPress installs.
Try it on any site with the WordPress Theme Detector.