Czym jest przekierowanie 301?
Przekierowanie 301, znane też jako redirect 301 lub Moved Permanently, to kod statusu HTTP informujący przeglądarkę i roboty wyszukiwarek, że dany zasób został trwale przeniesiony pod nowy adres URL. Zdefiniowany jest w RFC 9110 (specyfikacja HTTP Semantics, aktualizacja wcześniejszego RFC 7231) – jest to jeden z kodów z grupy 3xx odpowiedzialnych za przekierowania.
Gdy serwer odpowiada kodem 301, w nagłówku HTTP dołącza też pole Location wskazujące docelowy adres. Przeglądarka automatycznie wysyła nowe żądanie pod ten adres – użytkownik nie musi robić nic ręcznie. Co ważne: przeglądarka cachuje wynik przekierowania 301, więc przy kolejnych wizytach przechodzi bezpośrednio na nowy URL bez odpytywania starego serwera. Google i inne wyszukiwarki rozumieją ten sygnał jako polecenie: "stary URL nie istnieje – zamiast niego indeksuj i rankuj nowy".
HTTP/1.1 301 Moved Permanently
Location: https://twojadomena.pl/nowy-adres/
Cache-Control: max-age=31536000
Jak 301 wpływa na SEO i link equity?
Przez lata w środowisku SEO panowało przekonanie, że przekierowanie 301 "pochłania" część link juice (mocy PageRank) – szacunki mówiły o utracie 10–15%. Google oficjalnie zaktualizowało swoje stanowisko w 2016 roku: Gary Illyes z Google potwierdził na konferencji SMX West, że 301 przekazuje pełny PageRank na nowy adres – tak samo jak zwykły link dofollow. John Mueller wielokrotnie potwierdzał to stanowisko w Google Search Central Help Forum. Wcześniejsze straty były związane ze starszym algorytmem sprzed 2013 roku i nie są już aktualne.
Co przekazuje 301
Przekierowanie 301 przenosi na nowy URL: PageRank (moc linków zewnętrznych), historię indeksowania, sygnały rankingowe oraz – po pewnym czasie – pozycje w wynikach wyszukiwania. Google konsoliduje te sygnały na docelowym adresie.
Czas akceptacji przez Google
Google potrzebuje typowo kilku tygodni do kilku miesięcy na pełne przetworzenie przekierowania 301 i przeniesienie sygnałów rankingowych. Duże migracje domen mogą wymagać nawet 6–12 miesięcy zanim nowy adres osiągnie pozycje poprzednika.
Kiedy stosować przekierowanie 301?
Redirect 301 to narzędzie do trwałych zmian URL. Stosuj go zawsze, gdy stara wersja adresu nie powinna już istnieć:
HTTP → HTTPS
Przekierowanie całej witryny z niezabezpieczonego HTTP na HTTPS to jeden z najważniejszych redirectów 301. Google od 2014 roku traktuje HTTPS jako sygnał rankingowy, a Chrome oznacza strony HTTP jako "Niezabezpieczone".
Migracja domeny
Zmiana domeny z stara-domena.pl na nowa-domena.pl wymaga przekierowania 301 każdego adresu URL ze starej domeny na odpowiadający mu adres w nowej. Bez tego tracisz cały dorobek SEO.
Ujednolicenie www / bez www
Strona powinna być dostępna wyłącznie pod jedną wersją – albo www.domena.pl, albo domena.pl. Drugą wersję należy przekierować 301 na preferowaną. Bez tego Google może traktować je jako oddzielne domeny.
Zmiana struktury URL
Przebudowa serwisu, zmiana kategorii, przepisanie slugów – każdy adres, który zmienił postać, wymaga przekierowania 301 ze starego URL-a na nowy. Inaczej wszystkie linki zewnętrzne i zakładki użytkowników przestają działać.
Usunięta strona z alternatywą
Gdy usuwasz stronę (produkt, artykuł, kategorię), ale istnieje sensowna alternatywa – przekieruj 301 na najbliższy tematycznie adres. Unikaj przekierowywania wszystkiego na stronę główną.
Skroty i czytelne URL-e
Skrócone adresy do kampanii, linki drukowane (domena.pl/promo) – 301 kieruje na pełny URL docelowy. Przydatne w marketingu offline i przy udostępnianiu w social mediach.
Porównanie: 301 vs 302 vs 307 vs 308
Kody 3xx mogą dezorientować – oto kluczowe różnice z perspektywy SEO i działania technicznego:
301 – Moved Permanently
Trwałe przekierowanie. Przekazuje pełny PageRank. Przeglądarka zapamiętuje przekierowanie w cache. Google stopniowo zastępuje stary URL nowym w indeksie. Wybór domyślny przy każdej trwałej zmianie adresu.
302 – Found (Moved Temporarily)
Tymczasowe przekierowanie. Google zachowuje stary URL w indeksie i nie przenosi w pełni PageRank na nowy adres. Stosuj tylko gdy zmiana jest naprawdę tymczasowa (np. strona w remoncie, A/B test).
307 – Temporary Redirect
Tymczasowe przekierowanie z HTTP/1.1 – w odróżnieniu od 302 zachowuje metodę HTTP (POST pozostaje POST). Używany przy testach i tymczasowych przenosinach, gdy formularz musi działać poprawnie.
308 – Permanent Redirect
Trwały odpowiednik 307 – zachowuje metodę HTTP. Nowszy niż 301, rzadziej stosowany w praktyce SEO. Obsługa przez starsze przeglądarki może być nierówna. 301 jest bezpieczniejszym wyborem.
Przekierowanie 301 a tag canonical – co wybrać?
Przekierowanie 301
Twarda reguła – zarówno użytkownik, jak i Googlebot są automatycznie przenoszeni na nowy adres. Stary URL przestaje być dostępny. Bardziej pewne i skuteczne od canonical przy konsolidacji domen i eliminacji duplikatów. Stosuj gdy możesz modyfikować serwer.
Tag canonical
Wskazówka dla wyszukiwarek – oba adresy nadal działają, użytkownik nie jest przenoszony. Google może zignorować canonical, jeśli inne sygnały są sprzeczne. Stosuj gdy chcesz zachować dostępność obu wersji URL lub gdy nie masz dostępu do konfiguracji serwera.
Jeśli masz wybór – 301 jest pewniejszy. Canonical to wskazówka, redirect to nakaz.
Łańcuchy przekierowań – czego unikać
Łańcuch przekierowań (redirect chain) to sytuacja, gdy URL A przekierowuje na URL B, który przekierowuje na URL C itd. Każde ogniwo łańcucha:
- Wydłuża czas ładowania strony (każde przekierowanie to dodatkowe żądanie HTTP)
- Zwiększa ryzyko utraty części PageRank w starszych implementacjach
- Obciąża crawl budget – Googlebot musi wykonać więcej żądań
- Może powodować błędy w przeglądarkach przy zbyt długich łańcuchach
Najlepsza praktyka: Googlebot (wg badań Moz i Ahrefs) podąża za maksymalnie 5 przekierowaniami w łańcuchu – po tym limicie może przestać crawlować. W praktyce ogranicz się do 1–2 ogniw. Idealnie – bezpośrednie przekierowanie z każdego starego URL-a prosto na docelowy. Po migracji domeny zaktualizuj linki wewnętrzne tak, by wskazywały bezpośrednio na nowe adresy bez przechodzenia przez pośrednie przekierowania.
stara-domena.pl → http://nowa-domena.pl → https://nowa-domena.pl → https://www.nowa-domena.pl/
Poprawne rozwiązanie – jedno bezpośrednie przekierowanie:
stara-domena.pl → https://www.nowa-domena.pl/
Jak wdrożyć przekierowanie 301?
Metoda implementacji zależy od technologii serwera lub aplikacji:
Apache – plik .htaccess
# Przekierowanie jednej strony
Redirect 301 /stary-adres/ https://twojadomena.pl/nowy-adres/
# Przekierowanie całej domeny (HTTP → HTTPS)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://twojadomena.pl/$1 [R=301,L]
# Przekierowanie www → bez www
RewriteCond %{HTTP_HOST} ^www\.twojadomena\.pl$ [NC]
RewriteRule ^(.*)$ https://twojadomena.pl/$1 [R=301,L]
Nginx – konfiguracja serwera
# Przekierowanie HTTP → HTTPS
server {
listen 80;
server_name twojadomena.pl www.twojadomena.pl;
return 301 https://twojadomena.pl;
}
# Przekierowanie konkretnego URL
location = /stary-adres/ {
return 301 https://twojadomena.pl/nowy-adres/;
}
PHP – nagłówek HTTP
<?php
// Przekierowanie 301 przez PHP
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://twojadomena.pl/nowy-adres/');
exit;
Najczęstsze błędy przy przekierowaniach 301
- Przekierowanie wszystkiego na stronę główną – tzw. "soft 404". Gdy usuwasz stronę o produkcie i kierujesz na homepage, Google wykrywa ten wzorzec i może zignorować przekierowanie. Kieruj na najbliższy tematycznie adres.
- Użycie 302 zamiast 301 – jeden z najczęstszych błędów. Przy trwałej zmianie adresu 302 powoduje, że Google zachowuje stary URL w indeksie i nie przenosi w pełni sygnałów rankingowych.
- Pętle przekierowań – URL A → URL B → URL A. Przeglądarka wyświetla błąd "Strona przekierowuje za dużo razy". Sprawdzaj przekierowania narzędziami (np. Screaming Frog) przed wdrożeniem.
- Brak przekierowania przy migracji HTTPS – pozostawienie starego HTTP bez przekierowania dzieli moc SEO między dwie wersje strony.
- Przekierowanie do błędnej strony – mapowanie starych URL-i na nowe powinno zachować tematyczną zgodność. Przekierowanie strony o butach na stronę o koszulach to błąd, który Google może odczytać jako manipulację.
- Niespójne trailing slash –
/stronai/strona/to dla serwera dwa różne adresy. Jedna wersja powinna być kanoniczna, druga przekierowywana 301.