Zeigen Sie immer die vollständige URL einschließlich der Produktkategorien an


8

Für unseren Magento-Webshop (1.7.0.2) versuchen wir, die URL-Struktur zu optimieren. Wir haben es bereits geschafft, einige Dinge zu verbessern, aber in einem haben wir es nicht geschafft. Wir möchten für alle unsere Produkte eine vollständige URL (einschließlich Kategorien) verwenden. Zum Beispiel:

  • www.website.com/products/best-products/product
  • oder: www.website.com/products/best-products für eine Kategorieseite

Dies funktioniert gut, wenn Sie durch die Kategorien blättern und die Breadcrumbs verwenden, aber nicht, wenn Sie suchen. Es verwendet dann immer www.website.com/product als URL, höchstwahrscheinlich, weil ein Produkt mehreren Kategorien zugeordnet werden kann und nicht weiß, welche Kategorie in den Suchergebnissen verwendet werden soll.

Gibt es eine Möglichkeit, dies zu erzwingen? Um es irgendwie zu machen, verwenden Sie die "erste" Kategorie oder verwenden Sie sogar eine Standardkategorie, die Sie auswählen können? Ich bin Entwickler und daher bereit, Änderungen am Code vorzunehmen, aber nur, wenn es keinen anderen / zuverlässigeren Weg gibt. Alle Tipps oder Tricks sind willkommen, vielen Dank im Voraus!

Antworten:


4

Was Sie wollen, kann nicht erreicht werden - afaik.

Das Problem ist, dass Magento mit "Produkt in vielen Kategorien" geplant ist. Das Problem ist jetzt, dass Magento keine Kategorie bevorzugt und stattdessen überhaupt keine Kategorie anzeigt.

Die Kategorien werden verwendet. Wenn Sie durch die Kategorien klicken, ist dies der einzige Ort (afaik), an dem das Umschreiben der Kategorie verwendet wird.

Aber ich denke, Sie können erreichen, was Sie wollen, indem Sie das Rewrite-System ein wenig hacken und nur sicherstellen, dass Sie eine Kategorie-Rewrite laden und nicht die ohne alle Kategorien.

Das nächste Problem ist dann, dass Sie sicherstellen müssen, dass Google immer noch jedes Mal dieselbe kanonische URL erhält, oder dass Sie ein Problem mit doppelten Inhalten bekommen ...

Und der letzte Gedanke, an den ich denke: Ich bin mir nicht sicher, ob dies aus SEO-Sicht eine gute Idee ist. Ich bin kein SEO-Experte, aber jemand sagte zu mir: Je kürzer die URL, desto besser ...


1

Produkt - URL wird gedruckt von:
Mage_Catalog_Model_Product::getProductUrl
diese Methode wird überprüft , ob die URL der Kategorie umfassen muss mitMage::registry('current_category')

Sammlungen laden jedoch normalerweise die URL-Umschreibungen in einer eindeutigen Abfrage ( Prüfmethode Mage_Catalog_Model_Resource_Product_Collection::addUrlRewrite($categoryId = ''))
und verwenden dann Mage_Catalog_Model_Product::getProductUrldiesen 'request_path' aus den $ product-Daten.

Ein möglicher Trick könnte also so aussehen:

        // if we are in search results
    if( ! Mage::registry('current_category')){
        $myDesiredCategoryId = current($product->getCategoryIds()); // you could just use the first category registered with this product or define some other strategy
        $canonicalCategory = Mage::getModel('catalog/category')->load($myDesiredCategoryId);
        Mage::register('current_category', $canonicalCategory);
        $product->setRequestPath(null);
        $productUrlWithCategory = $product->getUrlModel()->getUrl($product);
        Mage::unregister('current_category');
    }

Dies ist nicht der schnellste Weg (jedes Produkt in Ihrer Sammlung muss jetzt die URL-Umschreibung in einer separaten Abfrage laden), aber möglicherweise der einfachste, wenn Sie nach einer schnellen Lösung suchen



-1

Ich bin mir ziemlich sicher, dass Sie mit der Systemkonfigurationseinstellung erreichen können, was Sie brauchen Use Categories Path For Product URLs. Dies kann unter gefunden werden System->Configuration->Catalog->Catalog->Search Engin Optimization. Nachdem Sie dies eingestellt haben, müssen Sie wahrscheinlich neu indizieren.

Hoffe das hilft.


Nein, diese Einstellung funktioniert nur, wenn die aktuelle Kategorie festgelegt ist (daher, wenn Sie das Produkt von einer Kategorieseite aus öffnen).
Simon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.