Adresy URL bez ID w PrestaShop: jak usunąć numery z linków

Adresy URL bez ID w PrestaShop uzyskasz tylko modułem albo zmianą kodu, bo w ustawieniach sklepu słowo kluczowe {id} jest obowiązkowe w każdym schemacie adresu. Bez modułu możesz włączyć przyjazne adresy i skrócić je (np. usunąć kategorię i kod EAN z adresu produktu), ale numer zostanie. Przy każdej zmianie adresów najważniejsze jest przekierowanie 301 ze starych linków na nowe; bez niego stracisz ruch z Google i linki z innych stron. Poniżej wyjaśniamy, skąd biorą się numery, co da się ustawić w panelu i jak zmienić adresy bez strat.

Skąd biorą się numery w adresach PrestaShop?

Domyślne adresy w PrestaShop wyglądają mniej więcej tak:

  • kategoria: /12-buty-sportowe,
  • produkt: /meskie/25-73-koszulka-basic.html,
  • strona CMS: /content/4-regulamin.

Liczba na początku to identyfikator (ID) z bazy danych: 12 to numer kategorii, 25 to numer produktu, a 73 to numer kombinacji, np. rozmiaru i koloru. PrestaShop rozpoznaje stronę właśnie po ID, a tekst po myślniku jest dla niego tylko ozdobą.

Takie rozwiązanie ma zalety. Dwa produkty mogą mieć tę samą nazwę w adresie, a po zmianie nazwy produktu stary link nadal działa: sklep odczyta ID i przekieruje klienta pod aktualny adres. Wadą są długie, mało czytelne linki, które trudniej zapamiętać i które gorzej wyglądają w wynikach wyszukiwania i w udostępnieniach.

Czy ID w adresie URL szkodzi SEO?

Sam numer nie blokuje pozycji w Google. Google zaleca proste, opisowe adresy zrozumiałe dla ludzi (wytyczne Google dotyczące struktury URL), ale adres to tylko jeden z wielu drobnych sygnałów. Czysty link /koszulka-basic.html zamiast /meskie/25-73-koszulka-basic.html daje głównie:

  • czytelność w wynikach wyszukiwania, w mailach i w mediach społecznościowych,
  • krótsze linki, które łatwiej skopiować i zapamiętać,
  • spójny wygląd adresów w całym sklepie.

Dużo większym problemem SEO niż sam numer są duplikaty i niedziałające linki. Źle przeprowadzona zmiana adresów potrafi zaszkodzić bardziej niż numery, które zostały w adresach. Dlatego dalej poświęcamy temu osobne sekcje.

Ustawienia Ruch i SEO: co zmienisz bez modułu?

Ustawienia adresów znajdziesz w Preferencje → Ruch → SEO & URL (w angielskim panelu: Shop Parameters > Traffic & SEO > SEO & URLs). Ścieżka jest taka sama w PrestaShop 1.7, 8 i 9.

Opcja Co robi Zalecenie
Przyjazny adres URL zamienia index.php?id_product=25&controller=product na czytelny adres Tak; serwer musi obsługiwać przepisywanie adresów
Wyróżniony URL pozwala na znaki z akcentami w adresach zwykle Nie, wtedy „żółta” zmienia się w „zolta”
Przekieruj do kanonicznego URL co zrobić, gdy ktoś wejdzie pod nieaktualny adres; domyślnie 302 301 po uruchomieniu sprzedaży
Wyłącz MultiViews i mod_security opcje dla serwera Apache tylko gdy przyjazne adresy nie działają

Na Apache PrestaShop sam generuje plik .htaccess po zapisaniu tych ustawień. Na nginx reguły przepisywania musi dodać administrator serwera.

Schemat URL-i

Niżej, w sekcji Schemat URL-i, ustawiasz wzór adresu dla każdego typu strony. Słowa w nawiasach klamrowych to zmienne, a te oznaczone gwiazdką są obowiązkowe.

