XML Sitemap Generator: Fehlerbehebung
Fehlerbehebung für den XML Sitemap Generator in OXID eShop 7: leere oder fehlende Sitemaps, nicht abrufbare Dateien, überschriebene Sprachen, fehlender Admin-Button, abgeschnittene URLs.
XML Sitemap Generator: Fehlerbehebung
Der Befehl "mmd:sitemap:generate" ist nicht bekannt
Prüfen: Ist das Modul installiert und aktiviert?
vendor/bin/oe-console oe:module:activate mmd_sitemap
vendor/bin/oe-console oe:cache:clear
Danach den Befehl erneut aufrufen. Der Befehl wird mit dem Modul registriert, nicht vorher.
Es entsteht keine Datei oder "No URLs for ..."
Prüfen:
- Ist der Inhaltstyp in den Einstellungen aktiv? Abgeschaltete Typen meldet der Befehl als übersprungen
- Sind die Objekte aktiv und nicht versteckt?
- Haben die Objekte eine SEO-URL in der betreffenden Sprache? Die Abfragen verknüpfen mit der Tabelle
oxseo, Objekte ohne SEO-URL fehlen in der Sitemap - Bei Produkten: Sind es nur Varianten und ist "Varianten ausschließen" aktiv?
- Bei Kategorien und Herstellern: Ist "Leere Kategorien ausschließen" beziehungsweise "Leere Hersteller ausschließen" aktiv und gibt es aktive Produkte?
Lösung: SEO-URLs im OXID-Admin neu erzeugen lassen und die Filter-Einstellungen prüfen.
Die Datei sitemap-static.xml fehlt
Prüfen:
- Ist Statische URLs aktivieren eingeschaltet? Standardmäßig ist es aus
- Gibt es aktive Einträge in der Tabelle
mmd_sitemap_static_urlsmitOXSHOPID= 1? - Existiert die Tabelle? Fehlt sie, deaktiviere und aktiviere das Modul einmal
Die Sitemap enthält nur eine Sprache
Bei mehreren Sprachen schreiben alle Durchläufe in dieselbe Datei, die zuletzt verarbeitete Sprache bleibt übrig.
Lösung: Erzeuge die gewünschte Sprache gezielt mit -l <Sprach-ID>. Die Sprach-ID entspricht der Reihenfolge der Sprachen in der Shop-Konfiguration, beginnend bei 0.
Der Index sitemap.xml führt nur einen Teil der Dateien auf
Der Index enthält nur die Dateien des letzten Laufs. Nach einem Lauf mit -t oder -l bleiben zwar die anderen Dateien im Verzeichnis liegen, stehen aber nicht mehr im Index.
Lösung: Erzeuge wieder alle Typen in einem Lauf (mmd:sitemap:generate ohne -t).
Die Sitemap-URL liefert einen Fehler oder 404
Prüfen:
- Liegt
sitemap.xmlwirklich insource/<Ausgabeverzeichnis>/? Standard istsource/export/ - Entspricht die URL dem Schema
<Shop-URL>/<Ausgabeverzeichnis>/sitemap.xml? Die Shop-URL stammt aus dem Feld URL des Shops mit der ID 1 - Blockiert eine
.htaccessoder Webserver-Regel das Verzeichnisexport?
Lösung: Passe das Ausgabeverzeichnis in den Einstellungen auf ein öffentlich erreichbares Verzeichnis unterhalb von source/ an und erzeuge die Sitemap neu.
Die URLs in der Sitemap haben keinen Host
Die Adressen der Inhalte entstehen aus der Sprach-URL der jeweiligen Sprache plus der SEO-URL. Fehlt die Sprach-URL, fällt das Modul auf die Shop-URL zurück, ist sie leer eingetragen, bleibt der Host leer.
Prüfen: Steht in den Sprach-URLs der Shop-Konfiguration (aLanguageURLs) ein leerer Wert, und ist die Shop-URL des Shops mit der ID 1 gesetzt?
Der Button "Sitemap generieren" meldet "Console command not found"
Prüfen:
- Existiert
vendor/bin/oe-consoleim Shop-Root, also im Verzeichnis oberhalb vonsource/? - Ist
exec()in der PHP-Konfiguration des Webservers erlaubt?
Lösung: Starte die Generierung stattdessen per Konsole oder Cronjob.
"Failed to write ..." beim Generieren
Das Modul kann die Datei nicht schreiben.
Prüfen: Schreibrechte des Webserver- beziehungsweise Konsolen-Benutzers auf das Ausgabeverzeichnis. Das Modul legt fehlende Verzeichnisse mit den Rechten 0755 an.
Es fehlen URLs bei sehr großen Shops
Für Produkte, Kategorien, CMS-Seiten und Hersteller werden pro Typ höchstens 50.000 URLs geschrieben, weitere werden abgeschnitten. Eine Aufteilung in mehrere Dateien gibt es nicht, und die Einstellung "Max. URLs pro Sitemap" ändert daran nichts. Produkte werden nach Änderungsdatum absteigend sortiert, die jüngsten Produkte bleiben also erhalten. Die statische Sitemap hat kein Limit.
Dateien früherer Läufe sind noch vorhanden
Das Modul löscht nur mit --clear, und zwar alle sitemap*.xml im Ausgabeverzeichnis. Ohne --clear bleiben Dateien früherer Läufe liegen, auch von Typen, die inzwischen abgeschaltet sind. Sie stehen dann aber nicht im neuen Index.