Co to jest łańcuch przekierowań i jak go usunąć?

Łańcuch przekierowań to co najmniej dwa przekierowania pod rząd: przeglądarka lub robot Google przechodzą od adresu startowego, przez adresy pośrednie, do adresu docelowego z odpowiedzią 200. Powstaje najczęściej po kilku zmianach wprowadzanych na stronie niezależnie od siebie: przejściu na https, zmianie adresu podstrony, dodaniu ukośnika na końcu. Każdy dodatkowy skok to osobne żądanie, dłuższy czas ładowania i słabszy sygnał dla Google, dlatego naprawa polega na skróceniu łańcucha do jednego przekierowania.

Czym jest łańcuch przekierowań?

Łańcuch przekierowań (ang. redirect chain) powstaje, gdy adres A przekierowuje na adres B, a B, zamiast zwrócić stronę, odsyła dalej na C. Dopiero adres C odpowiada kodem 200 i dostarcza treść. Użytkownik widzi w pasku adresu tylko C, choć przeglądarka wykonała po drodze trzy żądania zamiast jednego.

Pojedyncze przekierowanie 301 jest normalnym narzędziem przy zmianie adresu. Łańcuch nie jest osobnym rodzajem przekierowania, tylko efektem nałożenia się kilku reguł, z których każda pojedynczo działa poprawnie. Typowe źródła:

  • Przekierowanie z http na https ustawione osobno od reguły, która dodaje ukośnik albo „www” – jak przenieść stronę z http na https bez tego błędu.
  • Zmiana adresu podstrony, na który kierowało już inne przekierowanie: stara reguła nadal wskazuje adres pośredni.
  • Migracja domeny nałożona na przekierowania z poprzedniego serwisu.
  • Reguły na dwóch poziomach: jedna na serwerze lub w pliku .htaccess, druga we wtyczce przekierowań w WordPressie.

Czym różni się łańcuch przekierowań od pętli przekierowań?

Łańcuch ma początek i koniec: ostatni adres zwraca kod 200 i treść. Pętla przekierowań odsyła z powrotem do adresu, który już był w sekwencji (A na B, B na A), więc przeglądarka nigdy nie dostaje treści.

CechaŁańcuch przekierowańPętla przekierowań
Koniec sekwencjistrona z kodem 200brak, przekierowania powtarzają się
Co widzi użytkownikwłaściwą stronę, tylko z opóźnieniemkomunikat ERR_TOO_MANY_REDIRECTS w Chrome
Co widzi Googlestronę docelową, gdy łańcuch ma do 10 skokówwiersz „Błąd przekierowania” w raporcie Strony w Search Console, strona poza indeksem
Naprawaskrócenie do jednego skokuusunięcie reguły, która zawraca

Oba zjawiska wykrywa się tymi samymi narzędziami: Screaming Frog oznacza pętle w raporcie, w którym pokazuje łańcuchy. Gdy trafisz na pętlę, przejdź do instrukcji: jak naprawić pętlę przekierowań.

Dlaczego łańcuch przekierowań szkodzi stronie?

Łańcuch przekierowań kosztuje w trzech miejscach: w indeksowaniu przez Google, w stabilności reguł i w czasie ładowania strony.

Robot Google. Google podaje w dokumentacji, że jego robot podąża standardowo za maksymalnie 10 przeskokami w jednym łańcuchu, a po przekroczeniu limitu traktuje adres jak błąd i nie pobiera treści. Każdy skok, także poniżej tej granicy, to osobne żądanie robota bez treści w odpowiedzi, czyli zużyty crawl budget.

Stabilność reguł. Im więcej reguł składa się na jeden adres, tym więcej miejsc, w których jedna zmiana (nowa wtyczka, edycja .htaccess, przeniesienie domeny) zamienia działający łańcuch w pętlę albo w błąd. Mieszanka kodów 301 i 302 w jednym łańcuchu wysyła Google sprzeczny sygnał, czy przeniesienie jest stałe, czy tymczasowe.

