Długość łańcucha przekierowań
ważność średniamierzonysposób redirect
Liczba przeskoków zanim żądanie trafi na właściwy adres. Więcej niż 2 to spowolnienie i ryzyko pętli.
Ten sam test co przekierowanie HTTP → HTTPS. Długi łańcuch to znacznik ostrzeżenia w wyniku, bez osobnego ustalenia i bez zmiany statusu.
WIKI
artykuł z 16.09.2026 · źródeł 10Długość łańcucha przekierowań to parametr monitoringu stron internetowych, który liczy przeskoki, czyli kolejne odpowiedzi przekierowujące, zanim żądanie dotrze do adresu, pod którym serwer zwraca właściwą odpowiedź. Wynikiem jest liczba przeskoków porównana z progiem. Łańcuch, który nie kończy się w granicach limitu klienta, jest nieodróżnialny od pętli. Każdy przeskok to osobna odpowiedź z klasy 3xx z nagłówkiem Location, pod który klient wysyła kolejne żądanie [1].
Jak działa
Przeglądarka, która dostaje przekierowanie, od razu wczytuje adres z nagłówka Location. Poza niewielkim kosztem dodatkowej wymiany z serwerem użytkownik zwykle tego nie zauważa [3]. Jeśli nowy adres także przekierowuje, powstaje łańcuch. Pętla to sytuacja, w której po wykonanym przekierowaniu następują kolejne i żadna strona nigdy nie zostaje znaleziona [3].
Każdy przeskok dodaje pełną wymianę żądanie–odpowiedź. Dokumentacja Lighthouse podaje, że taka dodatkowa podróż przez sieć może opóźnić wczytanie zasobu o setki milisekund [7]. Łańcuch nie jest więc błędem sam w sobie, ale jego koszt rośnie z każdym przeskokiem.
Typowy łańcuch powstaje z warstw reguł, z których każda robi jedną normalizację. Dokumentacja Apache opisuje osobno wymuszanie jednej nazwy hosta przez Redirect w hoście wirtualnym dla nazw niekanonicznych [8] i ujednolicanie ukośnika końcowego przekierowaniem 301 [8]. Dla prawdziwych katalogów ukośnik dopisuje już moduł mod_dir, gdy włączona jest domyślna dyrektywa DirectorySlash [8]. WordPress ma własną funkcję redirect_canonical(), która przekierowuje przychodzące linki na właściwy adres wynikający z ustawień witryny, w tym na wybraną formę z www albo bez [9]. Jej przekierowania mają kod 301 [9]. Jeśli reguła serwera, aplikacja i jej dodatki albo pośrednik przed serwerem normalizują adres niezależnie od siebie, przeskoki się sumują.
Standardy i specyfikacje
- RFC 9110 mówi, że klient powinien wykrywać cykliczne przekierowania i przerywać je [1]. Wcześniejsza wersja specyfikacji zalecała najwyżej pięć przekierowań, a autorzy treści powinni pamiętać, że część klientów może mieć taki stały limit [1].
- Fetch Standard (WHATWG), który opisuje pobieranie zasobów w przeglądarkach, każe zwrócić błąd sieci, gdy przychodzi kolejne przekierowanie, a licznik przekierowań żądania wynosi już 20 [2].
- Chromium przy wyczerpanym limicie przekierowań odmawia wykonania kolejnego i zwraca błąd
ERR_TOO_MANY_REDIRECTS[4]. - Roboty Google domyślnie wykonują do 10 przeskoków przekierowań. Poszczególne produkty mogą mieć inne limity, a narzędzia inspekcji Google w ogóle nie podążają za przekierowaniami [5]. Treść otrzymana z adresu przekierowującego jest ignorowana, przetwarzana jest treść adresu docelowego [5].
- Lighthouse oznaczał jako niezaliczony audyt strony z dwoma lub więcej przekierowaniami. Od wersji 13 audyt jest częścią analizy opóźnienia żądania dokumentu [7].
Zagrożenia i skutki
Pętla przekierowań. Najczęściej jest to problem serwera. Jeśli serwer ją wykryje, zwraca błąd 500 [3]. Pętla rozłożona na kilka serwerów, z których żaden nie widzi całości, zostaje wykryta dopiero przez przeglądarkę, która wyświetla komunikat o błędzie, a użytkownik niewiele może zrobić [3].
Proxy z TLS. Jeśli WordPress działa za reverse proxy obsługującym SSL, a sam nie ma SSL, wymuszanie HTTPS w panelu administracyjnym (FORCE_SSL_ADMIN) początkowo wpędza żądania w nieskończoną pętlę przekierowań. Rozwiązaniem jest odczyt nagłówka HTTP_X_FORWARDED_PROTO [10]. Podobnie w Apache zmienna %{HTTPS} za takim pośrednikiem zawsze ma wartość off [8].
Indeksowanie. Raport indeksowania stron w Search Console zgłasza błąd przekierowania, gdy łańcuch był zbyt długi, wystąpiła pętla, adres po przekierowaniach przekroczył maksymalną długość albo w łańcuchu był pusty lub błędny adres [6].
Wydajność. Opóźnienie dotyczy każdego wejścia z adresu, który nie jest docelowy. Lighthouse zaleca kierowanie linków od razu na aktualne adresy zasobów i unikanie przekierowań w zasobach krytycznej ścieżki renderowania [7].
Przykłady
| Łańcuch | Przeskoki | Skutek |
|---|---|---|
http://domena/ → https://www.domena/ | 1 | jedno przekierowanie, próg Lighthouse nie jest przekroczony [7] |
http:// → https:// → www | 2 | dwa lub więcej przekierowań — audyt Lighthouse niezaliczony [7] |
http:// → https:// → www → ukośnik | 3 | trzy dodatkowe wymiany, każda może kosztować setki milisekund [7] |
| powyżej 10 przeskoków | 11+ | ponad domyślny limit robotów Google [5]; w raporcie indeksowania błąd przekierowania [6] |
| ponad 20 przekierowań | 21+ | przeglądarka zgodna z Fetch zwraca błąd sieci [2], Chromium ERR_TOO_MANY_REDIRECTS [4] |
| adres A → B → A | bez końca | serwer może zwrócić 500, inaczej komunikat pętli w przeglądarce [3] |
- [1] RFC 9110 — HTTP Semantics · IETF
- [2] Fetch Standard — HTTP-redirect fetch · WHATWG
- [3] Redirections in HTTP · MDN Web Docs
- [4] net/url_request/url_request_job.cc · The Chromium Project
- [5] HTTP status codes, network and DNS errors — Google crawlers · Google for Developers
- [6] Page indexing report · Search Console Help
- [7] Avoid multiple page redirects — Lighthouse · Chrome for Developers
- [8] Redirecting and Remapping with mod_rewrite — Apache HTTP Server 2.4 · Apache Software Foundation
- [9] redirect_canonical() — WordPress Code Reference · WordPress.org
- [10] HTTPS — Advanced Administration Handbook · WordPress.org
STATS
wyniki z systemu · tylko liczby zbiorcze- Stron zmierzonych
- 270w ostatnim dniu pomiaru
- OK
- 468odczytów
- Fail
- 57odczytów
- Nie dało się sprawdzić
- 29timeout, blokada, limit zapytań
- Udział fail
- 10,9%bez „nie dało się”
- Stron łącznie
- 272choć jeden odczyt
- OK
- 65367odczytów
- Fail
- 6325odczytów
- Nie dało się sprawdzić
- 6400timeout, blokada, limit zapytań
- Udział fail
- 8,8%bez „nie dało się”
| Dzień | fail | nie dało się sprawdzić | ok |
|---|---|---|---|
| 08.10.2026 | 125 odczytów | 169 odczytów | 1488 odczytów |
| 09.10.2026 | 126 odczytów | 174 odczyty | 1482 odczyty |
| 10.10.2026 | 117 odczytów | 307 odczytów | 1358 odczytów |
| 11.10.2026 | 168 odczytów | 80 odczytów | 1534 odczyty |
| 12.10.2026 | 177 odczytów | 74 odczyty | 1531 odczytów |
| 13.10.2026 | 170 odczytów | 107 odczytów | 1505 odczytów |
| 14.10.2026 | 151 odczytów | 146 odczytów | 1485 odczytów |
| 15.10.2026 | 143 odczyty | 158 odczytów | 1481 odczytów |
| 16.10.2026 | 143 odczyty | 157 odczytów | 1482 odczyty |
| 17.10.2026 | 137 odczytów | 155 odczytów | 1490 odczytów |
| 18.10.2026 | 129 odczytów | 205 odczytów | 1448 odczytów |
| 19.10.2026 | 133 odczyty | 157 odczytów | 1492 odczyty |
| 20.10.2026 | 141 odczytów | 167 odczytów | 1474 odczyty |
| 21.10.2026 | 154 odczyty | 106 odczytów | 1531 odczytów |
| 22.10.2026 | 175 odczytów | 81 odczytów | 1526 odczytów |
| 23.10.2026 | 168 odczytów | 73 odczyty | 1541 odczytów |
| 24.10.2026 | 174 odczyty | 134 odczyty | 1474 odczyty |
| 25.10.2026 | 136 odczytów | 130 odczytów | 1516 odczytów |
| 26.10.2026 | 141 odczytów | 167 odczytów | 1474 odczyty |
| 27.10.2026 | 139 odczytów | 163 odczyty | 1480 odczytów |
| 28.10.2026 | 137 odczytów | 184 odczyty | 1461 odczytów |
| 29.10.2026 | 124 odczyty | 164 odczyty | 1499 odczytów |
| 30.10.2026 | 123 odczyty | 173 odczyty | 1582 odczyty |
| 31.10.2026 | 119 odczytów | 168 odczytów | 1591 odczytów |
| 01.11.2026 | 131 odczytów | 138 odczytów | 1609 odczytów |
| 02.11.2026 | 165 odczytów | 166 odczytów | 1606 odczytów |
| 03.11.2026 | 165 odczytów | 304 odczyty | 1509 odczytów |
| 04.11.2026 | 198 odczytów | 326 odczytów | 1592 odczyty |
| 05.11.2026 | 130 odczytów | 476 odczytów | 1426 odczytów |
| 06.11.2026 | 57 odczytów | 29 odczytów | 468 odczytów |
- Przebiegów
- 60sposób redirect
- W 30 dni
- 0przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- 20461 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 22.09.2026Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.
| Obszar i ważność | Dostępność · średnia (D07) |
|---|---|
| Workflow i częstotliwość | creato_ping_avail_v2 działa na LAB247Skaner 2.0, rytm „dostepnosc”: premium co 15 min, reszta co 3–12 h · Dawny workflow n8n avail_v2; od 20.09 te same sondy w rytmie kohort skanera. Sposób ssl daje odczyt ssl_expiry (dni do wygaśnięcia certyfikatu); odczyty trafiają do check_results. |
| Sonda i helper | sposób redirect · CREATO_PING/helpers/redirect_check.py |
| Testy |
|
| Typ wyniku | flaga długiego łańcucha i liczba przeskoków w wyniku sprawdzenia redirect — bez własnego odczytu i ustalenia |
| Jednostka | liczba przeskoków od http://domena do adresu końcowego |
| Próg i reguła | Przeskoki > 2 = znacznik (CREATO_PING_REDIRECT_MAX_HOPS, domyślnie 2, minimum 1). Powyżej 5 przekierowań znacznika nie ma — jest fail parametru Przekierowanie HTTP → HTTPS. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/redirect_check.py → CREATO_PING_REDIRECT_MAX_HOPS (domyślnie 2)CREATO_PING/helpers/redirect_check.py → _MAX_REDIRECTS (5) |
| Retencja odczytów | Odczyt sprawdzenia redirect zostaje w tabeli `odczyty` skanera i w `check_results` bazy LAB247, ale sam znacznik przeżywa wyłącznie jako tekst w polu błędu — liczby przeskoków nie zapisuje żaden z tych torów. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/redirect_check.py · CREATO_PING/tools/avail_writer_input.py · CREATO_PING/helpers/check_health.py · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 22.09.2026 |
Parametr nie ma własnej usterki w katalogu: znacznik długiego łańcucha zostaje w wyniku sprawdzenia redirect jako tekst w polu błędu odczytu ok. Nie powstaje ustalenie ani sprawa, więc wskaźnik strony się nie zmienia.
Parametr nie otwiera osobnego Findingu — wynik zostaje znacznikiem w odczycie.
LOOP
bez pętliTrafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.