5 min read

Ghost Tags and Content Organization: A Practical Guide

Ghost Theme
Ghost Theme June 20, 2026
Ghost Tags and Content Organization: A Practical Guide

Tags are one of those Ghost features that look almost too simple at first glance, just a label you stick on a post, until you realize how much structural work they're actually doing underneath. Used well, tags shape your navigation, your SEO, your theme's behavior, and even your URL structure. Used carelessly, they turn into a messy pile of labels that helps nobody.

Here's how Ghost's tagging system actually works, and how to use it like someone who's thought it through rather than someone just clicking "add tag" out of habit.

The Two Kinds of Tags: Public and Internal

Ghost has exactly two tag types, distinguished by one small detail: whether the tag name starts with a hashtag.

Public (regular) tags are visible to your site's visitors. They show up in your theme's tag listings, generate their own tag archive pages, and get returned through Ghost's Content API. These are your real, reader-facing categorization system, things like "News," "Tutorials," "Interviews," whatever genuinely organizes your content from a reader's point of view.

Internal tags start with a # and are invisible on the public-facing site. They exist purely as a backend organizational tool, for you, or for your theme's code, rather than for readers. A common use case: tagging a post #video so your theme can detect that tag and automatically adjust the layout (removing a sidebar to give an embedded video more room, for instance), without ever showing "#video" anywhere a visitor would see it.

Both types live in the same Tags section of Ghost Admin, with separate tabs for public and internal tags, so you're never confusing the two when managing them.

The Primary Tag: Why Order Matters

This is the detail that surprises people most. Ghost doesn't just track which tags are on a post, it tracks their order, and the first tag in that list gets special treatment, called the primary tag.

A lot of themes lean on this specifically: displaying only the primary tag on post cards or archive listings, rather than every tag attached to a post. This keeps things visually clean, you might tag a post with five things internally for your own organization, while your theme only shows the single most important one to readers.

You can reorder tags by dragging and dropping them in the post settings menu, and since this directly controls which tag your theme treats as primary, it's worth being deliberate about which tag you drag to the top, rather than leaving it as whichever order you happened to type them in.

Tag Archive Pages Are Real Pages, Not Just Filters

Every public tag automatically generates its own tag archive, a dedicated page at a URL like yoursite.com/tag/tutorials/, listing every post carrying that tag. These aren't throwaway filtered views. They come with their own metadata, their own RSS feed, and they can support their own cover image and description, all editable from the Tags page in Ghost Admin.

This matters more than it might seem. A well-filled-out tag page, with a genuine description and a relevant cover image, is a real, indexable destination that search engines can rank on its own, not just a mechanical list of posts. If you're running a publication with a handful of consistent content categories, it's genuinely worth treating your most important tag pages as their own mini-landing-pages rather than leaving their settings blank.

The Core Mistake: Tagging Everything With Everything

The single most common tagging mistake is applying too many tags too liberally, treating them like keywords rather than genuine categories. Tags work best when they have multiple posts genuinely grouped under them, and they stop being useful the moment they're slapped onto nearly every post regardless of fit.

A simple rule of thumb that holds up well: tag posts with a small number of categories that meaningfully separate distinct types of content you actually publish (#blog, #podcast, #interview, for instance, if those are genuinely different content types on your site), rather than tagging everything with a broad label like "blog" when that's the only kind of content you publish in the first place. If a tag applies to literally everything, it's not actually organizing anything.

Using Tags for Search, Not Just Browsing

Tags aren't only a browsing aid, they're also searchable, in a way your post body sometimes isn't as reliably. If you want a post to be findable by a specific name, term, or topic that doesn't happen to appear explicitly in your title or prose, a tag is a clean way to make that connection discoverable, both through Ghost's own search and through tag archive pages, without forcing awkward phrasing into your actual writing just to mention a keyword.

Going Further: Custom Collections and URL Structure

For anyone comfortable editing a configuration file, Ghost's tagging system extends into something more powerful: dynamic routing through a routes.yaml file, which lets you build custom collections, dedicated sections of your site with their own URL structure, based on tags.

A practical example: if you publish both blog posts and a podcast, you might want podcast episodes to live under yoursite.com/podcast/ rather than the default /tag/podcast/ structure. Using an internal tag like #podcast combined with a routes.yaml collection definition, you can route anything tagged that way into its own dedicated URL path, with its own template, completely separate from your main blog feed. This is also how some publishers solve a common structural question, "how do I get a clean subdirectory like /comparisons/ instead of a generic tag URL," without needing a completely custom-built site.

This is genuinely developer territory, and most publishers never need it. But it's worth knowing it exists, since it means even Ghost's "just tags" system can scale into a fairly sophisticated site structure once you actually need one.

Styling Posts Based on Internal Tags

Beyond layout logic, internal tags are a clean way to apply custom visual styling to specific posts without touching your theme's core templates. Since many themes add a CSS class to the page body reflecting each tag a post carries (something like tag-video or tag-hash-internal-tag), you can write targeted CSS, even through simple code injection, that only applies to posts carrying a specific internal tag. A "dark mode" tag that swaps a post's color scheme, or a tag that adjusts spacing for image-heavy posts, are both achievable this way, entirely through tagging plus a bit of CSS, without modifying theme files directly.

A Practical Tagging System to Actually Use

If you're starting fresh, or cleaning up a tagging system that's grown messy over time, here's a sensible structure:

  1. Decide on your genuine content categories first, the handful of distinct types of content you actually publish regularly. Three to seven is usually plenty for most publications. These become your core public tags.
  2. Always set a deliberate primary tag on each post, the single most important category for that specific piece, dragged to the front of the tag list.
  3. Fill out your tag archive pages properly, names, descriptions, and cover images for at least your most-used tags, treating them as real landing pages rather than an afterthought.
  4. Use internal tags sparingly, but deliberately, for genuine backend needs: layout switches, personal organizational notes, or styling hooks, not as a dumping ground for things you couldn't decide how to categorize publicly.
  5. Resist the urge to tag for the sake of tagging. If a post doesn't clearly belong to one of your core categories, it's fine for it to carry just one tag, or even none, rather than forcing it into multiple loosely related ones.

Why This Is Worth Getting Right Early

A clean tagging system is one of those things that's nearly invisible when done well and genuinely annoying to untangle once it's grown messy across hundreds of posts. Readers benefit from clear, meaningful categories that actually help them find more of what they came for. Search engines benefit from well-described, focused tag archive pages rather than generic, sprawling ones. And you benefit, months or years down the line, from a content structure that still makes sense to navigate, rather than a tangle of inconsistent labels you can barely remember the logic behind.

It takes very little extra effort to tag deliberately from the start. It takes considerably more effort to go back and fix a tagging system that grew however it happened to grow.


Ghost Theme

Written by

Ghost Theme

View all posts →

Build something beautiful

Your dream publication, today.

Get every theme — plus all future releases — for one simple price. Instant access to all 10 premium Ghost themes.

30-day money-back guarantee · See policy · One-time payment · Instant download