Struktura adresu URL – jak budować adresy przyjazne SEO i użytkownikom
Adresy URL to jeden z tych elementów, które klienci traktują jak szczegół – a to ważny aspekt technicznego SEO, który potrafi namieszać przez całe życie witryny. W swojej pracy regularnie spotykam się z sytuacją, gdzie URL-e składano ad hoc, bez planu – i po roku wymagają migracji i setek przekierowań 301. A każda taka migracja to ryzyko chwilowych spadków widoczności. Decyzję o strukturze URL warto podjąć raz, na początku – i trzymać się jej.
Czym jest adres URL i z czego się składa
Przejdźmy szybko przez podstawy – URL (Uniform Resource Locator) to ujednolicony adres zasobu w sieci, a po ludzku – adres konkretnej strony, pliku lub obrazu w internecie. Każdy zasób ma swój unikalny adres. Przeglądarka wie, gdzie go szukać, właśnie dzięki URL-owi.
Kompletna struktura adresu URL wygląda następująco:

Protokół, domena, ścieżka – budowa adresu URL
- Protokół (
https://) – definiuje sposób komunikacji między przeglądarką a serwerem. HTTPS to dziś absolutne minimum – brak certyfikatu SSL wpływa bezpośrednio na bezpieczeństwo przesyłanych danych. - Domena – unikalna nazwa serwisu. Składa się z opcjonalnej subdomeny (np.
blog.,shop.), nazwy własnej i domeny najwyższego poziomu (TLD):.pl,.com,.eu. - Ścieżka – lokalizacja podstrony w strukturze katalogów, np.
/blog/nazwa-wpisu/. - Parametry zapytania – ciąg zaczynający się od
?, przekazuje dane do serwera, np.?sort=cena&page=2. Stosowany w filtrowaniu produktów i kampaniach UTM. - fragment (potocznie kotwica) – oznaczona
#, przewija stronę do konkretnej sekcji po załadowaniu. Nie trafia do serwera – to instrukcja dla przeglądarki.
Google opisuje wymagania i zalecenia dotyczące struktury URL w oficjalnej dokumentacji Search Central. Warto tam zajrzeć, jednak dokumentacja w przypadku Google to jedynie baza wejściowa, którą warto połączyć z dobrymi sprawdzonymi praktykami którymi zaraz się z Wami podzielę.
Czym są przyjazne adresy URL i jak je tworzyć kątem SEO
Przyjazny URL (po angielsku: friendly URL) to taki, który użytkownik internetowy potrafi przeczytać i domyślić się, co za nim stoi.
Najważniejsze co musisz wiedzieć:
- Małe litery zawsze –
/Kategoria/i/kategoria/to dla wielu serwerów dwa różne adresy. Jeden z nich prawdopodobnie zwróci 404. - Myślnik zamiast spacji i podkreślenia – Google traktuje myślnik jako separator słów. Podkreślenie (
_) nie zawsze działa tak samo, a spacja w URL enkoduje się do+, co wygląda fatalnie. Najbardziej znany błąd w polskim internecie z tym związany można znaleźć na Ceneo – gdzie ze względu na skalę nigdy nie odważono się go poprawić. Moim zdaniem słusznie – już na to za późno. - Bez polskich znaków –
oferta-dla-małych-firmstaje się w adresie czymś w styluoferta-dla-ma%C5%82ych-firm. Pisz zawsze bez ogonków:oferta-dla-malych-firm. - Bez ID z systemu –
/produkt?id=4827&ref=homenie mówi nic ani użytkownikowi, ani robotowi. - Adres powinien odzwierciedlać zawartość strony – użytkownik i robot wyszukiwarki powinni z URL-a rozumieć, czego dotyczy podstrona.
/blog/optymalizacja-zdjec/mówi wszystko./node/4827– nic. - Niespójny trailing slash – chodzi o
/na samym końcu adresu.domena.pl/blog/nazwa-wpisu/idomena.pl/blog/nazwa-wpisuto dla serwera dwa różne adresy. Jeśli oba są dostępne bez przekierowania między nimi – masz duplikat wewnętrzny. Wybierz jedną konwencję i trzymaj się jej w całej witrynie. Większość CMS-ów obsługuje to automatycznie, ale warto sprawdzić w trakcie audytu. - Daty w adresie URL –
/blog/2024/05/nazwa-wpisu/wygląda niewinnie, dopóki nie chcesz zaktualizować treści w 2026 roku. Data w URL-u zostaje, artykuł jest świeży – i masz problem wizerunkowy oraz analityczny jednocześnie. Wyjątek to Google News – tam data w adresie jest jednym z sygnałów świeżości i ma sens. Jeśli nie prowadzisz serwisu newsowego, daty w URL-ach to zbędny balast.
Źle:
domena.pl/kategoria/produkty?id=4827&sort=asc&filter=none&page=1
Dobrze:
domena.pl/k/nazwa-kategorii/
Jak budować strukturę katalogów URL
Tu moje podejście trochę różni się od większości poradników SEO. Nie chodzi tylko o to, żeby URL wyglądał ładnie – chodzi o to, żeby struktura katalogów pomagała rozumieć, co się dzieje na stronie.
Katalogi jako narzędzie analityczne
Zawsze zalecam podział na katalogi – i nie chodzi tu tylko o estetykę. Dzięki temu mogę łatwo mierzyć ruch z różnych części witryny.
Gdy mam adresy takie jak:
/blog/– artykuły (frazy informacyjne)/k/– kategorie (frazy komercyjne)/p/– produkty (frazy transakcyjne)
to w Google Analytics lub Google Search Console mogę przefiltrować ruch według tych prefixów w kilka sekund. Dzięki temu widzę, czy wzrost widoczności to tylko dobrze prowadzony blog, czy też wzrasta widoczność na frazy komercyjne i transakcyjne. To część mojego podejścia do data-driven SEO – decyzje opieram na konkretnych danych, nie na przeczuciach.
Płaska czy zagnieżdżona – jak powinna wyglądać struktura URL strony
W tym temacie nie trzeba się szczególnie rozwodzić – struktura powinna być płaska, kropka.
Zamiast:
domena.pl/k/elektronika/laptopy/gamingowe/
Zastosuj:
domena.pl/k/laptopy-gamingowe/
Głęboka hierarchia katalogów brzmi logicznie na papierze. W praktyce komplikuje zarządzanie URL-ami, wydłuża adresy i generuje kłopoty przy każdej reorganizacji oferty. Jeden poziom podziału – poza głównym prefixem – zazwyczaj wystarczy.
Problem duplikatów przy produktach w wielu kategoriach
To jeden z częstszych błędów, które widzę w audytach SEO. Zaczyna się niewinnie – produkt pasuje do dwóch kategorii, więc ktoś przypisuje go do obu. I nagle mamy:
domena.pl/p/elektronika/sony-wh1000xm5/ domena.pl/p/akcesoria-do-telefonu/sony-wh1000xm5/
Ten sam produkt, ten sam content, dwa różne URL-e. Dla robotów wyszukiwarek to duplikat wewnętrzny. Można go rozwiązać tagiem canonical, ale w tym konkretnym przypadku lepiej nie dopuszczać do tej sytuacji w ogóle. Jeśli stosuję strukturę katalogową w produktach, produkt powinien żyć pod jednym, stałym adresem – niezależnie od tego, do ilu kategorii jest przypisany w systemie.
Dokładnie ten sam problem dotyczy kategorii. Wyobraź sobie sklep z elektroniką, gdzie „słuchawki bezprzewodowe” logicznie pasują zarówno do elektroniki, jak i do akcesoriów mobilnych:
domena.pl/k/elektronika/sluchawki-bezprzewodowe/ domena.pl/k/akcesoria-do-telefonu/sluchawki-bezprzewodowe/
Kategoria sluchawki-bezprzewodowe – identyczna treść, dwa URL-e, dwa adresy do zaindeksowania, rozproszony link equity. I żaden z nich nie będzie tak silny, jak jeden skonsolidowany.
Rozwiązanie jest proste i wychodzi bezpośrednio z tego, co pisałem wcześniej – płaska struktura. Zamiast wpychać kategorię w hierarchię rodziców, daję jej jeden, stały adres:
domena.pl/k/sluchawki-bezprzewodowe/
Koniec. Nie ma drugiego URL-a, bo nie ma rodzica w ścieżce. Powiązanie między „słuchawkami” a „elektroniką” czy „akcesoriami do telefonu” buduję linkowaniem wewnętrznym i nawigacją – nie URL-em.

