Tech Stack Guides

How to Tell If a Website Is Built With Ghost

Ghost is a modern publishing and membership platform. Detect it via the Ghost generator meta tag, /content/images/ paths, the Portal membership script and /members/ and /ghost/ routes.

StackOptic Research Team27 May 20266 min read
Detecting Ghost CMS via its generator meta tag, content image paths and Portal script

Ghost is a modern, open-source publishing platform built specifically for blogs, newsletters, magazines and creators — with membership and paid subscriptions built in. To tell whether a site runs it, the quickest answer is to view the source and look for a generator meta tag reading "Ghost", or for image paths under /content/images/. This guide covers every reliable signal, the publishing-and-membership architecture behind them, and what a Ghost build tells you about the business.

What is Ghost?

Ghost is a Node.js-based, open-source CMS launched in 2013 as a focused alternative to WordPress for professional publishing. Where WordPress is a general-purpose CMS, Ghost is deliberately narrow: it is built for people who write — bloggers, journalists, independent creators, company publications and newsletters. Its standout features are a clean, distraction-free editor, fast performance, native SEO, and — crucially — Portal, a built-in membership and subscription system that lets publishers run free and paid memberships, email newsletters and Stripe-powered subscriptions without third-party plugins.

For detection, the key context is that Ghost is a content-and-creator platform, not a general business CMS. Finding it almost always signals a publication, a newsletter, a creator business or a company blog where writing and audience-building are central. Ghost can be self-hosted (it is fully open source) or run on Ghost(Pro), the official managed hosting service that funds the non-profit foundation behind the project. That choice affects some infrastructure signals but not the core fingerprints, which are consistent across both.

How Ghost renders and exposes itself

Ghost exposes a clear set of fingerprints. The most explicit is the generator meta tag, which reads <meta name="generator" content="Ghost 5.80"> (or similar), often revealing the major version. Ghost serves uploaded media from a distinctive /content/images/ path, typically with date-based subfolders and responsive size variants, and themes load assets from /assets/. The default theme, Casper, leaves recognisable class names and markup on sites that have not switched themes.

The membership layer is especially telling. When Portal is enabled, Ghost loads a Portal script (commonly from the Ghost CDN via jsDelivr) and a sodo-search component for its built-in search, and it exposes /members/ API endpoints used for sign-up, sign-in and subscription management. The admin interface lives at the /ghost/ route. Structured data and RSS feeds (/rss/) are generated automatically. Knowing this architecture — the generator tag, the /content/images/ media path, the Portal and search scripts, and the /members/ and /ghost/ routes — makes Ghost straightforward to confirm.

How to tell if a website uses Ghost

Confirm at least two of the following.

1. View the page source. Search for ghost. The <meta name="generator" content="Ghost ..."> tag is the clearest signal and often includes the version. Also look for /content/images/ in image URLs.

2. Inspect image and asset paths. Media served from /content/images/ (with size variants like /size/w2000/) and theme assets from /assets/ are characteristic of Ghost.

3. Look for Portal and search. In the Network tab or source, look for the Ghost Portal script and the sodo-search component, usually loaded from a Ghost CDN URL. Their presence indicates memberships or subscriptions.

4. Check for membership routes. Network calls to /members/api/ (for example during sign-up or sign-in) and the presence of a subscribe or sign-in button wired to Portal confirm a Ghost membership site.

5. Probe well-known routes. The admin lives at /ghost/, and an RSS feed at /rss/ is generated automatically. These conventions corroborate Ghost.

What the Ghost signals look like

<meta name="generator" content="Ghost 5.80">
GET https://example.com/content/images/2026/01/cover.jpg
GET https://example.com/content/images/size/w2000/2026/01/cover.jpg
<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.x/umd/portal.min.js" data-ghost="https://example.com" ...></script>
GET /members/api/member/   (membership API)

The combination of the Ghost generator tag, /content/images/ media paths, and the Portal script or /members/ API calls is conclusive.

Ghost versus similar systems — avoiding false positives

Ghost's fingerprints are distinctive, but distinguish it from other publishing tools. WordPress uses /wp-content/ and a WordPress generator tag; Substack is a hosted newsletter platform served from substack.com domains with its own markup; Medium and Webflow have their own signatures. Ghost uses the /content/images/ media path, the Ghost generator tag, and the Portal membership system — a combination unique to it. The main subtlety is that some Ghost sites remove or customise the generator tag, and a fully custom theme will not show Casper's class names, so rely on the /content/images/ path and the Portal//members/ signals in those cases. A site can also use Ghost purely for content with memberships disabled, in which case the Portal script will be absent but the generator tag and /content/images/ paths still confirm Ghost.

How reliable is each Ghost signal?

