Abro, April 2010

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!



20 kreative Kommentare

  1. Gast, 17.07.2010 22:02h

    Danke :)

  2. Ralph, 06.09.2010 11:31h

    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.

  3. Abro, 06.09.2010 11:59h

    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.

  4. Getränkekühlschrank, 18.10.2010 21:19h

    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

  5. Abro, 19.10.2010 08:45h

    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.

  6. maddine, 14.02.2011 19:37h

    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 :-(

  7. Sascha, 30.07.2011 22:37h

    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.

  8. Abro, 31.07.2011 18:21h

    @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 =)

  9. Sascha, 01.08.2011 02:18h

    Okay maddine, in Gambio GX 2.6d gehts so

    326
    327
    328
    329
    330
    331
    332
    333
    
    //datei /admin/gm/classes/GMSitemapXML.php
    $path = $this->get_product_path($pID, $language_id);
    #bof Kategoriepfad entfernen 
      #if($path != '')
      #{
      #  $link .= $path . '/';
      #}
    #eof Kategoriepfad entfernen
    371
    372
    373
    374
    375
    376
    377
    
    //datei /admin/gm/classes/GMSitemapXML.php  
    //methode "get_products()"
     
    #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'

    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.

  10. magda, 25.11.2012 14:42h

    Vielen Dank!
    Weiß man was ab 2.7 braucht man in SitemapXML umschreiben?

  11. Adam, 07.02.2013 12:03h

    Mal ne Frage dazu….
    Wir haben hier ja ein Produkt in mehr als einer Kategorie….

    Wie sieht denn dann die Breadcrumb des Produktes aus?

    Von WordPress aus kenne ich das mit Trennung durch ein “,”. In einem Shop oder einen Poratl kann man das natürlich auch so lösen, aber wie wird die Breadcrumb dann in der SERP übernommen? Dann ist der Pfad ja eigentlich nicht mehr sauber zuzuordnen. Wäre es hier nicht dann doch besser sich für eine “Haupt-URL” zu entscheiden und den canonical zu nutzen?

    VG.
    Adam

  12. Abro, 08.02.2013 22:21h

    Hallo Adam,

    sorry vorab – ich gebe dir mangels Zeit mal eine etwas unzufriedenstellende Antwort. Für genaueres kannst du mich gerne nochmal anmailen:

    • Gambio zeigt bei mir nur eine Breadcrumb-Version an, egal über welche Kategorie man das Produkt aufruft.
    • Und genau die Breadcrumb, welche auf der Produktseite angezeigt wird, erscheint dann auch in den SERPs. Spätestens wenn man mit speziellem Markup etwas nachhilft.
    • Falls es mehrere Kategorien zu einem Produkt gibt, vermute ich dass in der Breadcrumb die Kategorie erscheint, die zuerst angelegt wurde. Müsste man testen oder in den Code gucken.
  13. Adam, 11.02.2013 11:00h

    Hm, ja siehst du es eigentlich als problematisch an, wenn man ein Produkt in mehr als einer Katego drin hat?

    Ich habe da noch keine feste Meinung.

  14. Abro, 11.02.2013 19:40h

    Muss man für den Einzelfall entscheiden, kommt auf die Menge an Duplicate Content an, die dadurch entsteht.

    Großen Portale haben ausreichend Inhalte um mit doppelten Textabschnitten nochmal richtig Traffic im Longtail abgreifen zu können. Daran haben Google-Updates wie Panda oder May Day nichts geändert. Man muss nur den Kopf einschalten und nicht übertreiben.

    Als durchschnitts-Shopbetreiber sollte man generell versuchen so weit wie es noch wirtschaftlich ist an 0% DC heran zu kommen. Extra den Shop umzuprogrammieren, damit man für verschiedene Kategorieseiten versch. Texte schreiben kann ist natürlich nur selten wirtschaftlich ;o) Wo man in Punkto DC gerade steht kann man z.B. mit onpage.org ganz gut checken. Perfekt geht’s aber nur mit eigenen Scripten.

    Meine Meinung:

    – Falls deine Kategorie-Seiten keine Produktbeschreibungstexte beinhalten:
    >> ist’s total problemfrei.

    – Falls du dort doch Produktbeschreibungstexte anzeigst:

    >> und die doppelten Inhalte nur auf URLs erscheinen, die nicht indexiert werden (z.B. Paginierung Seite 2+) ist’s ebenfalls kein Problem.

    >> und die URLs normal indexiert werden, solltest du möglichst wenige Produkte in mehreren Kategorien verlinken und ausreichend viele Produkte innerhalb einer Seite anzeigen, damit der DC-Anteil kleiner wird.

  15. ironbody, 22.02.2013 21:40h

    Wäre es möglich, die Änderungen in der GMSitemapXML.php auch für die aktuelle Version von Gambio GX2 zu beschreiben?

    Die oben genannten Zeilen existieren leider nicht mehr nach dem update.

    Vielen Dank – sonst geht alles super!!

  16. ironbody, 28.06.2013 14:25h

    Wäre es nicht interessant für SEO auch die Kategorien für die Unterkategorien zu entfernen?

    Also aus:
    http://www.ironbody.de/KategorieA/KategorieB/KategorieC/

    wird:
    http://www.ironbody.de/KategorieC/

    Geht das?

  17. Abro, 28.06.2013 14:40h

    Ich glaube nicht dass das funktioniert. Bei Zwei Unterkategorien des selben Namens handelt es sich im System ja tatsächlich um zwei verschiedene Kategorien mit verschiedene IDs. (In unserem obigen Beispiel mit den zwei Produkt-URLs handelte es sich dagegen nur um ein Produkt mit einer ID.)

  18. Jochen, 07.08.2013 10:34h

    Hy, ich habe das Problem das bei mir egal was ich in den URL Text reinschreibe eine -20 am ende kommt. http://www.kokos-erde.de/Kokosfaser-Pflanztoepfe-20/ , weißt du zufällig wo die URL in der Datenbank abgelegt sind, würde diese gerne einmal löschen und versuchen ob es dann den neuen Text übernimmt… Gruß Jochen

  19. Abro, 07.08.2013 15:26h

    Hallo Jochen. Das geht mir dann doch leider etwas am Thema dieses Blogposts vorbei, aber sei’s drum:

    Das Problem sollte sich schätzungsweise von selbst lösen, sobald es keine Seiten/Kategorien mit der URL-Slug “Kokosfaser-Pflanztoepfe” mehr gibt. Dann sollte dir Gambio erlauben diese URL zu benutzen, ohne selbsttätig eine Zahl dahinter anzufügen. Der Fehler lässt sich bestimmt über das Admin-Frontend beheben, sodass du die Datenbank gar nicht anfassen musst. Falls du im Adminbereich aber nichts findest, kannst du einfach auf Nummer sicher gehen und die Datenbankweite Suchfunktion von PhpMyAdmin benutzen. Den Link dazu findest du im oberen Menü, wenn du die DB aufrufst (der Bildschirm in dem alle Tabellen aufgelistet sind).

    Was auch noch sein kann, aber unwahrscheinlicher ist, ist dass es sich bei der “20” in der URL um ein “%20″, also um ein kodiertes Leerzeichen handelt.

    Im Zweifel solltest du in solche kleinen Schönheitsfehler nicht so viel Zeit investieren. Ich sehe in deinem Shop weitaus wichtigere Ansatzpunkte fürs Onpage-SEO. (Achtung kommerz: Schreib mir einfach eine Kurze Mail falls du tiefergehende Hilfe brauchst. Dann werfen wir da ein bisschen Manpower drauf und die Sache ist gegessen.)

  20. Kevin, 20.01.2014 02:36h

    Danke :)

    Musste ich den ganzen Kram nicht suchen! :)

    Gruß
    Aquarium Oase
    gez. Kevin Dupik

Kommentare sind geschlossen.
Aufgrund interner Umstrukturierungsmaßnahmen ist es uns z.Zt. leider nicht
möglich auf neue Kommentare zu reagieren. Wir bitten dies zu entschuldigen.
Bei dringenden Rückfragen suchen Sie bitten den direkten Kontakt zu uns.
Das Unternehmen Lucido Media GbR wurde am 31.12.2013 stillgelegt. Diese Website existiert weiterhin zu Archivzwecken. Der Gesellschafter Daniel Abromeit führt seine Arbeit ab sofort unter dem Dach der Agentur Koch Essen fort. Für entsprechende Anfragen wenden Sie sich daher bitte an https://koch-essen.de/kontakt/