Jeśli Twój sklep na WooCommerce używa kategorii w adresach URL produktów – ten artykuł jest dla Ciebie. I lepiej przeczytaj go dwa razy, zanim zrobisz aktualizację wtyczki. WooCommerce 10.5, który wylądował na naszych serwerach 4 lutego 2026 roku, przynosi zmianę, na którą developerzy czekali od lat, a właściciele sklepów… cóż, mogą się zdziwić. Chodzi o sposób, w jaki system “buduje” adresy internetowe (permalinki) Twoich produktów. Dlaczego to takie ważne? Bo w e-commerce stabilny link to pieniądz. Jeśli Twoje linki nagle się zmienią, Google zgubi drogę do Twoich produktów, a klienci z reklam trafią na pustą stronę błędu 404. Brzmi jak koszmar? Spokojnie, zaraz powiem Ci, jak tego uniknąć.

Ważne: Zmiana dotyczy TYLKO sklepów, które mają ustawioną strukturę permalinków “Baza sklepu z kategorią” (Shop base with category) lub niestandardową strukturę zawierającą %product_cat%. Jeśli masz proste linki typu twojsklep.pl/produkt/nazwa-produktu, możesz spać spokojnie (ale i tak przeczytaj, warto wiedzieć).

Jak było do tej pory?

Do tej pory (czyli przed wersją 10.5) WooCommerce był trochę jak leniwy magazynier. Jeśli produkt był przypisany do kilku kategorii, system musiał wybrać jedną, którą wstawi do adresu URL. Jak wybierał? Sortował kategorie według dwóch kryteriów: najpierw według wartości parent (malejąco), a potem według term_id (rosnąco) – i brał pierwszą z listy.

Co to oznacza w praktyce? System faworyzował kategorie, które miały jakiegokolwiek rodzica (czyli nie były na najwyższym poziomie), a przy remisie wybierał tę, która została utworzona wcześniej (niższe ID w bazie danych). Wyniki bywały niespójne i zależały od tego, w jakiej kolejności tworzyłeś kategorie w sklepie.

Przykład z życia wzięty:

Masz sklep z elektroniką. Sprzedajesz “Samsunga Galaxy S30”. Produkt jest przypisany do kategorii:
1. Elektronika > Telefony > Smartfony (tu pasuje idealnie)
2. Promocje (bo akurat jest w promocji)

Co robił stary WooCommerce? Sortował po parentterm_id. “Promocje” to kategoria główna (parent = 0), a “Smartfony” mają rodzica (parent > 0), więc “Smartfony” lądowały wyżej na liście po sortowaniu po parent DESC. Ale jeśli produkt był przypisany do dwóch kategorii na tym samym poziomie zagnieżdżenia, wygrywała ta z niższym ID – czyli starsza. Wynik bywał nieprzewidywalny, a URL produktu mógł wyglądać np. tak:
twojsklep.pl/produkt/promocje/samsung-galaxy-s30

Problematyczne, prawda? Słowo “promocje” w URLu nic nie mówi Google o produkcie. Gdy promocja się kończyła i odpinałeś kategorię, link mógł się zmienić (albo i nie, co tworzyło bałagan). To było nieintuicyjne i irytujące dla każdego, kto dba o SEO.

Co dokładnie się zmieni w WooCommerce 10.5?

W wersji 10.5 magazynier poszedł po rozum do głowy. Zmieniono logikę wyboru “głównej” kategorii (primary category). Teraz system wybiera najgłębszą kategorię w hierarchii – czyli tę, która ma największą liczbę przodków (ancestors).

Co to znaczy “najgłębsza”? To taka, która ma najwięcej poziomów nad sobą. System zakłada – i słusznie – że najgłębsza kategoria jest najbardziej precyzyjna i najlepiej opisuje produkt.

Ten sam przykład po nowemu:

Wracamy do naszego Samsunga:
1. Kategoria: Elektronika > Telefony > Smartfony (głębokość: 3 poziomy, 2 przodków)
2. Kategoria: Promocje (głębokość: 1 poziom, 0 przodków)

