W tym artykule zajmiemy się optymalizacją adresów URL. Odpowiemy sobie na pytania co to jest URL, jaki ma wpływ na SEO oraz jaka jest nadrzędna filozofia jaka powinna stać za tworzeniem struktury i optymalizacji adresów URL. Odpowiemy sobie też na pytanie kiedy mamy do czynienia z przyjaznym linkiem.
Temat jest fascynujący, bo prostota jaka kryje się za dobrym adresem URL jest wprost proporcjonalna do ilości mitów jakie powstały wokół tego zagadnienia – a jest ich sporo. Adres URL to jedna z tych rzeczy, którą raczej optymalizujemy dla wyszukiwarek i komputerów a nie dla człowieka. Optymalizacja adresów URL to element gałęzi SEO którą nazywamy jako techniczne SEO.
Co to jest adres URL?
URL (ang Uniform Resource Locator) – to sposób adresowania stosowany w Internecie. Szczegółowa specyfikacja URL znajduje się w specyfikacji RFC 1738.
Tak jak domeny internetowe wskazują jednoznacznie na konkretne serwery i pośrednio na witryny internetowe, tak adres URL wskazuje na konkretne podstrony tych serwisów a także ich zasoby. Dzięki adresom URL, przeglądarka może dokonywać żądań do serwera. O tym jak działają żądania w sieci WWW, opisałem w artykule: Jak działają strony WWW.
Szczególnym przypadkiem jest URL składający się z protokołu i nazwy domeny:

Wytłumaczenie protokółu HTTPS znajdziesz w następujących artykułach:
Wytłumaczenie dalszych członów najdziesz w artykułach:
Jednak przy rozważaniach o adresie URL musimy na adresy patrzeć w nieco innej skali i wtedy mamy po kolei:

