Przekierowania 301 i 302: różnice i wpływ na SEO
Przekierowanie HTTP to nie tylko sprawa techniczna. Zły wybór między 301 a 302 może kosztować pozycje w Google. Sprawdź, kiedy używać którego kodu i jak analizować łańcuchy przekierowań.
Spis treści
Przekierowania HTTP są na tyle powszechne, że łatwo je traktować jako detal. Ale błędne użycie 301 zamiast 302 (lub odwrotnie) może zabrać stronie link juice i pozycje w Google. Warto wiedzieć, czym się różnią i kiedy używać którego.
Co to jest przekierowanie HTTP?
Przekierowanie HTTP to odpowiedź serwera, która informuje przeglądarkę (i robota Google): “Ten zasób jest teraz dostępny pod innym adresem URL”. Przeglądarka automatycznie pobiera stronę z nowego adresu.
Przekierowania dzielą się na trwałe i tymczasowe. Ta różnica jest kluczowa z perspektywy SEO.
Kod 301: stałe przeniesienie
Przekierowanie 301 (Moved Permanently) mówi: “Ta strona trwale przeniosła się pod nowy adres. Zaktualizuj swoje zakładki i linki”.
Co to oznacza dla Google:
- Google usuwa stary URL z indeksu i zastępuje go nowym
- “moc linków” (link equity, PageRank) z linków zewnętrznych wskazujących na stary URL jest przekazywana do nowego
- Googlebot aktualizuje swoją mapę witryny
Kiedy użyć 301?
- Migracja domeny (stara-domena.pl przechodzi na nowa-domena.pl)
- Wymuś HTTPS:
http://example.comprzekierowuje nahttps://example.com - Wybór kanonicznej wersji domeny:
www.example.comprzekierowuje naexample.com(lub odwrotnie) - Usunięcie strony, której treść przeniosłeś na inną podstronę
- Zmiana struktury URL (np.
/produkt/nazwazmienia się na/sklep/kategoria/nazwa)
Kod 302: tymczasowe przeniesienie
Przekierowanie 302 (Found) mówi: “Ten zasób jest chwilowo dostępny pod innym adresem, ale wróci tutaj”.
Co to oznacza dla Google:
- Google zachowuje stary URL w indeksie (nie zastępuje go nowym)
- Link equity nie jest przekazywana do nowego URL (lub jest przekazywana częściowo, zależy od interpretacji Google)
- Googlebot nadal regularnie sprawdza stary URL
Kiedy użyć 302?
- A/B testy: chcesz czasowo przenieść ruch na wariant B
- Geolokalizacja: użytkownik z Polski jest tymczasowo przekierowywany na wersję polskojęzyczną
- Maintenance: strona jest chwilowo niedostępna, użytkownik trafia na page “będziemy z powrotem wkrótce”
- Testowanie nowego layoutu bez wpływu na SEO starego URL
Kod 307 i 308: HTTP method-safe redirects
Kody 307 (Temporary Redirect) i 308 (Permanent Redirect) działają podobnie do 302 i 301, ale z jedną różnicą: zachowują metodę HTTP żądania.
Praktycznie: jeśli formularz wysyła POST na stary URL, przekierowanie 302 sprawi, że przeglądarka wykona GET na nowy URL (tak działa większość przeglądarek). Przekierowanie 307 zachowuje POST.
W kontekście SEO 308 jest funkcjonalnym odpowiednikiem 301 dla aplikacji, które obsługują metody inne niż GET.
Łańcuchy przekierowań i pętle
Łańcuch
Łańcuch przekierowań to sytuacja, gdy A przekierowuje na B, B na C, C na D. Każdy dodatkowy hop:
- wydłuża czas ładowania strony
- osłabia przekazywanie link equity (chociaż Google twierdzi, że śledzi łańcuchy, wartość maleje z każdym skokiem)
- może prowadzić do przekroczenia limitu przekierowań przez Googlebota
Zalecenie: maksymalnie 2 hopy. Jeśli masz więcej, zaktualizuj konfigurację, żeby A wskazywało bezpośrednio na D.
Pętla
Pętla to sytuacja, gdy A przekierowuje na B, a B na A. Przeglądarka wykryje ją po kilku skokach i wyświetli błąd “ERR_TOO_MANY_REDIRECTS”. Googlebot też nie zaindeksuje takich stron.
Pętle najczęściej pojawiają się po błędnej konfiguracji HTTPS (np. reguła .htaccess wymusza HTTPS, ale certyfikat nie jest skonfigurowany na serwerze i to powoduje kolejne przekierowanie).
Jak sprawdzić łańcuch przekierowań?
Możesz to zrobić manualnie poleceniem curl:
curl -I -L "https://example.com/stara-strona"
Flaga -I pobiera tylko nagłówki, -L podąża za przekierowaniami. W odpowiedzi zobaczysz każdy skok z kodem statusu i nowym adresem.
Szybsza opcja bez terminala: Redirect Checker w RankVoyager pokazuje pełny łańcuch przekierowań z kodami statusu, czasem TTFB każdego skoku i adresem finalnym. Działa bez rejestracji.
Przekierowania a HTTP/2 i HTTP/3
W HTTP/2 i HTTP/3 serwer może zepchnąć zasoby do klienta (server push) zanim klient je zażąda. Przekierowania są jednak nadal obsługiwane tak samo jak w HTTP/1.1: serwer zwraca nagłówek Location z nowym adresem.
Jedyną różnicą jest overhead: jedno przekierowanie HTTP/3 jest szybsze niż HTTP/1.1 ze względu na brak handshake przy pierwszym połączeniu. Ale to nie zmienia faktu, że każdy dodatkowy skok wydłuża czas ładowania.
Debugowanie problemów z przekierowaniami
Najczęstsze problemy, z którymi trafiają do mnie klienci:
Niespójne przekierowanie www/non-www: example.com działa, ale www.example.com albo nie przekierowuje, albo przekierowuje przez kilka skoków. Efekt: dwa odrębne URL-e w oczach Google, ryzyko duplikacji treści.
HTTP nie przekierowuje na HTTPS: strona jest dostępna zarówno po HTTP jak i HTTPS, bez przekierowania. Google widzi dwa zestawy URL-i z identyczną treścią.
Przekierowanie na URL z trailing slash: example.com/strona przekierowuje na example.com/strona/ (lub odwrotnie). To jeden skok, ale jeśli linki zewnętrzne wskazują na wersję bez slash i musisz je “przepuścić” przez redirect, tracisz trochę link equity.
Do szybkiego audytu całej listy URL-i używaj Redirect Checkera. Wklej adres i od razu zobaczysz, gdzie jest problem.
Zespół RankVoyager
Monitoring SEO i dostępności stron internetowych
Przetestuj RankVoyager za darmo
Dodaj swoją stronę i w kilka minut sprawdź, co działa, a co wymaga poprawy.