Man ist gerade dabei den eigenen Magento Shop in mehreren Sprachen verfügbar zu machen und stößt einige Wochen später auf ein großes Problem: der Magento Shop produziert sehr viel Duplicate-Content, welcher von Google liebend gerne indexiert wird. Plötzlich erscheinen viele Seiten im Index, welche den ___store-Parameter beinhalten und dabei unschöne Urls wie http://www.beispielshop.de/?___store=english oder http://www.beispielshop.de/?___store=default erzeugen. Theoretisch kann dadurch jede Produkt-Unterseite mehrfach indexiert werden, was zu Rankingverlusten führen kann.
Wie so oft in der Software Entwicklung kann man das Problem auf mehreren Wegen lösen.
Lösung 1: Store Parameter als festen Bestandteil in die Url aufnehmen
Magento bietet die Möglichkeit einen Shop mit mehreren Sprachen auf einer Domain zu betreiben. Ist die Option aktiviert, wird in den Verzeichnisbaum automatisch der jeweilige Storecode integriert. Die Url für den default Shop würde dann zum Beispiel so ausschauen: http://www.beispielshop.de/default/produkt123.html
Die Option ist in der Magento Konfiguration unter System -> Configuration -> Web -> URL Options mit dem Namen Add Shop Code to URLs auffindbar. Steht diese Option auf „Ja“ wird der Url Pfad automatisch erweitert.
Falls dieser Lösungsansatz gewählt wird, ist es sinnvoll dem default Shop einen „sprechenden“ Namen zu geben. Der Name des Shops kann in Magento unter System -> Manage Shops angepasst werden.
Lösung 2: Das Template modifizieren
Bei der zweiten, üblichen Lösung für das Problem passt man das Template an einer Stelle minimal an. Hierzu muss in dem language-switcher Template in der Datei page/switch/languages.phtml folgende Stelle:
mit folgender Steller ersetzt werden:
Nach der Änderung erstellt Magento die Wechsel Urls ohne den ___store-Parameter.
Hi Alexander,
eine schöne Zusmamenfassung. Ich musste gleich einmal die Lösung 2 testen, leider funktioniert das überhaupt nicht.
Eine Idee woran es liegen könnte?
Hi Kai, bei mir hats bisher immer problemlos funktioniert. Bist du im richtigen Template? Hast du eventuell Extensions die das Template überschreiben? Oder die Funktion überschreiben?
Viele Grüße,
Alexander
In dme Bereich habe ich https://github.com/Knectar/Magento-Store-Codes installiert, könnte es daran liegen? Der fehler tritt nämlich nur beim default storecode auf der eigentlich ausgeblendet werden sollte.
Hi Kai,
ich kenn das Plugin leider nicht und kann daher keine wirkliche Aussage treffen. Allerdings würde ich einfach mal das Plugin deaktivieren und schauen, ob das Problem noch besteht.
Viele Grüße,
Xandi