WooCommerce 10.5 popatrzy i powie: “Okej, ‘Smartfony’ mają najwięcej przodków, więc to jest właściwa kategoria tego produktu”. Wynikowy URL:
twojsklep.pl/produkt/elektronika/telefony/smartfony/samsung-galaxy-s30

Brzmi świetnie, prawda? Lepsze SEO, logiczna struktura, breadcrumbs (okruszki) w końcu mają sens. Jest tylko jedno “ale”. Jeśli Twój sklep działa od kilku lat na starych linkach, to po aktualizacji adresy URL produktów przypisanych do wielu kategorii mogą się automatycznie zmienić.

Dobra wiadomość! WooCommerce ma wbudowany mechanizm automatycznych przekierowań 301. Funkcja wc_product_canonical_redirect() automatycznie przekieruje stare adresy URL na nowe. To znaczy, że w większości przypadków nie musisz robić nic ręcznie – system sam zadba o to, żeby klienci i Google trafili na właściwy produkt, nawet jeśli użyją starego linku. Zakładki (bookmarks) będą działać, pozycje w wyszukiwarce powinny zostać zachowane dzięki poprawnym przekierowaniom.

Porównanie starego i nowego URL produktu

Zachęcam do zapoznania się z oryginalnymi artykułami WooCommerce: Szczegółowy opis zmiany permalinków oraz Ogólny przegląd zmian w WooCommerce 10.5 | GitHub PR #62321

Kogo dotyczy zmiana w strukturze produktów?

Nie panikuj. Nie każdy sklep musi teraz stawiać wszystko na głowie. Zróbmy szybką diagnostykę. Otwórz panel admina i klikaj ze mną:

  1. Wejdź w Ustawienia > Bezpośrednie odnośniki (Permalinks).
  2. Zjedź na dół do sekcji “Bezpośrednie odnośniki produktu” (Product permalinks).
  3. Spójrz, która kropka jest zaznaczona.

Dobra wiadomość czy zła? To zależy od tego, co zobaczysz. Jeśli masz zaznaczone “Baza sklepu z kategorią” (Shop base with category) albo “Własny format” (Custom base) z kodem %product_cat% w środku – gratulacje, masz zadanie domowe. Ta zmiana Cię dotyczy i lepiej przeczytaj resztę artykułu uważnie.

Z kolei jeśli widzisz “Domyślne” (Default), “Baza sklepu” (Shop base) bez kategorii, albo własny format BEZ tego magicznego %product_cat% – możesz odetchnąć. Twoje linki produktów nie zawierają kategorii, więc zmiana logiki Cię nie obchodzi. Możesz aktualizować spokojnie (ale i tak przeczytaj do końca, bo nigdy nie wiadomo, kiedy zdecydujesz się na zmianę struktury).

Ustawienia permalinków w WordPressie

Jak się przygotować, krok po kroku!

Nie będę Cię zamęczał trudnymi pojęciami i drogimi programami. Zrobimy to domowym sposobem, korzystając z tego, co masz w WordPressie.

Krok 1: Zrób Kopię Zapasową (Backup).
To podstawa przy każdej aktualizacji. Użyj wtyczki typu UpdraftPlus (jest darmowa) albo opcji backupu w panelu swojego hostingu. Jak coś pójdzie nie tak, po prostu przywrócisz sklep do stanu sprzed 5 minut.

Krok 2: Sprawdź swoje najważniejsze produkty.
Zanim zaktualizujesz, otwórz w nowych kartach 5-10 swoich bestsellerów. Zapisz sobie ich obecne adresy URL w notatniku. To będzie Twój punkt odniesienia.

Krok 3: Zaktualizuj WooCommerce.
Teraz możesz kliknąć “Aktualizuj”. Po aktualizacji wejdź w Ustawienia > Bezpośrednie odnośniki i po prostu kliknij “Zapisz zmiany” (to przeczyszcza strukturę linków).

Krok 4: Sprawdź, czy automatyczne przekierowania działają.
Wklej w przeglądarkę stare linki, które zapisałeś w Kroku 2. Jeśli widzisz produkt (nawet jeśli adres w pasku się zmienił na nowy) – gratulacje, wbudowane przekierowania WooCommerce zadziałały automatycznie! Jeśli widzisz błąd 404 – przejdź do następnej sekcji i ustaw przekierowania ręcznie.