The Ghost generator meta tag is definitive and reveals the version when present. The /content/images/ media path is equally strong because the convention is specific to Ghost. The Portal script and /members/api/ calls are conclusive and additionally tell you memberships are enabled. The /ghost/ admin and /rss/ routes are supportive conventions. The default-theme (Casper) class names are reliable only when the site has not switched themes. The weakest case is a custom-themed Ghost site with the generator tag stripped and memberships off — there, the /content/images/ paths are your best evidence. As a rule, the generator tag or the /content/images/ path settles it.

What a Ghost build reveals about a business

Finding Ghost is a strong signal of a content-led, creator or publishing business. Because Ghost is purpose-built for writing, newsletters and paid memberships, its presence usually means the organisation's core activity is producing and monetising content — an independent journalist or newsletter, a media publication, a creator running paid subscriptions, or a company that takes its blog seriously. The presence of the Portal membership script is particularly informative: it tells you the site runs subscriptions or paid memberships, almost always with Stripe behind them, which signals direct monetisation of an audience. If you sell tools or services for publishers, creators or newsletters — payments, email, audience analytics, content production — a Ghost site marks an aligned buyer. Whether the site is self-hosted or on Ghost(Pro) also hints at technical capability and budget.

Ghost in a creator stack

Ghost typically anchors a focused publishing stack. With memberships enabled, it is almost always paired with Stripe for subscription payments, and it sends transactional and newsletter email through a provider like Mailgun (Ghost's default for bulk email). You will often find a clean, fast front end (Ghost prioritises performance), a CDN, and privacy-respecting or lightweight analytics — Ghost has its own native analytics and pairs naturally with tools like Plausible or Fathom. For an auditor, the useful details are the Ghost version (from the generator tag), whether Portal indicates memberships are active, the presence of Stripe and an email provider, and whether the site is self-hosted or on Ghost(Pro); together these reveal not just the platform but the maturity of the publisher's monetisation and audience strategy.

A quick Ghost confirmation walkthrough

Open the site and view the source; search for generator to find the Ghost meta tag and its version, then search for /content/images/ to confirm the media path. Open the Network tab, reload, and look for the Portal script (from a Ghost CDN URL) and any /members/api/ calls; click a subscribe or sign-in button to trigger the membership API if present. Note whether assets load from /assets/ and whether an /rss/ feed exists. The generator tag plus the /content/images/ path is enough to confirm Ghost, while the Portal and /members/ signals tell you whether subscriptions are in play.

A quick Ghost detection checklist

  • View source and search for the <meta name="generator" content="Ghost ..."> tag.
  • Look for image URLs under /content/images/ with size variants.
  • Find the Portal membership script and the sodo-search component.
  • Watch for /members/api/ calls on sign-up or sign-in.
  • Note the /ghost/ admin route and the /rss/ feed as corroboration.
  • Check for Stripe and an email provider, which usually accompany Ghost memberships.

Detecting Ghost at scale

Checking one site is quick, but finding every publisher or newsletter in a list — to prospect creator-economy buyers or map the publishing landscape — calls for automation. StackOptic detects Ghost, its version where exposed, whether memberships are enabled, and thousands of other technologies from a real browser. Because the presence of Portal also tells you a site runs paid subscriptions, an automated scan can separate hobby blogs from genuine subscription businesses across a whole list — exactly the segmentation a payments, email or creator-tooling vendor wants. For related reading, see our guide to telling what CMS a website is using and the full Ghost technology profile.

Frequently asked questions

What is the fastest way to tell if a site uses Ghost?

View the page source and look for a generator meta tag reading 'Ghost' (often with a version like 'Ghost 5.80'). That tag is the clearest signal. You can also look for image paths under /content/images/ and the Portal membership script, both characteristic of Ghost.

What is Ghost Portal?

Portal is Ghost's built-in membership and subscription system. It loads a script (commonly from the Ghost CDN, with a sodo-search component for search) and renders the sign-up and sign-in modal. Finding the Portal script and /members/ API calls indicates a Ghost site with memberships, paid newsletters or subscriptions enabled.

What are /content/images/ paths?

Ghost stores and serves uploaded media under a /content/images/ path (often with date-based subfolders and size variants). Seeing image URLs under /content/images/ is a strong, characteristic Ghost signal, since this directory convention is specific to the platform.

Is Ghost self-hosted or managed?

Both. Ghost is open source and can be self-hosted, or run on Ghost(Pro), the official managed service. Managed sites are often served behind a CDN and may include Ghost(Pro) infrastructure signals, while self-hosted installs run on the customer's own Node.js server. The generator tag, /content/images/ paths and Portal script confirm Ghost either way.

What does it mean if a site is built with Ghost?

Ghost is a modern, publishing-focused platform built for blogs, newsletters, magazines and creators, with first-class membership and subscription features. Finding Ghost usually signals a content-led business — a publication, a creator or a company blog — that prioritises writing, email newsletters and paid subscriptions over general-purpose website features.

Analyse any website with StackOptic

Get the full technology stack, performance, security and SEO report in seconds — free.

Analyse a website

Related articles