Sprawdzanie przekierowań
Śledź pełny łańcuch przekierowań HTTP (301, 302, 307, 308) od początkowego do końcowego URL.
Sprawdzanie przekierowań
Prześledź łańcuch przekierowań dowolnego URL: kod każdego kroku (301, 302, 307, 308), adresy pośrednie i stronę końcową. Łańcuch dłuższy niż 15 kroków jest zatrzymywany — tak widać pętle.
Jak korzystać
- Wpisz URL aby sprawdzić łańcuch przekierowań
- Kliknij przycisk sprawdzania przekierowań
- Przejrzyj łańcuch przekierowań z kodami HTTP każdego kroku
Use Cases
- Weryfikacja łańcuchów przekierowań po migracjach URL.
- Wykrywanie zbędnych hopów obciążających crawl budget.
Limitations
- Sprawdza jeden URL startowy na uruchomienie.
- Złożone przekierowania JS mogą nie być widoczne jako HTTP hops.
Example Input / Output
http://example.com/old-page
301 -> 302 -> 200, final URL: https://example.com/new-page (2 hops).
FAQ
Sprawdzanie przekierowań online: jak czytać wynik
Wklej link, a narzędzie przejdzie po nim tak jak przeglądarka: pobierze adres, odczyta nagłówek Location, przejdzie dalej i tak aż do strony, która nie odpowie przekierowaniem. Uwzględniane są serwerowe kody 301, 302, 303, 307 i 308, maksymalnie 15 kroków. Na górze raportu są cztery wartości:
- Przekierowania: ile kroków dzieli link od strony docelowej. Norma to 0 lub 1.
- Status końcowy: kod adresu docelowego, który powinien wynosić 200. 404 oznacza, że przekierowanie prowadzi donikąd. 3xx po 15+ krokach oznacza pętlę.
- Łączny czas wszystkich żądań. Każdy dodatkowy krok to kolejne opóźnienie sieciowe, szczególnie na mobilnym internecie.
- Ta sama lub inna domena, co pozwala zauważyć, że link wyprowadza na obcą stronę.
Niżej są zalecenia. Łańcuch dłuższy niż dwa kroki jest oznaczany jako za długi, a dwa kroki jako do skrócenia. Przy tymczasowych kodach 302, 303 i 307 narzędzie radzi zamianę na 301, jeśli przeniesienie jest stałe. Przejście z http na https jest oznaczane jako poprawne. Przekierowań przez <meta http-equiv="refresh"> i JavaScript tu nie widać: to nie są odpowiedzi HTTP, a dla wyszukiwarki to słabsze sygnały niż serwerowe 301.
Dokąd prowadzi link? Sprawdzanie skróconych linków
Często chodzi nie o konfigurację własnej strony, lecz o pytanie, dokąd zaprowadzi konkretny link. Skrócone linki (bit.ly, cutt.ly), linki z newsletterów i linki afiliacyjne przechodzą przez jeden lub kilka serwisów śledzących, zanim trafią na stronę. Wklej taki link, a zobaczysz adres docelowy bez otwierania go we własnej przeglądarce: żądania wysyła nasz serwer, nie Twoje urządzenie. Oznaczenie „Inna domena” od razu pokazuje, że link wyprowadza poza pierwotny serwis, a w końcowym URL widać parametry UTM i identyfikatory programu partnerskiego.
Ograniczenie jest to samo: część skracaczy i sieci reklamowych pokazuje stronę pośrednią i przekierowuje dalej przez JavaScript. Wtedy łańcuch kończy się na tej stronie ze statusem 200. Jeśli domena docelowa budzi wątpliwości, sprawdź ją osobno, zanim podasz tam dane albo zapłacisz. Przydatne są też SMS-y „o dopłacie do paczki”: to klasyczny przypadek, w którym link prowadzi przez kilka przekierowań na stronę wyłudzającą dane karty.
301, 302, 307, 308: które przekierowanie wybrać
| Kod | Znaczenie | Kiedy stosować |
|---|---|---|
| 301 | Przeniesiono na stałe | Przeprowadzka na nową domenę, zmiana URL, sklejenie www i bez www, http → https |
| 308 | Na stałe, z zachowaniem metody | Jak 301, gdy POST nie może zmienić się w GET (API, formularze) |
| 302 | Tymczasowo | Promocja, prace techniczne, test A/B — stary adres wróci |
| 307 | Tymczasowo, z zachowaniem metody | Tymczasowe przeniesienie dla API i formularzy. Przeglądarka pokazuje też 307 przy działającym HSTS; taką odpowiedź generuje sama przeglądarka, nie serwer |
| 303 | Zobacz inny adres | Przejście po wysłaniu formularza na stronę „Dziękujemy” |
Popularny mit głosi, że 302 „nie przekazuje mocy”. Google deklaruje, że sygnał z linków przekazują wszystkie przekierowania serwerowe. Różnica dotyczy adresu kanonicznego: 301 i 308 to mocny sygnał, że w indeksie ma zostać nowy adres, a przy 302 Google przez jakiś czas trzyma w wynikach stary. „Tymczasowe” przekierowanie trwające miesiącami w końcu zostanie uznane za stałe, ale to potrwa. Przy przeprowadzkach używaj więc 301 lub 308.
Pętla przekierowań (ERR_TOO_MANY_REDIRECTS): skąd się bierze
Pętla przekierowań to sytuacja, w której adres A prowadzi do B, a B z powrotem do A, czasem przez kilka pośrednich kroków. Przeglądarka przerywa to komunikatem ERR_TOO_MANY_REDIRECTS („Zbyt wiele przekierowań”), a w raporcie zobaczysz ponad 15 przekierowań i status końcowy 3xx. Najczęstsze przyczyny:
- Cloudflare w trybie SSL „Flexible”. Cloudflare łączy się z serwerem po http, serwer przekierowuje na https i tak w kółko. Rozwiązanie: tryb „Full (strict)”.
- Konflikt WordPressa z serwerem. W „Ustawienia → Ogólne” jest adres z www, a nginx usuwa www, więc oba odbijają żądanie do siebie. Adres w WordPressie i reguła serwera muszą się zgadzać.
- Serwer za proxy.
%{HTTPS}w Apache jest zawsze off, bo SSL kończy się na proxy, więc reguła „wymuś https” odpala się bez końca. Sprawdzaj nagłówekX-Forwarded-Proto. - Wtyczki. Dwie wtyczki (SSL i przekierowań) albo wtyczka plus reguła w
.htaccessrobią to samo w przeciwnych kierunkach.
Inne typowe błędy to łańcuch z dwóch reguł (http://www → https://www → https:// bez www), brak ukośnika na końcu (/kategoria → /kategoria/) w linkach wewnętrznych oraz przekierowywanie wszystkich usuniętych stron na stronę główną. Google traktuje to ostatnie jako soft 404.
Sprawdzanie przekierowań przez curl
curl -sIL http://example.com | grep -iE "^HTTP|^location"
Każda para „HTTP/… kod” i „location” to jeden krok. Wszystkie cztery warianty adresu (http/https, z www i bez) powinny trafiać na ten sam adres w najwyżej jednym kroku:
for u in http://example.com http://www.example.com https://example.com https://www.example.com; do
echo "$u -> $(curl -s -o /dev/null -w '%{http_code} %{redirect_url}' "$u")"
done
Narzędzie wysyła własny, desktopowy User-Agent. Przekierowanie dla telefonów (np. na m.example.com) sprawdzisz przez curl z nagłówkiem mobilnym: -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) Mobile/15E148". Listę adresów po migracji sprawdzisz masowo pętlą while read u; do curl -s -o /dev/null -L -w "$u\t%{http_code}\t%{num_redirects}\n" "$u"; done < urls.txt.
Jak ustawić przekierowanie w nginx, Apache i WordPressie
nginx: http i www od razu na https bez www, jednym krokiem:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name www.example.com;
# ssl_certificate ...;
return 301 https://example.com$request_uri;
}
location = /stara-strona/ { return 301 /nowa-strona/; }
Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
Redirect 301 /stara-strona/ https://example.com/nowa-strona/
Gotowe reguły pod swój przypadek zbudujesz w generatorze .htaccess. W WordPressie domenę główną ustawiasz w „Ustawienia → Ogólne” (oba pola adresu), a pojedyncze strony wygodnie przekierowuje wtyczka Redirection, która prowadzi też dziennik błędów 404. Po każdej zmianie sprawdź adres ponownie i upewnij się, że linki wewnętrzne prowadzą prosto do docelowych URL. Linki, które nadal przechodzą przez przekierowanie, znajdzie sprawdzanie niedziałających linków. Teorię łańcuchów i tego, dlaczego przy migracji spada ruch, omawia artykuł jak sprawdzić przekierowania.
Popraw pozycje w wyszukiwarce
Problemy SEO mogą kosztować Cię ruch. Kaskadowy link building poprawi widoczność strony w wyszukiwarce.