Co to jest łańcuch przekierowań? Definicja, wpływ na SEO i naprawa
Łańcuch przekierowań to sytuacja, w której między adresem wpisanym przez użytkownika lub robota a stroną z treścią stoją co najmniej dwa przekierowania, na przykład A prowadzi do B, a B do C. Googlebot podąża za maksymalnie 10 przekierowaniami, ale Google zaleca kierować od razu na adres docelowy. W audytach technicznych to jeden z najczęstszych i najtańszych w naprawie problemów.
Skąd się bierze łańcuch przekierowań
Łańcuch przekierowań prawie nigdy nie powstaje z jednej decyzji. Narasta warstwami: ktoś przenosi stronę na HTTPS, ktoś inny dodaje wymuszanie www, potem programista ustawia ukośnik na końcu adresów, a po dwóch latach sklep zmienia strukturę kategorii. Każda reguła z osobna jest poprawna, ale razem tworzą kilka kroków dla jednego linku.
Technicznie każdy krok to odpowiedź serwera z kodem 3xx i nagłówkiem Location, który wskazuje kolejny adres. Przeglądarka i Googlebot pobierają kolejne adresy, aż dostaną odpowiedź 200. Typowy przykład, który widuję w sklepach:
- http://sklep.pl/buty przekierowuje na https://sklep.pl/buty,
- ten adres przekierowuje na https://www.sklep.pl/buty,
- a ten na https://www.sklep.pl/buty/ z ukośnikiem.
Trzy żądania zamiast jednego, a to dopiero początek, jeśli kategoria była kiedyś przenoszona.
Łańcuch przekierowań a pętla przekierowań
Łańcuch przekierowań w końcu prowadzi do strony z treścią. Pętla nie prowadzi nigdzie, bo któryś krok wraca do adresu, który już się pojawił. Przeglądarka wykrywa taką sytuację i pokazuje błąd o zbyt wielu przekierowaniach.
| Cecha | Łańcuch | Pętla |
|---|---|---|
| Czy strona się ładuje | tak, po kilku krokach | nie |
| Co widzi użytkownik | wolniejsze ładowanie | komunikat o błędzie |
| Co robi Google | indeksuje adres końcowy, przy zbyt długim łańcuchu zgłasza błąd | zgłasza błąd przekierowania, adres nie trafia do indeksu |
Pętle zdarzają się zwykle po konflikcie reguł, na przykład gdy wtyczka w CMS wymusza wersję bez www, a serwer wersję z www.
Jak Google traktuje łańcuch przekierowań
Łańcuch przekierowań Google przechodzi do pewnego limitu i indeksuje tylko adres końcowy. Według dokumentacji Google Search Central roboty domyślnie wykonują maksymalnie 10 przekierowań. Raport indeksowania stron w Google Search Console wymienia osobno błędy takie jak zbyt długi łańcuch, pętla czy pusty adres w łańcuchu.
Problemem jest nie tylko limit. Każdy krok to dodatkowe żądanie, które w dużym serwisie zjada crawl budget. Do tego łańcuch może mieszać typy przekierowań: stałe przekierowanie 301 sugeruje Google, że adres docelowy ma być kanoniczny, a tymczasowe przekierowanie 302 zostawia w grze adres źródłowy. Łańcuch z obydwoma typami daje mniej jednoznaczny sygnał niż jedno bezpośrednie przekierowanie stałe.
Dla użytkownika każdy krok to dodatkowe połączenie z serwerem, co na wolnym łączu mobilnym potrafi dodać setki milisekund do ładowania.
Jak znaleźć i naprawić łańcuch przekierowań
Łańcuch przekierowań naprawia się tak, żeby każdy stary adres i każdy link wewnętrzny prowadził do strony docelowej w jednym kroku. Mój proces w audycie wygląda tak:
- Skanuję serwis crawlerem, który raportuje łańcuchy, na przykład Screaming Frog lub Sitebulb.
- Osobno skanuję listę starych adresów z profilu backlinków i z Search Console, bo tam łańcuchy chowają się najczęściej.
- Przepisuję reguły tak, żeby protokół, host i ukośnik były ustawiane w jednej odpowiedzi, a stare adresy wskazywały od razu adres końcowy.
- Aktualizuję linki wewnętrzne, tagi canonical, hreflang i mapy witryny, żeby nie wskazywały adresów przekierowujących.
- Skanuję ponownie i sprawdzam, czy wszystkie przekierowania mają jeden krok.
W Nginx łączenie protokołu i hosta w jeden krok sprowadza się do jednej reguły return 301 z pełnym adresem docelowym w blokach server dla HTTP i wersji bez www. W Apache zamiast dwóch reguł wpisuję jedną, od razu z pełnym adresem końcowym i ukośnikiem.
Kiedy łańcuch przekierowań jest najgroźniejszy
Łańcuch przekierowań robi największe szkody przy migracjach: zmianie domeny, CMS czy wejściu na nowe rynki z folderami językowymi. Wtedy reguły protokołu, hosta, języka i nowej struktury nakładają się na siebie w ciągu jednego dnia. Google zaleca utrzymywać przekierowania po migracji co najmniej rok, a najlepiej bez końca, więc lepiej, żeby były od początku czyste.
Przed migracją przygotowuję z klientem mapę przekierowań w arkuszu: każdy stary adres w jednej kolumnie, jego ostateczny odpowiednik w drugiej. Jeśli strona była już wcześniej przenoszona, dopisuję też adresy z poprzednich migracji i kieruję je od razu na nowe miejsce, zamiast doklejać kolejny krok do starego łańcucha.
Łańcuchy i pętle przekierowań to stały punkt mojego audytu SEO, zwłaszcza przed i po migracji serwisu.
Łańcuch przekierowań: najczęstsze pytania
Krótkie odpowiedzi na pytania, które często słyszę o tym, czym jest Łańcuch przekierowań i jak z tego korzystać.
Ile kroków może mieć łańcuch przekierowań?
Googlebot przechodzi maksymalnie 10 przekierowań, ale celem powinien być jeden krok. Google zaleca kierowanie od razu na adres końcowy.
Czy kilka przekierowań pod rząd obniża pozycje?
Samo w sobie zwykle nie powoduje spadku, ale spowalnia stronę, zużywa zasoby robota i może osłabić sygnały kanoniczne. Przy zbyt długim łańcuchu adres w ogóle nie zostanie zaindeksowany.
Jak sprawdzić pojedynczy adres pod kątem przekierowań?
Najprościej w narzędziach deweloperskich przeglądarki, w zakładce Network, albo poleceniem curl z opcją pokazującą nagłówki. Zobaczysz każdy krok z kodem odpowiedzi.
Czy trzeba poprawiać linki wewnętrzne, skoro przekierowanie działa?
Tak, bo każdy link do adresu przekierowującego to zbędny krok dla użytkownika i robota. Linki wewnętrzne powinny wskazywać adres docelowy bezpośrednio.
Łańcuch przekierowań: powiązane pojęcia
Pojęcia, które warto znać razem z hasłem Łańcuch przekierowań.
- Redirects and Google Search · Google Search Central
- How HTTP status codes, and network and DNS errors affect Google Search · Google Search Central
- Site moves with URL changes · Google Search Central
- Page indexing report · Google Search Console Help
- Redirections in HTTP · MDN Web Docs