Jak ustawić przekierowania 301?

Najpierw sprawdź, czy w ogóle musisz coś robić! W większości przypadków WooCommerce sam zadba o przekierowania dzięki wbudowanej funkcji wc_product_canonical_redirect(). Sprawdź stare linki – jeśli działają, możesz odetchnąć.

Ale jeśli zauważysz błędy 404 lub chcesz mieć pełną kontrolę nad przekierowaniami, możesz ustawić je ręcznie za pomocą darmowej wtyczki Redirection.

Wtyczka Redirection – najprostsza opcja

Krótki poradnik:

  • Wchodzisz w Narzędzia > Redirection.
  • W polu “Source URL” wklejasz stary adres (np. /produkt/promocje/telefon).
  • W polu “Target URL” wklejasz nowy adres (np. /produkt/elektronika/telefony/telefon).
  • Klikasz “Add Redirect”.

Wtyczka pozwala też importować pliki CSV, więc jeśli masz 500 zmian – zrobisz to w 3 minuty.

Jak przywrócić starą logikę? (Dla zaawansowanych)

Jeśli z jakiegoś powodu potrzebujesz zachować dotychczasowe zachowanie – na przykład Twoje rozszerzenie lub integracja zależy od starej kolejności kategorii – WooCommerce udostępnia filtr wc_product_post_type_link_product_cat, za pomocą którego możesz przywrócić poprzedni algorytm. Dodaj poniższy kod do pliku functions.php swojego motywu potomnego lub do własnej wtyczki:

/**
 * Przywraca starą logikę wyboru kategorii w permalinkach produktów.
 * Sortowanie po parent (DESC) i term_id (ASC) — zachowanie z WooCommerce < 10.5. */ function my_restore_legacy_permalink_category( $category, $terms, $post ) { $sorted_terms = wp_list_sort( $terms, array( 'parent' => 'DESC',
            'term_id' => 'ASC',
        )
    );
    return $sorted_terms[0];
}
add_filter( 'wc_product_post_type_link_product_cat', 'my_restore_legacy_permalink_category', 10, 3 );

Uwaga dla developerów: Filtr wc_product_post_type_link_product_cat zmienił swoje zachowanie — od wersji 10.5 jako pierwszy parametr otrzymuje najgłębszą kategorię zamiast wyniku starego sortowania. Jeśli Twoje rozszerzenia korzystają z tego filtra, sprawdź, czy nadal działają poprawnie po aktualizacji.

Podsumowanie

Zmiana w WooCommerce 10.5 to krok w dobrą stronę, ale jak każda zmiana – boli, jak się jest nieprzygotowanym. Nowa logika wyboru “najgłębszej kategorii” (tej z największą liczbą przodków w hierarchii) da nam ładniejsze, bardziej logiczne i lepsze pod kątem SEO linki.

Dla nowych sklepów – super sprawa. Dla istniejących – potencjalna mina. Klucz to świadomość. Sprawdź swoje ustawienia permalinków, zrób kopię zapasową i zaplanuj przekierowania. Nie klikaj “Aktualizuj” w ciemno. Twoje pozycje w Google Ci za to podziękują.

Jeżeli macie jeszcze inne pytania odnośnie tworzenia stron internetowych, administracji stron internetowych lub pozycjonowania stron – śmiało pytajcie.

Mateusz Adamski

Mateusz Adamski

Frontend Developer, Specjalista SEO. Od 2009 roku zajmuję się pozycjonowaniem oraz optymalizacją stron internetowych. Od 2012 roku specjalizuję się w tworzeniu stron i sklepów internetowych opartych na systemach CMS WordPress oraz Prestashop. Posiadam dobrą znajomość HTML5, CSS3, Bootstrap. Dysponuję również dużym doświadczeniem z programami Adobe Photoshop, Dreamweaver oraz CorelDRAW. Prywatnie jestem dużym fanem fotografii oraz motoryzacji. Od 2013 roku udzielam się jako klubowicz oraz moderator ogólnopolskiego klubu motoryzacyjnego. Masz jakieś pytania? Napisz do nas.