Szybkość ładowania. Google Lighthouse i PageSpeed Insights mają audyt „Avoid multiple page redirects”, czyli „unikaj wielokrotnych przekierowań strony”. Każde dodatkowe przekierowanie dokłada pełną wymianę żądania i odpowiedzi z serwerem, zanim przeglądarka zacznie pobierać właściwą stronę. Dla użytkownika to pusty ekran, zanim pokaże się pierwsza treść.

Karta „Według odpowiedzi” w raporcie Statystyki indeksowania Google Search Console dla roseo.com.pl: OK (200) 82%, przekierowanie 301 15%, nie znaleziono (404) 3%
Zrzut: żądania robota Google według odpowiedzi serwera na roseo.com.pl. Każdy skok w łańcuchu dokłada kolejne żądanie z tej puli, zanim robot dostanie treść.

Masz na stronie łańcuchy przekierowań albo nie wiesz, czy w ogóle się pojawiają?

Sprawdzimy adresy w ramach pozycjonowania i podpowiemy, które reguły poprawić.

Napisz do nas

Jak znaleźć łańcuch przekierowań?

Całą stronę sprawdzasz crawlerem (Screaming Frog SEO Spider), czyli programem, który sam przechodzi po wszystkich jej adresach, a pojedynczy adres poleceniem curl w terminalu albo w narzędziach deweloperskich przeglądarki. Sygnał pośredni daje też raport Statystyki indeksowania w Google Search Console: sekcja „Według odpowiedzi” pokazuje, jaki udział żądań robota kończy się przekierowaniem, choć samych łańcuchów w nim nie zobaczysz.

Screaming Frog SEO Spider: raport Redirect Chains

Po przejściu całej strony Screaming Frog SEO Spider generuje w menu raportów raport „Redirect Chains”. Każdy wiersz to adres startowy, adresy pośrednie, adres końcowy, liczba skoków i oznaczenie, czy sekwencja jest pętlą. Darmowa wersja ma limit 500 adresów na jeden crawl, ale sam raport Redirect Chains jest w niej dostępny; ograniczenie dotyczy liczby sprawdzanych stron, nie funkcji.

curl -IL: cały łańcuch z terminala

Polecenie curl -IL <adres> (duże L) podąża za wszystkimi przekierowaniami i wypisuje nagłówki każdego kroku aż do odpowiedzi 200. Samo curl -I bez L pokazuje tylko pierwszy skok. Przykład z roseo.com.pl:

curl -IL http://roseo.com.pl/oferta/strony-internetowe
HTTP/1.1 301 Moved Permanently
Location: https://roseo.com.pl/oferta/strony-internetowe

HTTP/2 301
location: https://roseo.com.pl/oferta/strony-internetowe/

HTTP/2 200

To łańcuch dwóch przekierowań: pierwsze zamienia http na https, drugie dodaje ukośnik na końcu, a treść zwraca dopiero trzecie żądanie. Wejście przez https://roseo.com.pl/oferta/strony-internetowe/ to jedno żądanie, a przez wersję http bez ukośnika już trzy. Jeśli nie pracujesz w terminalu, tę samą sekwencję pokażą darmowe narzędzia online do sprawdzania przekierowań.

DevTools w Chrome: zakładka Network

W Chrome otwierasz narzędzia deweloperskie (F12), zakładkę Network, zaznaczasz „Preserve log” i wpisujesz adres w pasku adresu. Na liście żądań zobaczysz kolejne wiersze z kodem 301 lub 302, a na końcu jeden z kodem 200; wierszy 3xx jest tyle, ile skoków w łańcuchu.

Jak usunąć łańcuch przekierowań?

Każdy adres z łańcucha dostaje jedną regułę, która prowadzi prosto na adres końcowy. Starych przekierowań nie kasujesz, bo na nieaktualne adresy nadal kierują linki z innych stron, zakładki i wyniki wyszukiwania; zmieniasz tylko ich cel. Gdy łańcuch dotyczy samej wersji adresu (http, „www”, ukośnik), jedna z reguł musi obsłużyć oba warunki naraz, zamiast kilku reguł wykonywanych jedna po drugiej.

1

Spisz łańcuch

Z raportu Redirect Chains albo z wyniku curl -IL wynotuj adres startowy, adresy pośrednie i adres końcowy (ten z kodem 200).

2

Zmień cel reguły dla adresu startowego

