Statamic 6 Multi-Site Setup: ein Repo, viele Sprachen
Statamic 6 unterstützt Multi-Site out of the box. Schritt für Schritt zur deutsch-englischen Site mit shared Blueprints, getrennten Trees und korrektem URL-Routing.
Warum Multi-Site
Eine Codebase, mehrere Sprachen, klare Trennung.
Multi-Site in Statamic 6 ist kein Plugin und kein Hack, sondern ein First-Class-Feature der Statamic-Pro-Lizenz. Sie definieren pro Site eine eigene URL, eine eigene Sprache und ein eigenes Locale - die Inhalte teilen sich Blueprints und Fieldsets, aber jede Site hat ihre eigenen Entries und ihren eigenen Tree. Das passt zur Realität: dieselbe Marke, dieselbe Struktur, anderer Sprachraum.
Multi-Site aktivieren
Aktiviert wird Multi-Site über den please-Befehl. Statamic legt Ihnen dann eine zweite Site in resources/sites.yaml an und richtet die nötigen Ordner-Strukturen unter content/ ein. Bestehende Entries werden automatisch der Default-Site zugeordnet.
# Aktiviert Multi-Site in der App
php please multisite
# Anschließend die sites.yaml prüfen und die zweite Site benennen
# Default heißt sie meist "secondary" - wir benennen sie immer um.
sites.yaml konfigurieren
Pro Site definieren Sie name, locale, url und attributes. Die url darf ein Pfad-Prefix sein (/en/) oder eine eigene Domain. Pfad-Prefix ist einfacher zu betreiben, eigene Domain besser für SEO in stark getrennten Märkten. Wir starten meistens mit Pfad-Prefix und ziehen später um, wenn die SEO-Strategie es verlangt.
default:
name: 'MARCODES (Deutsch)'
locale: de_DE
lang: de
url: /
attributes:
hreflang: de
en:
name: 'MARCODES (English)'
locale: en_US
lang: en
url: /en/
attributes:
hreflang: en
Multi-Site geplant?
Wir setzen Statamic-Multi-Site auf, übersetzen vorhandene Inhalte und richten den Übersetzungs-Workflow ein.
Collections und Trees
Welche Inhalte teilen Sie sich Sites, welche nicht?
Pro Collection entscheiden Sie, welche Sites Sie bedienen. Blog auf beiden Sites - gerne. News nur Deutsch - auch okay. Die Trennung passiert in der Collection-Konfiguration, nicht in der Sites-Konfiguration.
Sites pro Collection festlegen
In der collection-yaml-Datei listen Sie unter sites die Handles aller Sites, auf denen die Collection verfügbar sein soll. Statamic legt dann pro Site einen eigenen Tree unter content/trees/collections/<handle>/<site>.yaml an. Inhalte werden im Control Panel pro Site verwaltet - Übersetzungen sind eigene Entries, keine Übersetzungs-Felder.
title: Blog
route: '{mount}/{slug}'
mount: 8c5d4f7a-0123-4567-89ab-cdef01234567
template: blog/show
sort_dir: desc
sort_field: date
sites:
- default
- en
taxonomies:
- tags
propagate: false
propagate true oder false?
Mit propagate true legt Statamic neue Entries automatisch in allen Sites als unveröffentlichte Kopie an. Klingt komfortabel, sorgt aber für Geisterseiten, wenn ein Sprachzweig regelmäßig ohne Übersetzung bleibt. Unsere Empfehlung: propagate auf false und Übersetzungs-Workflow im Control Panel.
Routing
URLs sauber pro Site auflösen.
Statamic erkennt die Site automatisch über die url aus sites.yaml. Innerhalb von Templates und Tags haben Sie die aktuelle Site überall verfügbar - wichtig für Sprach-Switcher, hreflang-Tags und sprachspezifische Globals.
<ul class="lang-switch">
{{ locales }}
<li>
{{ if current }}
<span aria-current="page">{{ name }}</span>
{{ else }}
<a href="{{ url ?? site:url }}" hreflang="{{ short_locale }}">
{{ name }}
</a>
{{ /if }}
</li>
{{ /locales }}
</ul>
Ihre hreflang-Tags nicht vergessen
Google braucht pro Sprach-Variante einen link rel="alternate" hreflang im head. Setzen Sie zusätzlich x-default auf Ihre Default-Site. Ohne hreflang ranken zwei Sprachversionen oft gegeneinander statt nebeneinander.
Artikel teilen
Hat das geholfen? Wir machen Audit, Workshop oder Coaching auch live.
Pakete direkt im Shop. Unser Standard-Tagessatz liegt bei 1.500 € netto.