Markus Michalski FAQ

XML Sitemap Generator: Generierung und Console Command

Sitemaps erzeugen: Button in der Plugin-Konfiguration, geplanter Task und Console Command mmd:sitemap:generate mit allen Optionen (clear, type, sales-channel, dry-run) sowie Cronjob-Alternative.

English Version

Zurück zur Übersicht

XML Sitemap Generator: Generierung und Console Command

Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net

Es gibt drei Wege, Sitemaps zu erzeugen. Alle drei nutzen denselben Generator und schreiben in dieselben Dateien.

Admin-Button Scheduled Task Console Command
Sales Channels der in der Konfiguration gewählte alle aktiven Storefront-Sales-Channels, für die die geplante Generierung aktiv ist alle aktiven Storefront-Sales-Channels oder einer per -s
Inhaltstypen alle aktivierten alle aktivierten alle aktivierten, einschränkbar per -t
Alte Dateien löschen immer immer nur mit -c / --clear

Admin-Button

In der Plugin-Konfiguration (Erweiterungen > Meine Erweiterungen > Erweiterte XML Sitemap) zeigt die Karte Manuelle Generierung für den oben gewählten Sales Channel die Anzahl der URLs insgesamt und je Typ (Produkte, Kategorien, CMS-Seiten, Hersteller).

Die angezeigten Zahlen sind Näherungswerte aus der Datenbank: Sie berücksichtigen weder den Filter Leere Kategorien ausschließen noch die Trennung von Kategorien und CMS-Seiten noch fehlende SEO-URLs. Die tatsächliche Zahl steht nach der Generierung im Ergebnis.

Der Button nutzt die Admin-API, siehe Admin-API.

Scheduled Task

Der Task mmd.sitemap.generation läuft im eingestellten Intervall (Standard: täglich) und erzeugt für jeden aktiven Storefront-Sales-Channel alle aktivierten Typen. Bestehende sitemap*.xml-Dateien im Zielverzeichnis des jeweiligen Sales Channels werden vorher gelöscht. Schlägt ein Sales Channel fehl, schreibt der Task einen Fehler ins Log und macht mit dem nächsten weiter.

Einstellungen und Voraussetzungen stehen unter Konfiguration und Installation.

Console Command

bin/console mmd:sitemap:generate

Optionen

Option Beschreibung
-s, --sales-channel Nur für diese Sales-Channel-ID generieren. Ohne Angabe werden alle aktiven Storefront-Sales-Channels verarbeitet
-t, --type Nur diese Typen generieren: products, categories, cms, manufacturers. Mehrfach angebbar
-c, --clear Bestehende sitemap*.xml-Dateien im Zielverzeichnis vor der Generierung löschen
--dry-run Nichts schreiben, nur die URL-Anzahl je aktiviertem Typ anzeigen

Typen, die in der Konfiguration des Sales Channels ausgeschaltet sind, werden auch mit -t nicht erzeugt. Unbekannte Werte bei -t werden ignoriert. Bleibt kein Typ übrig, meldet der Befehl, dass für den Sales Channel kein Sitemap-Typ aktiviert ist.

Mit --dry-run listet der Befehl die URL-Anzahlen aller aktivierten Typen des Sales Channels, unabhängig von -t. Es sind dieselben Näherungswerte wie im Admin.

Beispiele

# Nur Produkte-Sitemap generieren
bin/console mmd:sitemap:generate -t products

# Alte Sitemaps löschen und neu generieren
bin/console mmd:sitemap:generate --clear

# Mehrere Typen
bin/console mmd:sitemap:generate -t products -t categories

# Nur für einen bestimmten Sales Channel
bin/console mmd:sitemap:generate -s 019b7dfcab75700fada02799328e8440

# Nur zählen, nichts schreiben
bin/console mmd:sitemap:generate --dry-run

Der Befehl gibt je Sales Channel die wirksame Konfiguration, den Ausgabepfad und die geschriebenen Dateien aus. Er endet nur dann mit einem Fehlercode, wenn kein aktiver Sales Channel gefunden wurde. Der Schalter für die geplante Generierung hat auf den Befehl keinen Einfluss.

Cron als Alternative zum Scheduled Task

Wenn du den Shopware-Scheduler nicht nutzen möchtest, schalte Automatische Generierung aktivieren aus und erzeuge die Sitemaps per Cronjob:

# Täglich um 3 Uhr
0 3 * * * cd /var/www/shopware && bin/console mmd:sitemap:generate --clear

Laufen Task und Cronjob gleichzeitig, wird die Sitemap doppelt erzeugt. Nutze nur einen der beiden Wege.