XML-Sitemap: Konfiguration
Konfiguration der XML-Sitemap für Sylius 2: globale Schlüssel mit Standardwerten, Einstellungen pro Channel im Admin, Bilder auf einem CDN, statische Seiten, robots.txt und mehrere Channels.
XML-Sitemap: Konfiguration
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Die Konfiguration besteht aus zwei Teilen: den globalen Schlüsseln in config/packages/mmd_sylius_sitemap.yaml und den Einstellungen pro Channel im Admin.
Globale Schlüssel
Alle Schlüssel sind optional:
mmd_sylius_sitemap:
scheme: https
storage_dir: '%kernel.project_dir%/var/sitemap'
max_urls_per_file: 50000
max_bytes_per_file: 47185920
image_base_path: /media/image/
static_routes:
- sylius_shop_homepage
| Schlüssel | Standard | Beschreibung |
|---|---|---|
scheme |
https |
Schema aller erzeugten absoluten URLs. Erlaubt sind http und https |
storage_dir |
%kernel.project_dir%/var/sitemap |
Ablageordner der erzeugten Dateien, ein Unterordner pro Channel. Darf nicht leer sein |
max_urls_per_file |
50000 |
Ab dieser URL-Anzahl beginnt eine neue Datei. Erlaubt sind 1 bis 50000 (Grenze des Sitemap-Protokolls) |
max_bytes_per_file |
47185920 (45 MiB) |
Ab dieser unkomprimierten Größe beginnt eine neue Datei. Erlaubt sind 1024 Byte bis 52428800 Byte (50 MiB) |
image_base_path |
/media/image/ |
Öffentlicher Pfad, unter dem lokale Produktbilder ausgeliefert werden |
static_routes |
[sylius_shop_homepage] |
Shop-Routen ohne Parameter, die je Sprache einmal aufgeführt werden |
Eine Datei wird bei dem Limit geteilt, das zuerst erreicht ist. So bleibt die 50-MB-Grenze des Protokolls auch bei vielen Sprachen und Bildern pro Produkt eingehalten.
storage_dirmuss Deployments überstehen und für den Benutzer des Befehls schreibbar sowie für den Webserver lesbar sein. Wie du das sicherstellst, steht unter Installation und Betrieb.
Einstellungen pro Channel
Admin-Seitenleiste → MMKreativ Plugins → XML-Sitemap
Die Seite zeigt ein Grid mit den Spalten Channel, Aktiviert, URLs und Zuletzt generiert. Über „Erstellen“ legst du pro Channel eine Zeile an, über die Zeilenaktionen bearbeitest oder löschst du sie. Pro Channel gibt es höchstens eine Zeile. Beim Bearbeiten lässt sich der Channel nicht mehr ändern, damit bereits erzeugte Dateien nicht verwaisen.
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Sitemap für diesen Channel aktivieren | aus | Hauptschalter. Nur aktivierte Channels werden generiert und ausgeliefert |
| Produkte | an | Produkte aufnehmen |
| Kategorien | an | Kategorien aufnehmen |
| Statische Seiten | an | Startseite und die in static_routes genannten Routen aufnehmen |
| Produktbilder | an | Bilder je Produkt-URL auflisten (Image-Sitemap) |
| Hreflang-Alternativen | an | Sprachversionen einer Seite untereinander verlinken. Wirkt nur bei mehr als einer Sprache |
| Produkte: Änderungshäufigkeit | wöchentlich | Wert für changefreq |
| Produkte: Priorität | 0.8 | Wert für priority |
| Kategorien: Änderungshäufigkeit | wöchentlich | Wert für changefreq |
| Kategorien: Priorität | 0.6 | Wert für priority |
| Statische Seiten: Änderungshäufigkeit | monatlich | Wert für changefreq |
| Statische Seiten: Priorität | 0.5 | Wert für priority |
Die Änderungshäufigkeit kennt die Werte immer, stündlich, täglich, wöchentlich, monatlich, jährlich und nie. Die Priorität liegt zwischen 0.0 und 1.0 in Schritten von 0.1 und ist nur ein Hinweis an Suchmaschinen auf die relative Wichtigkeit innerhalb deiner eigenen Seite. Es gibt je Inhaltstyp einen Wert für den ganzen Channel, keinen pro Produkt oder Kategorie.
Ein Channel braucht einen Hostnamen und eine Standardsprache und muss in Sylius aktiviert sein. Sylius löst nur aktivierte Channels über den Host auf, Dateien eines deaktivierten Channels würden nie ausgeliefert. Fehlt etwas davon, meldet die Generierung einen Fehler für diesen Channel.
Praxis-Beispiele
Einsprachiger Shop mit Standardwerten
Im Admin eine Zeile für den Channel WEB anlegen, „Sitemap für diesen Channel aktivieren“ ankreuzen, speichern und generieren. Die static_routes bleiben bei sylius_shop_homepage.
Shop mit Bildern auf einem CDN
Liegen die Produktbilder auf einem CDN und speichert Sylius dafür eine absolute URL im Bildpfad (zum Beispiel https://cdn.example.com/media/produkt.jpg), übernimmt das Plugin diese URL unverändert. image_base_path wirkt nur auf Pfade ohne http:// oder https://. Liegen lokale Bilder unter einem anderen Pfad, passt du ihn an:
mmd_sylius_sitemap:
image_base_path: /uploads/produkte/
Weitere statische Seiten aufnehmen
Alle Shop-Routen ohne Parameter lassen sich aufnehmen. Eigene Routen trägst du zusätzlich zur Startseite ein:
mmd_sylius_sitemap:
static_routes:
- sylius_shop_homepage
- app_shop_imprint
- app_shop_about
app_shop_imprint und app_shop_about stehen hier für Routen deiner eigenen Anwendung. Jede Route erscheint einmal pro Sprache des Channels.
Eigener Ablageordner auf dauerhaftem Speicher
mmd_sylius_sitemap:
storage_dir: /var/shared/sitemap
In der robots.txt bekanntmachen
Die Sitemap liegt unter https://<Host des Channels>/sitemap-index.xml. Trage sie in die robots.txt des jeweiligen Hosts ein:
Sitemap: https://shop.example.com/sitemap-index.xml
Das Plugin liefert keine Twig-Funktion und keine
robots.txt. Die Zeile trägst du selbst in dierobots.txtein, die dein Shop ausliefert.
Mehrere Channels
Lege für jeden Channel eine eigene Zeile an. Jeder Channel bekommt eigene Dateien unter storage_dir/<Channel-Code>/ und wird auf seinem eigenen Host ausgeliefert.