Przekierowanie 302 to kod statusu HTTP oznaczający tymczasowe przeniesienie zasobu na inny adres URL. Informuje wyszukiwarki, że oryginalny adres powinien pozostać w indeksie, co odróżnia je od przekierowania 301, które sygnalizuje stałą zmianę. Stosuje się je w sytuacjach takich jak testy A/B, promocje internetowe czy prace konserwacyjne, aby umożliwić powrót strony do poprzedniego stanu bez utraty pozycji w wynikach wyszukiwania.
Czym jest przekierowanie 302 i jak działa
Przekierowanie 302 to kod statusu HTTP informujący, że dany zasób został tymczasowo przeniesiony pod inny adres. Oficjalnie funkcjonuje jako „302 Found”, choć w praktyce często mówi się o nim po prostu „temporary redirect”. Należy do rodziny kodów 3xx, czyli tych, które odpowiadają za różne typy przekierowań.
Mechanizm działa po stronie serwera i opiera się na standardzie HTTP. Cały proces przebiega w następującej kolejności:
- Klient – najczęściej przeglądarka – wysyła żądanie do serwera.
- Serwer odpowiada kodem 302 oraz nagłówkiem „Location” z nowym adresem URL.
- Przeglądarka automatycznie kieruje kolejne żądanie pod adres wskazany w nagłówku „Location”.
Warto pamiętać, że przy przekierowaniu 302 przeglądarki często zmieniają metodę żądania z POST na GET. Jeśli zależy nam na zachowaniu pierwotnej metody, rozwiązaniem jest kod 307 – nowszy odpowiednik, który gwarantuje utrzymanie oryginalnego typu żądania, na przykład POST.
Kiedy stosować przekierowanie 302 zamiast 301
Skoro 302 oznacza przekierowanie tymczasowe, naturalnie pojawia się pytanie, kiedy wybrać je zamiast 301. Zasada jest prosta. Kod 302 stosujemy wtedy, gdy adres ma wrócić do pierwotnej postaci, natomiast 301 służy do trwałego przeniesienia URL i definitywnej zmiany jego lokalizacji.
Różnica dotyczy nie tylko czasu trwania przekierowania, ale też wpływu na SEO. Przekierowanie 302 nie przenosi siły rankingowej (Link Equity) na nowy adres, chroniąc pozycję oryginalnego URL, jest stosowane do czasowych przeniesień. Z kolei przekierowanie 301 przenosi większość siły rankingowej na nowy adres, stosowane jest do stałych przeniesień.
Przekierowanie 302 sprawdza się zwłaszcza w sytuacjach takich jak:
- testy A/B,
- tymczasowe promocje internetowe,
- prace konserwacyjne na stronie,
- testowanie nowego layoutu witryny.
Warto też pamiętać o kwestii buforowania. Kod 302 jest słabiej cache’owany przez przeglądarki niż 301, dzięki czemu łatwiej go cofnąć bez zmuszania użytkowników do czyszczenia pamięci podręcznej. Przy zmianach, które mają obowiązywać tylko przez określony czas, to po prostu wygodniejsze rozwiązanie.
Jak ustawić przekierowanie 302 w .htaccess, Nginx i PHP
Skoro wiemy już, kiedy stosować kod 302, pozostaje kwestia techniczna – jak go poprawnie ustawić. Sposób zależy od środowiska, w którym działa serwer. Inaczej zrobimy to w Apache, inaczej w Nginx, a jeszcze inaczej bezpośrednio w PHP.
Najczęstsze scenariusze konfiguracji wyglądają następująco:
- na serwerze Apache przekierowanie 302 ustawia się w pliku .htaccess z użyciem modułu mod_alias i dyrektywy Redirect 302 lub alternatywnie modułu mod_rewrite z dyrektywą RewriteRule i flagą R=302,
- na serwerze Nginx przekierowanie definiuje się w plikach konfiguracyjnych przy pomocy dyrektywy return 302 w bloku server lub location,
- w PHP przekierowanie realizuje się funkcją header(), która wysyła surowy nagłówek HTTP Location, a następnie wywołuje się exit(), aby zakończyć wykonywanie skryptu.
W przypadku PHP warto pamiętać, że funkcja header() pozwala także budować przekierowania dynamiczne, na przykład w oparciu o zmienne takie jak $_SERVER['REQUEST_URI']. Trzeba jednak liczyć się z tym, że obsługa przekierowania na poziomie skryptu może generować większe obciążenie serwera niż rozwiązania skonfigurowane bezpośrednio w Apache czy Nginx.
Wpływ przekierowania 302 na SEO i indeksację w Google
Wpływ przekierowania 302 na SEO wynika wprost z jego definicji. Kod ten informuje wyszukiwarki, że zmiana adresu URL ma charakter tymczasowy, a oryginalny adres powinien pozostać w indeksie Google. Z założenia 302 nie przenosi wartości linkowej – Link Equity czy PageRank – na nowy URL, ponieważ jego rolą nie jest trwała zmiana lokalizacji.
Taka konstrukcja niesie konkretne konsekwencje:
- oryginalny adres URL pozostaje w indeksie Google,
- nowy adres nie otrzymuje pełnej wartości linkowej,
- sygnał kanoniczny dla nowego URL jest słaby.
Problem pojawia się wtedy, gdy rozwiązanie tymczasowe zaczyna funkcjonować miesiącami. Długotrwałe stosowanie 302 może sprawić, że Google potraktuje je jak przekierowanie 301, czyli stałe. Jeśli dodatkowo kod zostanie użyty niezgodnie z przeznaczeniem, w wynikach wyszukiwania może zostać zaindeksowana tymczasowa wersja strony, co bywa powodem wahań pozycji i spadków ruchu.
Jest też druga strona medalu. Strony objęte przekierowaniem 302 mogą być częściej odwiedzane przez roboty Google, które regularnie sprawdzają, czy zmiana nadal obowiązuje. To z kolei sprzyja szybszemu wychwytywaniu aktualizacji, choć nie zmienia faktu, że w przypadku trwałej migracji adresu bezpieczniejszym wyborem pozostaje 301.