Strona główna / Baza wiedzy / Narzędzia i integracje / Jak sprawdzić przekierowania i łańcuchy przekierowań

Jak sprawdzić przekierowania i łańcuchy przekierowań

Narzędzia i integracje 5 min czytania Zaktualizowano 12.10.2026
Jakie kody przekierowań co oznaczają, czym grożą długie łańcuchy i pętle, na co zwracać uwagę w raporcie sprawdzania i dlaczego utrata 301 podczas przeprowadzki to częsta przyczyna spadku ruchu.

Przekierowanie (redirect) odsyła użytkownika lub robota z jednego adresu na inny. Aby poprawnie sprawdzić przekierowania, potrzebujesz trzech rzeczy: kodu odpowiedzi każdego kroku, liczby kroków w łańcuchu oraz adresu końcowego z jego własnym statusem. Poniżej trzy sposoby sprawdzenia przekierowań w witrynie — online, przez curl i w przeglądarce — czym różnią się kody 301, 302, 307 i 308 oraz jak naprawić łańcuchy i pętle w nginx, Apache i WordPressie.

Jak sprawdzić przekierowania online

Najszybciej zrobisz to w darmowym narzędziu do sprawdzania przekierowań. Wysyła ono żądanie pod adres URL, samo podąża za każdym nagłówkiem Location (do 15 kroków) i pokazuje całą ścieżkę.

  1. Wklej pełny adres razem ze schematem: http://example.com i https://example.com często zachowują się inaczej, więc sprawdź oba.
  2. Przeczytaj podsumowanie: liczbę przekierowań, status końcowy, łączny czas i to, czy łańcuch kończy się na tej samej czy innej domenie.
  3. Przejdź łańcuch krok po kroku. Każdy krok pokazuje swój URL i kod: 301 lub 308 jest oznaczony jako stały, 302 lub 307 jako tymczasowy.
  4. Sprawdź rekomendacje pod łańcuchem. Narzędzie oznacza łańcuchy dłuższe niż jeden krok, przekierowania tymczasowe, które być może powinny być 301, przekierowania na inną domenę oraz potwierdza poprawne przekierowanie HTTP → HTTPS.

Pamiętaj o dwóch ograniczeniach: narzędzie śledzi tylko serwerowe przekierowania HTTP (nie meta refresh ani JavaScript, patrz niżej) i wysyła żądanie z własnym user agentem, więc przekierowania zależne od kraju, urządzenia czy ciasteczek odwiedzającego mogą u realnych użytkowników wyglądać inaczej.

Jak sprawdzić przekierowanie 301 przez curl

W terminalu curl pokazuje surowe nagłówki odpowiedzi bez pamięci podręcznej przeglądarki:

curl -sIL http://example.com/old-page \
  | grep -iE "^HTTP|^location"

-I pobiera tylko nagłówki, -L podąża za przekierowaniami, a grep zostawia jedynie wiersze statusu i adresy docelowe. Czysty wynik wygląda tak:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page/
HTTP/2 200

Niektóre serwery odpowiadają na żądania HEAD inaczej niż na zwykłe. Jeśli wynik wygląda dziwnie, powtórz z prawdziwym żądaniem GET: curl -sL -o /dev/null -D - URL.

Sprawdzanie przekierowań w Chrome DevTools

  1. Otwórz DevTools (F12) → Network.
  2. Zaznacz Preserve log (inaczej kroki przekierowania znikną przy zmianie strony) oraz Disable cache.
  3. Załaduj stary URL. Każdy krok pojawi się jako osobny wiersz ze swoim statusem; nagłówek Location znajdziesz w nagłówkach odpowiedzi.

Przeglądarki agresywnie zapamiętują odpowiedzi 301. Jeśli zmieniłeś przekierowanie, a przeglądarka wciąż podąża za starym, sprawdź w oknie prywatnym lub przez curl, zanim uznasz, że winny jest serwer.

301, 302, 307 i 308: różnice

KodTypMetoda żądaniaJak traktuje go GoogleKiedy używać
301StałeMoże zmienić POST na GETSilny sygnał, że adres docelowy staje się kanonicznyZmienione adresy URL, HTTPS, www/bez www, przeprowadzka domeny
308StałeZachowanaTak samo jak 301Stałe przeniesienia formularzy i API
302TymczasoweMoże zmienić POST na GETSłaby sygnał; źródło zwykle zostaje w indeksieKrótkie promocje, testy A/B, prace techniczne
307TymczasoweZachowanaTak samo jak 302Tymczasowe przeniesienia, gdzie metoda ma znaczenie
Meta refresh / JSNa poziomie strony—Natychmiastowy meta refresh jest odczytywany jako stały; JS dopiero po renderowaniuTylko gdy przekierowania serwerowe są niemożliwe

Kod 307 może też pojawić się w DevTools, choć Twój serwer go nie wysłał: to wewnętrzne przekierowanie przeglądarki na HTTPS dla witryn z listy HSTS. curl i narzędzie online pokażą zamiast tego rzeczywistą odpowiedź serwera.

Łańcuchy i pętle przekierowań

