Przyjazne linki w Magento2

Podczas wdrożenia sklepu Magento2 z kilkoma wersjami językowymi  mogą pojawić się problemy z generowaniem przyjaznych adresów url. Zwłaszcza w sytuacji gdy produkty nie są wprowadzanie ręcznie tylko importowane np. z plików CSV.

Zaimportowane produkty mają wówczas linki o takiej strukturze:

/catalog/product/view/id/999.html

By naprawić strukturę linku pozostaje wejść na edycję każdego produktu i w sekcji Search Engine Optimization zmodyfikować adres url a następnie zapisać produkt.

Co jeśli importowaliśmy do Magento2 tysiące produktów?

Taka sytuacja wymusza zastosowanie rozwiązania programistycznego. Celem jest wygenerowanie na nowo dla poszczególnych wersji językowych w Magento bezpośrednich adresów url produktów oraz adresów do produktów w przypisanych kategoriach.

Masowe generowanie przyjaznych adresów URL w Magento2

Stworzyliśmy moduł dla Magento2 pozwalający wygenerować Url Key.

Instalacja modułu:

Proszę zalogować się do konsoli SSH i w głównym folderze aplikacji Magento2 wykonać następujące polecenia:

php composer.phar require wm21w/magento2.regurl;
php bin/magento setup:upgrade;

Sposób użycia modułu

Aby wygenerować adresy url dla wszystkich produktów w widoku sklepu ID = 1

php bin/magento wm21w:regenurl --store 1

Aby wygenerować adresy URL dla wybranych produktów ID (201, 202, 203, 204) dla widoku sklepu ID 1

php bin/magento wm21w:regenurl --store 1 201 202 203 204

Zagrożenia płynące z braku przyjaznych adresów url w Magento2

  1. Podstawowym zagrożeniem jest słaba pozycja w wynikach wyszukiwania – zwłaszcza w wyszukiwarce Google.
  2. Wspomniana struktura adresu url (/catalog/product/view/id/…) jest blokowana przez plik robots.txt
  3. co w efekcie uniemożliwia indeksowanie min. robotom Google.
  4. Po zgłoszeniu Google Sitemap zawierającej takie linki – wszystkie zostaną oznaczone jako błędne.
  • jakiśtaki

    O, ciekawa rzecz!
    A co, jeśli urle są za długie, np. http://www.strona.xx/nazwa/nazwa2/nazwa3/nazwa4/nazwa-produktu.html? Przy czym dwój pierwszych „slugów” nie powinno być – jakiś błąd w kategoriach. Czy regeneracja pomoże?

    • Sylwester Kowal

      Jeśli mówimy o Magento to system generuje dla każdego produktu link http://domena.pl/nazwa-produktu.html oraz linki do wszystkich kategorii do których został przypisany. np. http://domena.pl/kat1/kat1.1/nazwa-produktu.pl
      Ten pierwszy adres powinien zawierać właściwe słowa adekwatne do nazwy produktu. Natomiast linki kategorii z reguły są CANONICAL i ich długość moglibyśmy optymalizować poprzez rozsądnie krótkie nazwy kategorii.
      Co do regeneracji adresów URL. W magento 2 pojawił się problem (nie wiem czy jest nadal) z aktualizacją adresów URL dla poszczególnych kategorii. Wówczas by nie poprawiać ich produkt po produkcie (zwłaszcza w sklepach z dużą ilością produktów) Stworzyłem taki oto moduł: https://packagist.org/packages/wm21w/magento2.regurl
      Podczas pracy z sklepem Magento 2 w którym było 5 wersji językowych i po imporcie produktów dla każdej wersji pojawiły się problemy z adresami URL – nie ukrywam, że ten moduł zaoszczędził mi sporo czasu i zdrowia. Ale proszę nie używajcie go na wersji produkcyjnej, lub bez kopii bezpieczeństwa.

Podobne artykuły