How Craft CMS Manages Multiple Websites and Languages in a Single Installation
Craft CMS allows you to run multiple websites within a single installation without requiring an additional plugin. This can be a multilingual website, but also several independent web presences. In our projects, for example, a main website and several landing pages run together in one installation. Each of these can have its own domain and language.
Our largest project to date demonstrates how big such installations can get: there, we run 20 sites for seven brands across four languages—German, English, Czech, and Polish.
Online, you often find claims that large Craft multi-sites can become problematic. That does not match our experience. What matters most is how the system is planned and, above all, how the content model is structured. Once these foundations are solid, even large installations can be managed smoothly.
Caching in projects like these is a topic in its own right, which we cover in our article on using Blitz Cache for complex multi-sites.
How a Site is Structured in Craft CMS
Each site has a name, a handle, a language, and a base URL. Among other things, the language affects how dates and numbers are displayed. The base URL determines the address at which the site is accessible—this can be a language path like /en/ or a dedicated domain. For standalone web presences, we use dedicated domains.
Individual sections within an installation can also be configured differently per site. This defines where an entry appears, which URI it receives, and which template renders it. Consequently, a section does not need to exist on all sites; a landing page, for example, can have its own dedicated sections.
The propagation method governs what happens when an entry is saved. An entry can remain restricted to the current site or be made available specifically on additional sites.
Translations Are Defined on a Per-Field Basis
For an entry that exists on multiple sites, you can decide on a per-field basis whether a value should be shared or managed separately. Craft CMS provides five translation methods for this purpose.
This decision should be made early, as it significantly impacts the ongoing maintenance effort. An item number or a price usually does not need to be managed separately for each language. Headlines, body text, or image captions are a different story.
Defining all fields as translatable by default may sound flexible at first, but it often creates unnecessary work. That is why we determine during the conceptual phase which fields actually require language-specific versions.
These settings can still be changed later. We have done this in existing projects without losing content. However, it is not completely effortless: the affected content must be subsequently reviewed and manually adjusted in some places.
What the Editorial Team Experiences
In the Control Panel, content editors can switch between different versions using the site switcher. Translatable fields are labeled accordingly, making it immediately clear whether a change affects only the current site or others as well.
User permissions play a crucial role. Separate editing rights can be assigned for each site and combined with permissions for individual sections and content types. For instance, an editor who only manages a landing page will only see that specific site.
Media files, on the other hand, can be shared across multiple sites, eliminating the need to upload and manage the same image multiple times.
For the editorial team, day-to-day work in such an installation still feels like operating separate websites. Editors who manage only one site see very little of the others, which is particularly practical for organizations with independent departments.
When Separate Installations Are the Better Choice
A shared installation offers clear operational advantages: the database, deployment, Craft license, and templates can all be shared. Updates are performed centrally, and content needed across multiple sites only needs to be maintained once.
However, there are valid reasons for separation. If sites require different approval workflows or maintenance windows, a shared system can become impractical, since an update always affects the entire installation.
Similarly, if two sites share no content at all, a combined installation is not automatically the right choice. Furthermore, if it is clear during planning that a site may later be spun off or handed over to another agency, that should also be taken into account.
The decision for or against a shared Craft multi-site depends less on whether websites belong together thematically, and more on how they will be operated and maintained in the long run.
Templates and Custom Designs
Craft CMS can manage multiple websites using shared templates. When locating a template, Craft first checks the folder specific to that site; if no custom version exists there, it falls back to the general template.
This allows you to customize the design of individual sites without having to duplicate every template. We only separate templates when the layout or concept genuinely differs, as copying templates ultimately increases maintenance overhead.
For multilingual sites, technical implementation also involves hreflang tags, correct canonical URLs, and a dedicated XML sitemap. Independent websites running on their own domains typically lack equivalent language versions, meaning hreflang tags are unnecessary there.
If you are currently deciding on a CMS, you can also check out our comparisons of Craft CMS with Drupal and WordPress.
Would you like me to adjust the tone for a specific audience (such as marketing vs. technical documentation), or keep it as-is for a blog post?