- Protokół
- Host
- Ścieżka do zasobu
- Ścieżka wyszukiwania (ang. query string)
Choć w obecnym Internecie rzadko buduje się strony statyczne, w poniższym przykładzie posłużę się działaniem stron statycznych bez włączonego przepisywania adresów URL, ponieważ zrozumienie poniższego przykładu jest kluczowe dla poznania mechanizmów URL opisywanych w dalszej części artykułu.
W przypadku adresu:
https://www.nazwadomeny.pl/
standardowe ustawienia serwera spowodują, że serwer wyświetli nam plik index.html lub index.php kiedy adres URL kończy się ukośnikiem. Teraz możemy dokonać bardziej szczegółowego zapytania do tej witryny, wystarczy po ukośniku dodać kolejne człony. Przykładem może być strona kontakt:
https://www.nazwadomeny.pl/kontakt.html
Jeżeli serwer nie posiada specyficznych ustawień i mamy do czynienia ze statyczną stroną internetową, w przeglądarce zostanie wyświetlony dokument kontakt.html z głównego „katalogu” strony internetowej. Dokumenty HTML możemy zagnieżdżać w katalogi, zupełnie tak, jak w systemie plików. Możemy stworzyć katalog „oferta” i w nim kolejny plik index.html. Chęć wyświetlenia tej strony będzie wyglądać tak:
https://www.nazwadomeny.pl/oferta/
Oczywiście to nam nie przeszkadza w stworzeniu podstrony oferta.html w głównym katalogu witryny. Będziemy mieć wówczas dwa adresy:
https://www.nazwadomeny.pl/oferta/ https://www.nazwadomeny.pl/oferta.html
Które są de facto całkiem osobnymi stronami internetowymi nie mającymi ze sobą jakiegokolwiek związku.
Parametry w adresach URL
Bardzo często w adresach URL można się spotkać z pytajnikiem. Pytajnik rozpoczyna serię parametrów w adresach URL (ang. Query strings).
Przeglądarka i wyszukiwarki spodziewają się wyświetlenia tej samej strony / skryptu (z filozoficznego punktu widzenia) ale ze specjalnym dodatkowym parametrem, który może:
- filtrować treść,
- zmienić sposób sortowania,
- wyszukiwać treść po słowie kluczowym.
Przykładowo, chcąc wyszukiwać na moim blogu artykuły w których znajduje się słowo optymalizacja, wyszukiwarka przejdzie do takiego adresu:
https://mansfeld.pl/?s=optymalizacja
Jeżeli w Allegro szukamy:
- książek w kategorii Informatyka i Internet,
- po słowie kluczowym „HTML5”,
- posortujemy cenę od najniższej
- i będziemy zainteresowani tylko używanymi przedmiotami,
adres w przeglądarce przyjmie taką postać:
https://alegro.pl/kategoria/informatyka-internet-79468?string=html5&order=p&stan=używane
Widać tutaj, że odwiedzamy stronę informatyka-internet-79468 z parametrami, które filtrują dla nas wynik.
Przepisywanie adresów URL
Czasem te rozszerzenia .html lub .php mogą się nam nie podobać i w tym momencie wkracza przepisywanie adresów (ang URL rewrite). Przepisywanie powoduje, że możemy użyć bardziej czytelniejszego formatu adresu URL według dowolnych mechanizmów jakie zastosujemy w serwerze. Przykładowym zabiegiem na stronach statycznych jest usuwanie rozszerzenia .html. Wówczas w serwerach Apache możemy użyć instrukcji htaccess.
Usuwanie rozszerzenia .html w .htaccess
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)$ $1.html [NC,L]
Dzięki temu uzyskujemy taką funkcjonalność, że na zapytanie:
https://www.nazwadomeny.pl/oferta
Serwer zwróci zawartość strony oferta.html – ale co tak naprawdę zwraca serwer tego już przeglądarka i wyszukiwarka nie wie, bo cała „magia” dzieje się po stronie serwera. Wyszukiwarka oczekuje osobnej podstrony ale deweloper równie dobrze mógł zaprogramować stronę tak, że ta tak naprawdę zwraca stronę index.php z dodatkowym parametrem oferta (np. index.php?strona=oferta). Co oznacza, że dowolnie nazwany skrypt może wyświetlić dowolne dane z bazy danych.
Kierowanie wszystkich zapytań do index.php
Kierowanie wszystkich zapytań do jednego skryptu trasującego wywołania konkretnych metod czy funkcji to standardowe działanie w większości systemach CMS i dynamicznych aplikacjach PHP, w których wykorzystuje się wzorzec MVC.
Wtedy najczęściej korzysta się z czegoś takiego:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Od tej pory pierwotne zasady działania adresów URL przestają obowiązywać a to co zwróci serwer w wyniku takiego lub innego zapytania całkowicie zależy od dewelopera, który tworzy mechanizm parsowania adresów URL.
Usuwanie rozszerzeń .html i .php – czy warto?
Wróćmy jeszcze na chwilę do usuwania końcówek .html. .php lub .asp, bo jest to zdecydowanie przecenione w świecie pozycjonerów. Google nawet w najnowszych materiałach jasno oświadcza, że takie zabiegi (jak usuwanie rozszerzenia .html) nie mają najmniejszego sensu. Wprowadzanie takich „udoskonaleń” tylko i wyłączenie z perspektywy SEO jest wręcz są szkodliwe:
To nie obniża UX jak na wielu dziwnych blogach można przeczytać ani nie pogarsza jego przyjazności:
Optymalizacja URL dla wyszukiwarek
Temat adresów URL nie byłby tak często podnoszony gdyby nie wpływ tego jak wyglądają i jaką mają strukturę na kwestie związane z pozycjonowaniem na konkretne frazy.
Przyjazny link dla wyszukiwarek internetowych
W SEO istnieje coś takiego jak przyjazny link (ang. Search Engine Friendly URL). Cechy przyjaznego linku to przede wszystkim:
- separator dla poszczególnych słów (myślnik)
- brak podkreśleń (zamiana na myślnik),
- brak spacji i znaków diakrytycznych,
- logiczna struktura (np. z wykorzystaniem kategorii),
- unikanie nadmiernego zagnieżdżania,
- unikanie spójników
Podsumowując: idealny-url/wyglada-mniej-wiecej-tak/
Jednak trzeba zaznaczyć, że dużo gorszym posunięciem jest zmiana adresu po czasie niż zostawienie tego starego niby „nieprzyjaznego”. Fajnie to wytłumaczono w jednym z materiałów dotyczących podkreśleń i myślników:
Zmiany i optymalizowanie URL
Tak jak przytoczono w powyższym materiale, jakiekolwiek zmiany i optymalizowanie obecnych adresów URL powinny być poparte bardzo solidnymi argumentami. Nie ma sensu dopieszczać struktury lub dokonywać w nich częstych zmian. Skoro zaleca się stosować jak najdłużej jeden i konsekwentny sposób tworzenia adresów URL, tworzenie odpowiedniej struktury URL, zagnieżdżanie i organizowanie kategorii to zadanie podczas tworzenia lub generalnej aktualizacji witryny a nie podczas jej „pozycjonowania” – cokolwiek rozumiemy pod tym pojeciem.
Logiczna struktura adresów URL
Logiczna struktura adresów URL powoduje, że sam adres daje nam wiele dodatkowych informacji odnośnie samej treści i powiązaniom pomiędzy podstronami. Przykładowo ta grupa adresów:
https://www.nazwadomeny.pl/onas/
https://www.nazwadomeny.pl/strony-internetowe/
https://www.nazwadomeny.pl/e-commerce/
https://www.nazwadomeny.pl/aplikacje-webowe/
https://www.nazwadomeny.pl/kontakt/
wygląda jak po prostu nieuporządkowany zbiór stron powiązanych jedynie wspólną domeną. Kiedy zrobimy bardzo drobną rzecz, mianowicie, dodamy kategorię przed nazwą danej strony bez zaznajamiania się z treścią stron bardzo łatwo zauważyć, że niektóre strony są ze sobą bardziej skorelowane niż inne. Sortując je alfabetyczne otrzymujemy klastry powiązane tematycznie.
https://www.nazwadomeny.pl/onas/ https://www.nazwadomeny.pl/oferta/strony-internetowe/ https://www.nazwadomeny.pl/oferta/e-commerce/ https://www.nazwadomeny.pl/oferta/aplikacje-webowe/ https://www.nazwadomeny.pl/kontakt/
Nawet gdybyśmy całkowicie pominęli linkowanie wewnętrzne, wyszukiwarka a nawet sam użytkownik wie, że te strony należą do pewnej wspólnej grupy – w tym przypadku kategorii tematycznej na blogu lub w sklepie internetowym. Dodawanie kategorii do adresu URL to bardzo dobra praktyka. Bez czytania wiadomo, że jest to oferta i taka struktura lepiej rokuje przykładowo w pozycjonowaniu lokalnym, kiedy intencją użytkownika jest znalezienie usług po frazie „nazwa usługi warszawa”.
To stwierdzenie stoi w opozycji do bardzo szeroko rozpowszechnionego mitu, który mówi o tym, że każdy dodatkowy człon przed tytułem, obniża moc SEO i im dalej od głównego katalogu tym gorzej.
Dodatkową zaletą jest fakt, że wyszukiwarka będzie próbowała skanować folder nadrzędny w celu zbadania jego zawartości. Jeżeli znajdzie artykuły o ściśle podobnej tematyce, otrzymuje konkretny sygnał że strony są ze sobą powiązane i mogą być one użyteczne dla użytkowników wyszukiwarki.
Proszę sobie teraz wyobrazić jak ta różnica może wpływać w sklepach internetowych czy na blogu. Nawet Matt Cuts w jednym z filmów mówił o tym, że lepiej mieć sensowne słowa kluczowe w poszczególnych zagnieżdżonych fragmentach niż jeden długi (i spamersko wyglądający) tytuł:
Matt w jednym filmiku wyśmiewa jednego z użytkowników, który pyta, w której pozycji słowo kluczowe jest „mocniejsze”:
Pozycja konkretnej frazy w adresie to najmniej ważna rzecz – istotna jest konsekwentna struktura. Ta wpływa na pozytywne zarówno na SEO jak i UX.
Długość adresu URL
O ile głębokość zagnieżdżenia nie jest istotna z perspektywy SEO, długi adres URL może nawet dla algorytmu wyglądać zbyt spamersko. W jednym z filmów dla webmasterów mówi się o limicie od 4 do 5 słów. Tego limitu warto się trzymać.
Maksymalny limit długość adresu URL?
Najczęściej przytaczanym ograniczeniem długości pojedynczego adresu URL jest limit 2048 znaków.
Tak naprawdę, w dokumentacji Firefox i Safari można się natknąć na to, że 65 000 znaków to granica po przekroczeniu której można zauważyć zachwianie stabilności a w Internet Explorer jest to 2083 znaków.
Zalecana długość URL dla SEO
Zalecana długość adresu URL to ok. 80 znaków. Niektóre źródła podają wartość od 60 do 120 znaków. Jest to często argumentowane momentem ucinania długich adresów URL na stronach z wynikami wyszukiwania:

Numery ID w adresie URL
Numery ID nie są szkodliwe. W zdrowym sklepie internetowym lub witrynie z bazą danych, np ogłoszeń czy katalogiem firm, każdy unikalny wpis ma swoje ID. Można to zaobserwować w czołowych sklepach internetowych oraz portalach o zasięgu globalnym. ID w adresie pozwala własnie bezinwazyjnie aktualizować go w przypadku zmiany tematu lub zmiany istotnych szczegółów
Posiadanie unikalnego ID w adresie URL to przypadek gdzie aktualizacja URL jest mniej problemowa. To właśnie dzięki unikalnemu ID wyszukiwarka będzie przekonana, że to ta sama strona i dokonano korekty adresu URL.
- przy aktualizacji nazwy użytkownika jakiegoś forum,
- zmieniając tytuł w produkcie,
- zmieniając tytuł wątku na forum,
- w bazie danych supportu i FAQ, itd…
W przypadku braku numeru ID, zmiana URL wygląda jak usunięcie poprzedniej strony, stworzenie nowej i wykonanie przekierowania HTTP. Jeżeli to cię nie przekonuje. Zobacz jak wyglądają adresu URL w najpopularniejszych serwisach społecznościowych i e-commerce, które są realizowane za naprawdę duże pieniądze:
https://allegro.pl/oferta/smartfon-google-pixel-3-xl-4-64gb-lte-nfc-ip68-gps-7765127850 https://www.x-kom.pl/p/525262-sluchawki-bezprzewodowe-apple-airpods-pro.html ps://www.morele.net/smartfon-xiaomi-mi-9t-pro-6-128gb-dual-sim-czerwony-6180546/ https://stackoverflow.com/users/8179489/pawel-mansfeld
Już nie wspominam o takich serwisach jak YouTube, bo tam adres składa się praktycznie tylko z unikalnego identyfikatora filmu.
Usuwanie numerów ID w sklepach internetowych to jedna z najbardziej niedorzecznych i szkodliwych praktyk SEO, po której widać poziom i wiedzę osób stojących za projektem.
Wszystkie najpopularniejsze systemy CMS pozwalają dodać numer ID każdej pojedynczej stronie. W niektórych profesjonalnych systemach sklepowych (jak np. PrestaShop) jest to domyślnie włączone.
Nie zrozum tego źle. Nie trzeba dodawać numerów ID do bloga firmowego czy zwykłej strony internetowej. Im większy i bardziej skalowalny serwis, tym pokazywanie numerów ID jest coraz bardziej rozsądne i opłacalne z perspektywy utrzymania serwisu. Z całą pewnością powinny się one znajdować w sklepach internetowych (dla samych produktów lub także dla kategorii).
Słowa kluczowe w adresie URL
Dobrze jest mieć słowa kluczowe w adresie co też często było potwierdzane przez przedstawicieli Google i zostało potwierdzone w licznych eksperymentach. Większość znanych CMSów i systemów e-commerce pozwala dostosować bezpośredni odnośnik. Unikalny, zgodny z treścią adres URL to kolejne miejsce gdzie wyszukiwarka może zdobyć niejako potwierdzenie, że strona zawiera treść odpowiadającą umieszczonym w nich słowom kluczowym.
Adres URL to także kolejne miejsce, gdzie frazy można dywersyfikować czyli stosować synonimy, o których pisałem w optymalizacji tytułów i optymalizacji treści na tronach internetowych. Dywersyfikacja fraz w adresie URL, tytule i treści pozwala łatwiej osiągnąć efekt tzw. długiego ogona (ang. long-tail) słów kluczowych dla konkretnego wpisu lub produktu.
WordPress
W WordPressie robimy to w dwóch miejscach. Pierwszym z nich są ustawienia bezpośrednich odnośników gdzie definiujemy strukturę adresów URL:

Drugiem miejscem są oczywiście ustawienia konkretnej podstrony czy wpisu:

W przypadku korzystania z wtyczki WooCommerce, dojdzie nam dodatkowy panel do dostrojenia struktury adresu URL w ramach sklepu:

w środowisku WordPress na unikalny URL mówimy permalink. Czytaj więcej tego typu porad gdzie dość dokładnie rozwijam temat struktury adresów URL w w artykule: Optymalizacja SEO WordPress.
Joomla
Joomla! udostępnia podobną technikę. Na poziomie konfiguracji globalnej:

oraz na poziomie wpisu, URL można dostosować w polu „alias”, który położony zaraz obok tytułu:

Czytaj więcej: optymalizacja SEO Joomla.
PrestaShop
Bardzo podobnie rozwiązano to w systemie PrestaShop, gdzie w ustawieniach Preferencje > Ruch włączamy przyjazne adresy URL:

A na poziomie produktu wpisujemy istotne słowa kluczowe:

Czytaj więcej o innych możliwościach SEO w artykule: optymalizacja SEO PrestaShop. Oczywiście, podobne ustawienia powinny być dostępne także w innych popularnych CMSach.
Należy pamiętać aby nie upychać na siłę słów kluczowych a już na pewno ich nie powtarzać. Dokładnie ta sama zasada dotyczy nagłówka h1 czy tytułu konkretnej podstrony. Warto unikać znaków specjalnych i stosować odmiany z mniejszą ilością znaków diakrytycznych.
Szczególne przypadki adresów URL
Istnieją pewne okoliczności, w których często pojawiające się w Internecie porady, nie znajdują zastosowania lub po prostu są niezgodne z prawdą. O numerach ID w sklepach internetowych powiedzieliśmy sobie już wcześniej. Są jednak jeszcze inne sytuacje, gdzie potrzeba indywidualnego podejścia i „złamania” popularnych porad.
Daty w adresie URL
Daty w adresie URL dobrze omówił Matt w jednym z filmów i od tego momentu nic się nie zmieniło:
Jeżeli mają one istotne znaczenie (np. prowadzimy zapis statystyk i archiwizujemy dane) prowadzimy portfolio, to należy je zostawić. Na blogach firmowych i treściach, które często są aktualizowane dla organicznego pozycjonowania lepiej z nich zrezygnować.
Dlaczego? Ponieważ starsze daty mogą osiągać mniejszy CTR – innymi słowy zniechęcać do klikania na wynikach wyszukiwania. Z tego samego powodu niektórzy usuwają daty publikacji.
Polskie znaki i znaki specjalne w adresie URL
To jedno z najlepszych pytań jakie padło na kanale Google Webmasters.
W dużym uproszczeniu, należy unikać znaków specjalnych i znaków diakrytycznych w adresie URL. Oczywiście to też dotyczy także obrazów. Częstym problemem przy przenoszeniu strony WordPress jest sytuacja gdzie serwery różnie kodują znaki specjalne w systemie plików i adresach URL. W wyniku tego ścieżki po takiej migracji mogą być zepsute.
Kiedy optymalizujemy nazwy pliku załączników pod SEO, %bf zamiast „ż” nie powoduje że jest on bardziej czytelny a już na pewno nie jest przyjazny dla SEO. To samo tyczy się adresów URL wykorzystujących alfabety inne od łacińskiego na stronach wielojęzycznych.
Mity na temat optymalizacji adresów URL
W adresach URL powinniśmy unikać zapytań z pytajnikami i znakiem etki.
To mit. Parametry tego typu są potrzebne i dzięki nim Google wie, że ma do czynienia z tą samą stroną ale z innymi parametrami. Nie bez powodu Google nawet na swoich stronach korzysta z nich przy lokalizowaniu treści oraz widać je w największych sklepach i witrynach internetowych.
Im bliżej głównego katalogu tym lepiej
oraz im krótszy URL tym lepiej
To także mit. Struktura adresu URL jest dużo ważniejsza niż radykalne skracanie czy celowe unikanie hierarchii w adresach URL.
Priorytetem jest UX i estetyczny wygląd linku
Nie jest to prawda. Linki są najczęściej ukrywane za pomocą anchorów a w przeglądarce w pasku adresu mało kto na nie zwraca uwagę. Nie wpisujemy adresów URL z palca ani ich zazwyczaj nie edytujemy w pasku adresu.
Z URL użytkownicy korzystają tylko pośrednio. Faktycznie, widzą go w wynikach wyszukiwania, ale tytuł odgrywa zawsze istotniejszą rolę. Adresy URL służą wyszukiwarkom i mechanizmom działania Internetu i to te „potrzeby” należy je optymalizować.
Strony wielojęzyczne
No właśnie, odwieczny problem czy stosować sub-domeny, katalogi czy parametry w różnych wersjach językowych. W dużym skrócie:
- sub-domeny stosujemy w przypadku kiedy chcemy strony pozycjonować całkowicie osobno,
- katalogi – kiedy chcemy do pewnego stopnia różnicować treść,
- parametr stosujemy wtedy, kiedy każda strona będzie przetłumaczona praktycznie 1:1.
Czytaj więcej o stronach w wielu językach i pozycjonowaniu stron wielojęzycznych. W tym drugim artykule tłumaczę zalety i wady stosowania separacji wersji jezykowych w sub-domenach, katalogach i parametrach.
Optymalizacja adresów URL dla użytkownika
Choć czytelność adresu URL dla człowieka jest najmniej istotną cechą adresu URL zoptymalizowanego pod SEO, należy poświęcać temu odrobinę uwagi ale dopiero po spełnieniu wszystkich innych punktów, które przytoczyłem w tym artykule.
Nie możemy tworzyć sub-domen, dodatkowych katalogów czy usuwać numerów ID tylko dlatego że URL jest „ładniejszy”. Jeśli chodzi o adresy URL: Najpierw SEO potem UX. Wszystkie inne elementy strony (tytuły, treść i załączniki) optymalizujemy dla użytkownika.
Prosty i czytelny adres z większa prawdopodobieństwo, że ktoś bez zawahania podzieli się nim na forum czy z większą pewnością użyje go w treści e-maila.
Podsumowanie
Jak widać adresy URL to głęboki temat, który zahacza o programowanie, serwer, to jak w istocie działa Internet i SEO. Zrozumienie prostych zasad działania adresów URL i wyrobienie w sobie intuicji pozwala wybrać najlepsze rozwiązania w zakresie struktury bezpośrednich odnośników i definiowania aliasów w systemach zarządzania treścią.
Źródła
- https://tools.ietf.org/html/rfc1738
- https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/
- https://support.google.com/webmasters/answer/76329?hl=pl
- https://moz.com/learn/seo/url
- https://serpstat.com/blog/how-long-should-be-the-page-url-length-for-seo/
Odpowiedz lub skomentuj