Filtry i parametry – pułapka dla crawlerów
Dynamiczne URL-e przy filtrowaniu produktów to moim zdaniem największy i najczęściej bagatelizowany problem w sklepach. Każda kombinacja aktywnych filtrów (kolor, rozmiar, materiał, sortowanie) może generować osobny URL:
domena.pl/k/sukienki/?kolor=czerwony&rozmiar=M&material=bawelna&sort=cena_asc
Sklep z pięcioma filtrami po dziesięć opcji każdy może w ten sposób wyprodukować tysiące unikalnych adresów prowadzących do identycznej lub prawie identycznej treści. To marnuje crawl budget – roboty Googla zamiast indeksować wartościowe podstrony, chodzą w kółko po wariantach filtrowania. Rozwiązuje się to przez robots.txt lub meta robots noindex na stronach z parametrami, ale to temat na osobne wpisy – każde z tych narzędzi ma swoje zasady i ograniczenia. Tutaj sygnalizuję, bo problem zaczyna się bezpośrednio w strukturze URL-i.
Struktura URL w różnych CMS-ach
Każda platforma podchodzi do URL-i trochę inaczej. Opisze Wam tu kilka z tych z którymi mam najczęstszy kontakt:
WordPress / WooCommerce
Pełna dowolność – co jest zarówno zaletą, jak i pułapką. Nikt nie narzuca struktury, więc możesz ustawić cokolwiek. I właśnie dlatego warto ustawić to świadomie od razu. Zalecam podział jak wyżej: /blog/, /k/, /p/ i płaską hierarchię w kategoriach produktów. Konfiguruje się to przez ustawienia permalinków w WordPressie, a strukturę dla WooCommerce doprecyzowuje przez Yoast SEO lub Rank Math.
Shoper
Charakterystyczny dla tego systemu jest segment /pl/ (lub innej wersji językowej) na początku ścieżki, a następnie podział na /p/ (produkt), /c/ (kategoria), /blog/ (blog). Można nadpisywać ścieżki ręcznie, ale w większości przypadków nie trzeba. Domyślna logika jest czytelna i dobrze wpasowuje się w analitykę – te prefixe robią za Ciebie część roboty organizacyjnej.
PrestaShop
Podobna sytuacja jak w Shoperze, generator URL-i jest konfigurowalny w panelu administracyjnym. Upewnij się, że tryb „przyjaznych URL-i” jest włączony – w nowszych wersjach jest domyślnie aktywny, ale w starszych instalacjach zdarza się zastać go wyłączonego. Warto też sprawdzić, czy URL-e z kategoriami i bez nie generują duplikatów przy produktach.
Shopify
Tutaj masz do powiedzenia najmniej. Platforma narzuca stały podział:
/products/nazwa-produktu– produkty/collections/nazwa-kolekcji– kategorie/blogs/blog/nazwa-wpisu– blog/pages/nazwa-strony– strony statyczne
Tych prefixów nie zmienisz – są wbudowane w architekturę systemu. To, co kontrolujesz, to slug po ostatnim ukośniku.
Jest tu jeden niuans wart uwagi, Shopify generuje dla produktów dwa URL-e jednocześnie – /products/produkt (kanoniczny) i /collections/kolekcja/products/produkt (ten używany w nawigacji kategorii). To potencjalny duplikat. Na szczęście Shopify ustawia tag canonical automatycznie na krótszy adres /products/produkt – więc problem jest obsługiwany przez platformę, o ile jej w tym nie przeszkodzisz.
Co do długości prefixów: /collections/ to 13 znaków, /k/ to 3. Zasada, że im krótszy URL i im wcześniej pojawia się w nim słowo kluczowe, tym lepiej – ma tu zastosowanie. Shopify tego nie optymalizuje. Ale sam slug – czyli to, co możesz edytować – powinien być możliwie krótki i trafiać słowem kluczowym jak najwcześniej. Reszta to ramy, z którymi trzeba żyć.
Ogółem Shopify nie jest ideałem pod kątem URL-i, ale do przyjęcia – zwłaszcza że wymuszony podział na /products/, /collections/ i /blogs/ daje z automatu czytelną strukturę pod analitykę. Masz gotowe segmenty bez żadnej konfiguracji.
Zmiana URL-i po fakcie zawsze kosztuje
Struktura adresów URL to jedno z tych postanowień w SEO, które najtrudniej odwrócić po fakcie. Przekierowania 301 technicznie rozwiązują problem, ale każda migracja URL-i to ryzyko – nawet dobrze przeprowadzona może chwilowo obniżyć widoczność. Lepiej zaprojektować to raz, z głową, niż wracać do tematu po roku ze złamaną strukturą i setką adresów do przepięcia.
Jeśli budujesz stronę od zera i nie wiesz jak ustawić strukturę pod swój CMS – albo masz już działający serwis i chcesz sprawdzić, czy URL-e nie generują problemów skontaktuj się z nami.