Strona Domyślny schemat
Produkt (1.7 i 8) {category:/}{id}{-:id_product_attribute}-{rewrite}{-:ean13}.html
Produkt (nowa instalacja 9) {id}{-:id_product_attribute}-{rewrite}.html
Kategoria {id}-{rewrite}
Strona CMS content/{id}-{rewrite}
Marka brand/{id}-{rewrite}

Bez modułu możesz usunąć z adresu produktu kategorię i kod EAN, zamienić angielskie przedrostki, np. content na informacje, albo dodać .html na końcu. Nie usuniesz jednak {id}: przy próbie zapisu PrestaShop pokaże błąd, że wszystkie obowiązkowe słowa kluczowe muszą być uwzględnione. Sklep zaktualizowany do wersji 9 zachowuje poprzedni schemat produktu, więc aktualizacja sama nie zmienia adresów.

Przyjazny adres pojedynczej strony

Część {rewrite} to pole przyjaznego adresu URL, które znajdziesz w zakładce SEO produktu oraz w formularzu kategorii i strony CMS. PrestaShop wypełnia je na podstawie nazwy, ale warto je skrócić: zostaw najważniejsze słowa, usuń spójniki i zbędne dopiski w rodzaju „nowosc” czy „promocja”. Przy adresach z ID zmiana tego pola jest bezpieczna: przy włączonym przekierowaniu do kanonicznego URL sklep sam przeniesie klienta ze starego linku na nowy. Bez ID każda zmiana wymaga przekierowania 301.

Jak uzyskać adresy URL bez ID w PrestaShop?

Są dwie drogi:

  1. Moduł, który rozszerza mechanizm adresów tak, by sklep rozpoznawał stronę po samej nazwie, i pilnuje przekierowań.
  2. Własne nadpisanie (override) klas odpowiedzialnych za adresy. Działa, ale każda aktualizacja PrestaShop może je zepsuć, a utrzymanie spada na Ciebie lub Twojego programistę.

Niezależnie od wybranej drogi rozwiązanie musi poradzić sobie z kilkoma sytuacjami, które przy numerach w ogóle nie występowały:

  • dwa produkty o tej samej nazwie, np. „koszulka-basic” w dwóch kolekcjach — bez ID adres musi być unikalny,
  • konflikty między typami stron, gdy kategoria i strona CMS mają ten sam adres,
  • kilka języków i sklepów, z osobnymi adresami dla każdego,
  • zmiana nazwy produktu, po której stary adres musi przekierować na nowy.

Jeśli nie chcesz pisać i utrzymywać tego samodzielnie, zrobimy to w Twoim sklepie w ramach prac programistycznych: adresy bez ID, przekierowania 301 ze starych linków i kontrolę zduplikowanych adresów, najpierw sprawdzone na kopii sklepu.

Duplikaty i błędy 404: na co uważać przy zmianie adresów?

Uwaga: zmieniaj schemat adresów raz, po przemyśleniu, i najpierw na kopii sklepu. Każda kolejna zmiana to nowa porcja przekierowań i kolejne tygodnie, w których Google uczy się nowych adresów.

Najczęstsze pułapki:

  • Ten sam produkt pod kilkoma adresami. Gdy w adresie jest kategoria, a produkt należy do kilku kategorii, PrestaShop z włączonym przekierowaniem do kanonicznego URL przenosi klienta pod adres z kategorią domyślną. Bez tej opcji Google widzi kilka kopii tej samej strony.
  • Parametry w adresie. Sortowanie, filtry i stronicowanie dokładają do adresu parametry. Sprawdź, czy szablon wstawia znacznik canonical wskazujący główną wersję strony.
  • Wersje z www i bez, http i https. Sklep powinien działać pod jednym adresem, a pozostałe wersje przekierowywać na niego przez 301.
  • Wyłączone produkty. W zakładce SEO produktu ustawisz przekierowanie w trybie offline, np. 301 do kategorii, zamiast pokazywać błąd 404.
  • Nowe adresy bez przekierowań. Po usunięciu ID stare linki z Google, z porównywarek i z innych stron przestają działać, jeśli nic ich nie przekierowuje.

