Gambio SEO: Kategorien aus Produkt-URLs entfernen
Da ich mich heute zum ersten mal seit langem wieder blöd gegooglet habe, hier eine kleine Hilfe für alle die mit dem Gambio GX Shop arbeiten.
Vorweg darf ich mich kurz aufregen
Gambio basiert, wie so viele andere Shopsysteme auch, auf XT-Commerce aka XTC. Damit zu arbeiten ist an sich schon ein Krampf, auch wenn man in allen möglichen Derivaten schon so lange herum hantiert hat wie ich. Nicht nur dass ich heute wieder etliche Sicherheitslücken entdeckt habe – nein, vor allem regt mich enorm auf dass die Gambio GmbH ihr Marketing so chic auf SEO ausgerichtet hat, es dann aber nicht gebacken bekommt selbiges auch im Admininterface umzusetzen.
Es ist in Gambio quasi unmöglich alle relevanten Dinge auch nur ansatzweise flexibel einzustellen, ohne vorher einen Rundumschlag im Core des Shops anzuzetteln. Schlussfolglich ist ein unkompliziertes Einspielen offizieller Patches danach selbstmurmelnd nicht mehr drin. Aber heute macht halt jeder “SEO” der sich mit Websites beschäftigt… Einfach öfter mal Software selbst benutzen die man so schreibt. Soll echt helfen.
Fein – What’s the matter?
Nun zum eigentlichen Anliegen. Wir kennen das Problem – Der Kunde hat einen Online-Shop und verkauft Schuhe. Nun kann dieser Shop Kategorien haben, wie z.B.:
- Markenname X
- Wanderschuhe
- Sneakers
- Halbschuhe
- Damenschuhe
Ein Produkt kann somit also in mehreren Kategorien verlinkt sein. Eine Produkt-URL enthält bei Gambio standardmäßig immer auch die Kategorien, Konsequenz daraus ist der typische Duplicate Content Issue. Gleicher Inhalt unter mehreren URLs. Mit dem Canonical-Tag nicht vernünftig zu lösen, zumal sich zugeordnete Kategorien und deren Namen im Laufe der Zeit ja ändern können. Wir wollen also minimalistische Produkt-URLs, die möglichst nichts anderes enthalten als den gegebenen Namen (“laufschuh-deluxe.html”), ohne Unterverzeichnisse oder derlei Schnickschnack.
Nach checken der .htaccess und der üblichen Verdächtigen, war mein Schnellschuss das simple auskommentieren folgender Zeile:
1 2 3 | //datei "/gm/classes/GMSEOBoost.php" //methode "get_boosted_product_url()" if($path != '') $link .= $path . '/'; |
Schon sind die Kategorien verschwunden und alles ist noch ansprechbar wie gewünscht. Soll natürlich nicht heissen, dass man jetzt nicht noch auf weitere Probleme treffen kann – ich halte euch auf dem laufenden wenn’s passiert ;o)
[ EDIT 25.07.2010 ]
Damit die URLs auch korrekt in der “sitemap1.xml” angezeigt werden, muss man im Gambio Admin-Ordner noch folgende Änderung durchführen:
1 2 3 4 5 6 7 | //datei "/admin/gm/classes/GMSitemapXML.php" //methode "get_products()", ca. zeile 371 #ersetzen von: $gm_array['link'] = $this->coo_cat_path . $this->coo_cat_sub_path . $t_prd_url . '.html'; #mit $gm_array['link'] = $t_prd_url . '.html'; |
Hat jemand schon ähnliche Problemstellungen gehabt oder eine bessere Lösung parat? Immer her damit, ich freu mich drauf!




