?___store Parameter aus Magento urls entfernen

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.