In short. Ghost uses hashtag-prefixed tags for internal theme controls and the first ordered tag as the primary tag.
Definition: A Ghost internal tag is a hashtag-prefixed tag used for theme styling or internal filtering. The primary tag is the first tag in a post's ordered tag list, and some themes display only that tag by default.
Key facts
- Ghost's Tags documentation says internal tags use a hashtag and support special styling or internal filtering.
- The same guide says the first tag has the most importance, and some themes display only that primary tag by default.
- Ghost's tags helper reference says the
{{tags}}helper outputs tags in their post order, which can be changed by dragging and dropping. - The helper uses
publicvisibility by default. Its documentation describesinternalfor internal tags andallfor every visibility value.
What makes a tag internal?
Ghost's Tags guide defines an internal tag by its hashtag prefix. It gives #video as an example of a tag that a theme can use when a post contains video. In the example, News remains the publicly displayed tag, while #video is kept as a private record for theme styling.
The prefix therefore signals a presentation or editorial control stored with the post. It does not describe the post's primary position. A post can carry a public tag such as News and an internal tag such as #video at the same time.
Why does the first tag matter?
Ghost's primary tag guidance says the first tag in the list is given the most importance. It also says some themes display only the primary tag by default, and that tags can be reordered from the post settings menu. The position is therefore an editorial setting that can change which public label a theme emphasizes.
The theme helper reference exposes that position directly through primary_tag.name:
{{primary_tag.name}}
This expression outputs the singular first tag. The same reference exposes later tags through a zero-indexed array, where tags.[1] refers to the second tag immediately after primary_tag.
How does a theme control the displayed tags?
The {{tags}} helper formats a post's tags as a linked list. Ghost says it defaults to a comma-separated list without list markup, and that linking can be disabled. Its default visibility is public, so internal tags are omitted from this output unless the theme passes another visibility value.
Ghost's helper documentation shows the setting for all visibility values:
{{tags visibility="all"}}
The same documentation says visibility="internal" outputs only internal tags. A theme can therefore keep the public tag list clean while using internal tags in a separate template branch. It also documents limit="1" for a fixed one-tag output, although primary_tag.name is the direct expression for the first tag.
What should you check in a Ghost theme?
A theme that uses {{tags}} will follow the helper's visibility and ordering rules. Check whether it uses {{primary_tag.name}}, the full {{tags}} helper, or a custom loop over the tag objects. Ghost documents the custom loop through {{#foreach tags}}, which gives the template access to each tag's name, slug, url, description and other attributes.
The documentation leaves one point theme-specific: it defines primary status by list position and internal status by visibility, but it does not describe a fallback that skips an internal first tag. Inspecting the theme's template is therefore necessary when those two settings overlap.
Related terms
- How can a Ghost theme control whether tags link to archive pages?
- How do I change tag and author URL patterns in Ghost?
- How do I split Ghost posts into separate content collections?
FAQ
Does a hashtag hide a tag from every Ghost output?
No. The default {{tags}} helper omits internal tags, but Ghost documents visibility="internal" for outputting them and visibility="all" for outputting every visibility value.
Which tag is primary when a post has several tags?
The first tag in the ordered list is primary. Ghost says tags can be reordered in Post settings, and the helper reference exposes that tag through primary_tag.name.
Can a theme show a tag after the primary tag?
Yes. Ghost documents zero-indexed tag objects, with tags.[1] referring to the second tag after primary_tag. A theme can also loop over the tag objects for custom output.
Sources
Check how a page reads to answer engines. Open the GEO score analyzer