Danke
Hallo,
Die Idee ist ja gut. Macht es denn Sinn, die URL soweit zu kürzen. Damit gehen dann doch alle Keyword aus den Kategorienamen flöten.
Das ist so weit korrekt. Meine Meinung ist allerdings, dass es viel wichtiger ist Duplicate Content zu vermeiden, als Keywords in der URL zu haben. (Das erste Problem ist klar geworden?)
Die Keywords in der URL sind ja erstmal kein Rankingkriterium an sich, sondern machen sich nur bemerkbar wenn man die Seite extern mit der URL als Anchortext verlinkt. Solang dann der Produkt-Dateiname vernünftig benannt ist, hat man mit den entfernten Kategorien sogar eher einen Vorteil. Der Linktext ist halt kürzer und erhält somit mehr Value. Zu guter letzt noch der Hinweis, dass Anchortext nach zu vielen Trennzeichen ( “.”, “-”, “/”, … ) auch gar nicht mehr gewertet wird.
Für den Shop unter deiner Mailadresse wünsche ich übrigens viel Erfolg damit es bald wieder bergauf geht.
Hi Abro !!!
Hast Du irgendwelche Neuigkeiten ob die Kategorielöschung was gebracht hat?
Gibt es eine Möglichkeit schon indixierte Kategorien/ Doppelten Content nachträglich zu löschen.
Dankeschön
Bereits indexierte Ordner sind bei der Technik definitiv ein kritisches Problem. Da man Gambio nicht anweisen kann für die alten URLs 404 zu liefern hat man wieder die ganzen Standardmöglichkeiten – .htaccess, Canonical, Robots.txt. Welchen Weg man geht ist wohl eine Frage der eigenen Versiertheit und des Zeitaufwandes.
Holla
also nach dem letzten update von gambio ist die /gm/classes/GMSEOBoost.php umgeschrieben worden.
leider ist deine lösung nun nicht mehr anwendbar
Hallo Holla,
es geht schon noch, kannst nur nicht nach den ganzen Codefragmenten suchen die Abro gepostet hat. Ich habs schon probiert, geht.
Bevor ich es wirklich umstelle, hab ich aber ein anderes Problem: Wie schreib ich ein mod_rewrite-Rule um alle *.html Dateien auf http://www.domain.de/*.html per mit 301 Code umzuleiten? Irgendwie blick ich es nicht… Bin schon seit 3 Stunden am Suchen und Probieren, geht ni… Mist.
[Edit]
Hmm, zu schnell abgeschickt. Also ich möchte die 301 Weiterleitung einrichten, da schon viele URLs im Index sind und die sollen korrekt weitergeleitet werden.
Aber ich schaff es nicht das Rule zu kreieren um alles zwischen Domain und Dateiname rauszuschmeißen und dahin weiterzuleiten.
Wäre superklasse wenn da jemand nen Tip hätte.
@Sascha, Schnellschuss:
RewriteRule ^.+(\/.*?\.html) /$1 [L,R=301]
Ob das für deinen Fall wirklich funktioniert musst du gucken, pass auf dass nicht zu viele URLs umgeleitet werden.
@All:
Dass es für mich nahezu unmöglich ist solche Blog-Artikel aktuell zu halten wenn Gambio & Co. ein Update releasen bitte ich zu entschuldigen. Falls jemand eine aktuellere Anleitung schreiben mag verlinke ich sie liebendgerne oder stelle Sie als Gastbeitrag hier online – einfach melden =)
Okay maddine, in Gambio GX 2.6d gehts so
Wer schon Urls im Index hat und die URLs umleiten will, in der .htaccess folgendes einfügen
RewriteRule ^.+(\/.*?\.html) $1 [L,R=301]
Danke an Abro (war nur ein Slash zuviel, ansonsten Schnellschuss ins Schwarze
)
Jetzt wollt ich gleich noch bei den Contentseiten das /info/ im Pfad rausnehmen, allerdings, wenn ich in der GambioSEOBoost.php Zeile 308
$link = ‘info/’. $link_name .’.html’;
in
$link = ”. $link_name .’.html’;
funktioniert das nicht auf Dauer.
Hab keine Ahnung, warum die Seiten erst gefunden wurden und mittlerweile nicht mehr.