languageMultilingual Features

This page explains what you must have in place before enabling Crimson’s multilingual features, and what limitations to expect. Read this first if you’re new to multilingual Ghost setups.


You need one Ghost instance per language

Crimson’s multilingual setup is based on separate Ghost installations, one for each language.

That means:

  • English site = one Ghost install (usually at the root domain)

  • Hindi site = a second Ghost install (usually in /hi/)

  • Spanish site = a third Ghost install (usually in /es/)

Why Crimson uses multiple Ghost installs

Ghost does not natively run multiple “language versions” of the same publication from a single install in the way some CMS platforms do. Crimson’s approach is to treat each language as its own Ghost site and then provide a language switcher UI to jump between them.

What “separate instance” really means

Each language site runs as its own Ghost application with:

  • its own database/content

  • its own admin panel login (staff)

  • its own settings

  • its own theme config (you’ll configure Crimson in each instance)


No automated translations (Crimson does not translate content)

Crimson does not automatically translate:

  • posts

  • pages

  • tags

  • authors

  • navigation

What you must do instead

For each language, you must:

  • manually translate content, then

  • publish it inside the Ghost instance for that language

This can be done by:

  • a human translator

  • your editorial team

  • or external translation tools (but you still have to create/publish the translated content yourself)

In short: Crimson handles language switching and structure, not translation.


Each language is a separate Ghost “publication”

Because each language is its own Ghost instance, every language behaves like a separate website.

Each language has its own:

  • Members (free/paid subscribers)

  • Staff accounts (authors/editors/admin users)

  • Tags

  • Posts & pages

  • Navigation menus

  • Integrations (email, Stripe connection, custom integrations)

  • Settings (branding, portal settings, membership settings, etc.)

What this means in practice

  • If someone signs up as a member on /hi/, they are a member of the Hindi site only.

  • Your Spanish site /es/ will not automatically “share” members or tiers.

  • Your tags and authors are not shared across languages—you create them again in each language site.

Plan for multilingual like you’re managing multiple sites under one domain.


URL matching is required (or visitors can hit 404)

When a user switches languages, Crimson expects a matching URL to exist in the target language site.

If the matching page/post does not exist:

  • The visitor can land on a 404 Not Found page in that language.

Why this happens

Because each language is a separate Ghost instance, it can only show content that actually exists in its own database. If you haven’t created the translated version (or the slug doesn’t match), Ghost cannot find the equivalent page.

Best practice to avoid 404s

  • Maintain consistent content coverage (publish important pages in every language)

  • Keep your structure organized (especially for core pages like About, Membership, Contact)

  • Use a “translation checklist” so every important URL exists in every language site


To keep language switching reliable, you should keep the same slug for:

  • posts

  • pages

  • tags

  • authors

Example:

  • English: /guides/getting-started/

  • Hindi version should also be: /guides/getting-started/ (but content translated)

If you translate the slug itself, the language switcher may not find the matching URL, and users may hit a 404.


Crimson’s multilingual approach relies on installing Ghost in subdirectories like:

  • /hi/

  • /es/

This is typically easiest on a self-hosted server where you control:

  • directories

  • NGINX routing

  • ports per Ghost instance

Ghost(Pro) can support advanced setups, but subdirectory multi-instance setups can be more complex/costly because you have less flexibility than a typical VPS.


Minimum planning checklist (before you start)

Before enabling multilingual features, confirm:

✅ You are ready to run one Ghost instance per language ✅ You understand there is no auto translation ✅ You can manage separate members/staff/tags/settings per language ✅ You have a plan to publish translated versions of key URLs ✅ You understand missing translations can lead to 404s ✅ You are comfortable with (or have support for) NGINX subdirectory routing on self-hosted Ghost


Quick FAQ

“Can I do multilingual with a single Ghost install?”

Not with Crimson’s recommended approach. Crimson’s multilingual setup assumes separate installs per language.

“Will members be shared across languages?”

No. Each language instance has its own member database.

“What happens if I translate only some posts?”

That’s fine, but users may hit 404 when switching languages on posts/pages that don’t exist in the other language.

Last updated