Z adresu pośredniego na adres końcowy. Robisz to tam, gdzie reguła jest zdefiniowana: na serwerze, w pliku .htaccess albo we wtyczce przekierowań. Regułę edytujesz tak samo jak każde przekierowanie 301 w WordPressie, zmienia się tylko adres docelowy.

3

Zrób to samo dla każdego adresu pośredniego

Do adresu B też mogą prowadzić linki, więc B ma wskazywać C bezpośrednio.

4

Podmień linki wewnętrzne

W menu, treści i mapie witryny wskazuj adres końcowy w wersji, która zwraca 200 (https, ukośnik, „www” zgodnie z tym, jak strona odpowiada). Link do adresu z http albo bez ukośnika tworzy łańcuch przy każdym kliknięciu.

5

Sprawdź wynik

curl -IL dla adresu startowego ma pokazać jedno przekierowanie i od razu 200, a ponowny crawl w Screaming Frog powinien dać pusty raport Redirect Chains.

Gdy przekierowania siedzą na dwóch poziomach, jak w przykładzie z roseo.com.pl (za https odpowiada serwer, ukośnik dokłada WordPress), jedna z reguł musi obsłużyć oba warunki naraz: przekierowanie z http prowadzi od razu na wersję https z ukośnikiem. Inaczej łańcuch zostaje, choć każda reguła z osobna jest poprawna.

Jakie pojęcia wiążą się z łańcuchem przekierowań?

  • Przekierowanie 301: stałe przeniesienie adresu i podstawowy element, z którego składa się łańcuch. Więcej we wpisie Co to jest przekierowanie 301?
  • Pętla przekierowań: sekwencja, która wraca do wcześniejszego adresu i nie kończy się treścią; różnice są w tabeli wyżej.
  • Crawl budget: liczba żądań, które robot Google wykonuje na stronie w danym czasie; łańcuchy zużywają go bez pobrania treści. Więcej we wpisie Co to jest crawl budget?
  • Soft 404: adres, który zwraca kod 200, ale nie ma treści; tak działa między innymi masowe przekierowanie usuniętych adresów na stronę główną. Więcej we wpisie Co to jest soft 404?
  • Błąd 404: odpowiedź „nie znaleziono” dla adresu bez treści i bez przekierowania; właściwe rozwiązanie, gdy usunięta strona nie ma zamiennika.

Po przebudowie strony zostały Ci stare adresy, które przechodzą przez kilka przekierowań?

Spiszemy łańcuchy i skrócimy je do jednego skoku.

Napisz do nas

FAQ

Każdy skok powyżej jednego to koszt, dlatego celem naprawy jest jedno przekierowanie z adresu startowego prosto na docelowy. Górna granica po stronie Google to 10 przeskoków; powyżej niej robot traktuje adres jak błąd. Opóźnienie i dodatkowe żądania zaczynają się jednak już od drugiego skoku.

Łańcuch do 10 skoków nie blokuje indeksowania, więc adres docelowy trafia do wyników. Koszt jest pośredni: wolniejsze ładowanie, więcej żądań robota na tę samą treść i ryzyko, że jedna zmieniona reguła zamieni łańcuch w pętlę albo w błąd, który już wyklucza stronę z indeksu.

Nie, przeglądarka przechodzi przez wszystkie skoki i w pasku adresu pokazuje tylko adres końcowy. Użytkownik zauważy jedynie opóźnienie przed wyświetleniem strony. Komunikat ERR_TOO_MANY_REDIRECTS pojawia się dopiero przy pętli, nie przy łańcuchu.

Nie, te reguły zostają, bo na nieaktualne adresy nadal kierują linki z innych stron, zakładki i stare wyniki wyszukiwania. Zmieniasz tylko cel każdej z nich: zamiast adresu pośredniego ma wskazywać adres końcowy.

Tak, łańcuch tworzy każda sekwencja odpowiedzi 3xx, niezależnie od kodu, a curl i Screaming Frog pokazują ją tak samo. Mieszanka 301 i 302 wysyła Google sprzeczny sygnał, który adres ma zostać w wynikach; przy stałej zmianie adresu cały łańcuch skracasz do jednego 301.

Źródła

Przewijanie do góry