Jak przekierować stare adresy URL (301)?

Przekierowanie 301 mówi wyszukiwarce, że strona przeniosła się na stałe, i przenosi na nowy adres jej historię. Procedura krok po kroku:

  1. Zbierz listę obecnych adresów przed zmianą: z mapy witryny, z raportu skuteczności w Google Search Console i z narzędzia do skanowania strony.
  2. Przypisz każdemu staremu adresowi nowy, jeden do jednego. Nie przekierowuj wszystkiego na stronę główną; Google traktuje to podobnie jak błąd 404.
  3. Wdróż przekierowania: modułem, który robi to automatycznie, albo regułami serwera (Redirect 301 w .htaccess na Apache, return 301 na nginx). Przy setkach produktów ręczne reguły szybko stają się nie do utrzymania.
  4. Zaktualizuj linki wewnętrzne w menu, treściach CMS i opisach produktów, żeby sklep nie odsyłał sam do siebie przez przekierowania.
  5. Wygeneruj na nowo mapę witryny i zgłoś ją w Search Console. Jak to zrobić, opisujemy w poradniku o mapie witryny XML w PrestaShop.
  6. Obserwuj raport „Strony” w Search Console i logi serwera, a przekierowania zostaw na długo. Google przy przenosinach witryny zaleca utrzymanie ich co najmniej przez rok (dokumentacja Google).

Przez kilka tygodni pozycje mogą się lekko wahać, zanim Google przetworzy nowe adresy. To normalne przy każdej zmianie adresów. Przy okazji sprawdź też, czy dane strukturalne produktów i okruszków wskazują nowe adresy — więcej o tym w artykule o gwiazdkach i cenach w wynikach Google.

Najczęściej zadawane pytania

Czy usunięcie ID z adresów poprawi pozycje w Google?

Samo w sobie zwykle niewiele. Adres jest drobnym sygnałem; czytelny link może za to częściej zachęcać do kliknięcia i lepiej wygląda przy udostępnianiu. Największe znaczenie ma to, żeby zmiana przebiegła bez błędów 404 i duplikatów.

Czy mogę usunąć ID z adresów w ustawieniach PrestaShop, bez modułu?

Nie. W PrestaShop 1.7, 8 i 9 słowo kluczowe {id} jest obowiązkowe w każdym schemacie adresu i panel nie pozwoli zapisać schematu bez niego. Potrzebny jest moduł albo własne nadpisanie kodu.

Co się stanie ze starymi linkami po zmianie adresów?

Jeśli nic ich nie przekierowuje, zaczną zwracać błąd 404, a Google z czasem usunie je z wyników. Przekierowanie 301 każdego starego adresu na nowy zachowuje ruch, linki z innych stron i działające linki w starych mailach.

Czy usunąć kategorię z adresu produktu?

Zwykle warto. Adres produktu bez kategorii jest krótszy i nie zmienia się, gdy przeniesiesz produkt do innej kategorii. Nowe instalacje PrestaShop 9 domyślnie nie mają już kategorii w adresie produktu.

Czy zmiana adresów wpłynie na feed produktowy i reklamy?

Feed produktowy pobierze nowe adresy przy najbliższym odświeżeniu. Stare adresy w reklamach będą działać dzięki przekierowaniom, ale warto je zaktualizować, bo każde przekierowanie to dodatkowy krok przy wczytywaniu strony.

Planujesz zmianę adresów w swoim sklepie? Zamów zmianę w ramach prac programistycznych albo napisz do nas.

Produkty z tego wpisu

Wróć do: Blog

Ładowanie...
Powrót do góry