Professioneller XML Sitemap Generator für Shopware 6.7 nach Google-Standards.
Live Demo: Teste alle Plugins für OXID eShop und Shopware von Markus Michalski live — ohne Installation, ohne Risiko. demo.markus-michalski.net
1. Privates Repository hinzufügen
{
"repositories": [
{
"type": "composer",
"url": "https://packeton.markus-michalski.net"
}
]
}
Hinweis: Die Repository-Zugangsdaten werden nach dem Lizenzkauf bereitgestellt.
2. Plugin installieren
composer require mmd/shopware6-sitemap
3. Plugin aktivieren
bin/console plugin:refresh
bin/console plugin:install --activate MmdSitemap
bin/console cache:clear
Empfehlung: Shopware Store oder Composer-Installation bevorzugen für einfache Updates.
Auf die neueste Version aktualisieren:
composer update mmd/shopware6-sitemap
bin/console cache:clear
Alle Sitemaps generieren:
bin/console mmd:sitemap:generate
| Option | Beschreibung |
|---|---|
-c, --clear |
Bestehende Sitemaps vor Generierung löschen |
-t, --type |
Nur bestimmte Typen generieren (products, categories, cms, manufacturers) |
-s, --sales-channel |
Nur für bestimmten Sales Channel generieren |
# 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 bestimmten Sales Channel
bin/console mmd:sitemap:generate -s 019b7dfcab75700fada02799328e8440
Zugriff auf das Sitemap-Dashboard im Shopware Admin:
Einstellungen > Erweiterungen > Erweiterte XML Sitemap
Features:
Plugin-Konfiguration im Shopware Admin unter:
Einstellungen > Erweiterungen > Erweiterte XML Sitemap
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Automatische Generierung aktivieren | An | Aktiviert den Scheduled Task |
| Generierungs-Intervall | Täglich | Stündlich, Alle 6 Stunden, Alle 12 Stunden, Täglich, Wöchentlich |
Aktivieren/deaktivieren welche Content-Typen enthalten sein sollen:
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Produkte einbeziehen | An | Produkt-URLs in Sitemap aufnehmen |
| Kategorien einbeziehen | An | Kategorie-URLs in Sitemap aufnehmen |
| CMS Seiten / Landing Pages einbeziehen | An | Landing Pages und Service-Navigation (Impressum, AGB, etc.) |
| Hersteller einbeziehen | Aus | Hinweis: Shopware 6 stellt standardmäßig keine SEO-URLs für Hersteller bereit. Hierfür wird ein Drittanbieter-Plugin benötigt. |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Hreflang-Tags generieren | An | Aktivieren für mehrsprachige Shops |
| Produktbilder einbeziehen | An | Image-Sitemap Tags für Produkte |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Leere Kategorien ausschließen | An | Kategorien ohne Produkte überspringen |
| Produktvarianten einbeziehen | Aus | Varianten zusätzlich zu Hauptprodukten aufnehmen |
| Ausverkaufte Produkte ausschließen | Aus | Produkte mit Lagerbestand = 0 überspringen |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Max. URLs pro Sitemap-Datei | 50000 | Google-Limit ist 50.000 |
| Ausgabeverzeichnis | sitemap | Basis-Verzeichnis für Sitemap-Dateien (relativ zu public/) |
| Sales Channel Slug | (leer) | Pro Sales Channel eindeutiger Unterordner-Name (z.B. main, b2b). Leer = Sales Channel ID wird als Fallback genutzt. |
Wichtig: Ab Version 1.0.3 schreibt jeder Sales Channel seine Sitemap-Dateien in einen eigenen Unterordner, um gegenseitiges Überschreiben zu verhindern. Ab dieser Version lässt sich der Ordnername pro Sales Channel als lesbarer Slug konfigurieren.
Öffne die Plugin-Konfiguration und wechsle oben den Sales Channel (Auswahlfeld oben im Konfigurationsdialog). Pro Sales Channel setze das Feld Sales Channel Slug:
| Sales Channel | Slug (Beispiel) | Ergebnis-Pfad |
|---|---|---|
| Hauptshop (B2C) | main |
public/sitemap/main/sitemap.xml |
| B2B-Shop | b2b |
public/sitemap/b2b/sitemap.xml |
| Englischer Shop | en |
public/sitemap/en/sitemap.xml |
a-z, 0-9, Bindestrich (-), Unterstrich (_)- ersetztWenn der Slug nicht konfiguriert ist, fällt das Plugin automatisch auf die Sales Channel ID zurück:
public/sitemap/383daa095f4449839949a420f0759a7e/sitemap.xml
public/sitemap/98e7f4b2c1d84e3aa5c7f9b2d4e6a1b8/sitemap.xml
Der Bugfix gegen gegenseitiges Überschreiben ist damit auch ohne manuelle Konfiguration aktiv.
Das Plugin generiert Dateien im konfigurierten Ausgabeverzeichnis, pro Sales Channel in einem eigenen Unterordner:
public/sitemap/
├── main/ # Sales Channel 1 (Slug: "main")
│ ├── sitemap.xml # Sitemap Index
│ ├── sitemap-products.xml # Produkte (mit Bildern und hreflang wenn aktiviert)
│ ├── sitemap-categories.xml # Produktkategorien
│ ├── sitemap-cms.xml # CMS-Seiten (Landing Pages + Impressum, AGB, etc.)
│ └── sitemap-manufacturers.xml # Hersteller (wenn Plugin vorhanden)
└── b2b/ # Sales Channel 2 (Slug: "b2b")
├── sitemap.xml
├── sitemap-products.xml
├── sitemap-categories.xml
└── sitemap-cms.xml
Bei großen Shops mit 50.000+ URLs pro Typ werden Dateien automatisch aufgeteilt:
public/sitemap/main/
├── sitemap.xml
├── sitemap-products-1.xml
├── sitemap-products-2.xml
└── ...
Das Plugin trennt intelligent zwischen:
Diese Trennung folgt Googles Empfehlung, verschiedene Content-Typen in separaten Sitemaps zu führen.
Falls der Shopware Scheduled Task nicht gewünscht ist, kann die Generierung auch via Cron erfolgen:
# Täglich um 3 Uhr
0 3 * * * cd /var/www/shopware && bin/console mmd:sitemap:generate --clear
Sitemap-Location zur robots.txt hinzufügen — pro Sales Channel mit dem jeweiligen Slug:
# Hauptshop (Slug: main)
Sitemap: https://dein-shop.de/sitemap/main/sitemap.xml
# B2B-Shop (Slug: b2b, auf anderer Domain)
Sitemap: https://b2b.dein-shop.de/sitemap/b2b/sitemap.xml
Migration von Version < 1.0.3: Wenn du von einer älteren Version aktualisierst, ändern sich die Sitemap-URLs. Aktualisiere deine
robots.txtund die Einträge in der Google Search Console auf die neuen Pfade mit Sales-Channel-Unterordner.
Kurze Antwort: Google ignoriert diese Werte weitgehend.
Google hat bereits 2017 offiziell bestätigt, dass changefreq und priority "ziemlich ignoriert" werden. Der Googlebot crawlt basierend auf:
Die lastmod-Angabe wird hingegen berücksichtigt - aber nur wenn sie akkurat ist. Falsche oder manipulierte lastmod-Werte führen dazu, dass Google sie komplett ignoriert.
Was bedeutet das für dieses Plugin?
lastmod wird automatisch aus den Shopware-Daten generiert (updatedAt/createdAt)changefreq und priority werden mit sinnvollen Standardwerten gesetzt, sind aber nicht konfigurierbar - das würde nur unnötige Komplexität schaffenlastmod-Werten und strukturell sauberen SitemapsQuellen:
Kommerzielle Lizenz - Einzelinstallations-Lizenz inklusive:
Siehe LICENSE-Datei für vollständige Bedingungen.
Für Kunden, die dieses Plugin über den Shopware Store erworben haben, erfolgt der technische Support ausschließlich über das offizielle Shopware Support-Ticket-System in Ihrem Shopware-Account. Für allgemeine, projektbezogene oder kommerzielle Anfragen außerhalb des Store-Frameworks erreichen Sie mich unter support@markus-michalski.net.