Łańcuch to kilka przekierowań z rzędu: http://example.com/page → https://example.com/page → https://www.example.com/page → https://www.example.com/page/. Każdy krok to dodatkowa wymiana z serwerem dla użytkownika. Googlebot podąża za maksymalnie 10 przeskokami, ale Google zaleca krótkie łańcuchy, a każdy dodatkowy krok to kolejne miejsce, w którym coś może się zepsuć przy następnej migracji. Dąż do jednego przekierowania z dowolnego starego adresu na końcowy.

Pętla to łańcuch, który wraca do odwiedzonego już adresu, więc nigdy się nie kończy. Przeglądarki pokazują ERR_TOO_MANY_REDIRECTS, a strony nie da się zaindeksować. W narzędziu pętla wygląda jak łańcuch, który dochodzi do limitu 15 kroków z powtarzającymi się adresami. Typowe przyczyny: przekierowanie na HTTPS na serwerze plus ustawienie „Flexible SSL” w CDN albo sprzeczne reguły www w dwóch miejscach (konfiguracja serwera i CMS).

Jak sprawdzić przekierowania w całej witrynie

Pojedyncze adresy wystarczą do wyrywkowej kontroli. Aby znaleźć wszystkie łańcuchy w witrynie, potrzebujesz crawlera, który przechodzi po linkach wewnętrznych i zapisuje każde przekierowanie. Robi to SEO Audit: zgłasza łańcuchy i pętle przekierowań jako osobne problemy obok niedziałających linków, więc widać, które linki wewnętrzne wciąż prowadzą na stare adresy.

Jak naprawić przekierowania

nginx

Połącz schemat i host w jeden krok zamiast dwóch:

server {
  listen 80;
  server_name example.com www.example.com;
  return 301 https://example.com$request_uri;
}
server {
  listen 443 ssl;
  server_name example.com;
  location = /old-page/ {
    return 301 /new-page/;
  }
}

Dodaj osobny blok listen 443 dla www.example.com, który również zwraca 301 na https://example.com$request_uri. Po edycji uruchom nginx -t i przeładuj konfigurację.

Apache (.htaccess)

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

Redirect 301 /old-page/ https://example.com/new-page/

Generator .htaccess zbuduje takie reguły bez literówek.

WordPress

  • Upewnij się, że w Ustawienia → Ogólne oba pola adresu zawierają końcowy URL (https i właściwy wariant www); niezgodność z regułą serwera to klasyczna przyczyna pętli.
  • Dla pojedynczych stron użyj wtyczki do przekierowań (np. Redirection) lub menedżera przekierowań we wtyczce SEO i nie ustawiaj tego samego przekierowania jednocześnie we wtyczce i w konfiguracji serwera.
  • Po zmianie struktury bezpośrednich odnośników sprawdź kilka starych adresów: WordPress sam odgaduje część starych slugów, ale nie wszystkie.

Niezależnie od serwera zaktualizuj linki wewnętrzne, tagi canonical i mapę witryny tak, by prowadziły od razu na końcowe adresy — wtedy przekierowania będą potrzebne tylko dla linków zewnętrznych i starych zakładek.

Najkosztowniejszy błąd przy migracji
Stare adresy zwracające 404 zamiast 301 na nowe to częsta przyczyna gwałtownego spadku ruchu po zmianie wyglądu witryny — moc linków starych stron po prostu przepada. Jeśli ruch spadł po migracji, zacznij od artykułu „Spadł ruch z Google”.

Dlaczego to ważne dla promocji linkami

Linki prowadzą na konkretny adres. Przy stałym przekierowaniu ich wartość nadal trafia na stronę końcową, ale lepiej promować bezpośrednio adres końcowy. Jeśli promowana strona zmieniła adres po uruchomieniu, ustaw 301 ze starego adresu — publikacji nie trzeba robić od nowa, zobacz „Czy można usunąć lub zmienić publikację”.

Częste pytania

Jak sprawdzić, czy przekierowanie 301 działa?
Sprawdź adres w narzędziu do przekierowań albo przez curl -sIL: pierwsza odpowiedź powinna mieć kod 301 z nagłówkiem Location, a łańcuch powinien kończyć się kodem 200 pod oczekiwanym adresem.
Ile przekierowań z rzędu jest dopuszczalne?
Najlepiej jedno. Googlebot podąża za maksymalnie 10 przeskokami, ale każdy dodatkowy krok spowalnia ładowanie i dodaje punkt awarii, więc skracaj łańcuchy do jednego przekierowania.
Czym różni się przekierowanie 301 od 302?
301 jest stałe: Google przenosi sygnały na adres docelowy. 302 jest tymczasowe: stary URL zwykle zostaje w indeksie. Przy migracjach używaj 301 lub 308.
Dlaczego przeglądarka wciąż podąża za starym przekierowaniem?
Przeglądarki zapamiętują odpowiedzi 301. Sprawdź w oknie prywatnym, z wyłączoną pamięcią podręczną w DevTools albo przez curl.
Czy narzędzie online widzi przekierowania meta refresh i JavaScript?
Nie, śledzi tylko serwerowe przekierowania HTTP. Przekierowania na poziomie strony trzeba sprawdzić w przeglądarce lub w kodzie źródłowym strony.
Czy artykuł był pomocny?
Wypróbuj na swoim projekcie Wszystko, co opisano w artykule, jest dostępne w panelu — bonus przy rejestracji już na saldzie.
Open dashboard