Przekierowanie 302, znane również jako 302 Found lub Moved Temporarily, jest jednym z najczęściej używanych kodów statusu HTTP w administrowaniu stronami WWW. Informuje, że zasób został tymczasowo przeniesiony na inny URL, a pierwotna lokalizacja ma wrócić do użytku. W odróżnieniu od przekierowania 301 (trwałe), 302 jasno komunikuje tymczasowość zmiany i powinno być stosowane tylko w takich scenariuszach.

Niniejszy poradnik wyjaśnia mechanizm działania 302, wskazuje sprawdzone metody wdrożenia oraz ostrzega przed błędami, które mogą zaszkodzić SEO i UX.

Fundamentalne pojęcia i definicja przekierowania 302

Przekierowanie 302 to odpowiedź serwera z kodem statusu HTTP 302 oraz nagłówkiem Location, który wskazuje tymczasowy adres docelowy. Przeglądarka automatycznie podąża za adresem z nagłówka Location, przenosząc użytkownika bez konieczności ręcznej interwencji.

Kod 302 pochodzi ze specyfikacji HTTP/1.0 (pierwotnie jako Moved Temporarily), a w HTTP/1.1 został opisany jako 302 Found — jego znaczenie pozostaje praktycznie to samo.

Kluczowa cecha odróżniająca 302 od 301: 302 zakłada powrót do oryginalnego URL, więc wyszukiwarki utrzymują ten adres w indeksie. To ma bezpośrednie konsekwencje dla SEO i przepływu autorytetu linkowego.

Dla właściwego doboru typu przekierowania warto znać różnice między kodami 3xx:

  • 301 Moved Permanently – trwałe przeniesienie zasobu, z wyraźnym sygnałem do wyszukiwarek o zmianie na stałe;
  • 302 Found – tymczasowe przeniesienie zasobu, z zachowaniem indeksowania oryginalnego URL;
  • 303 See Other – przekierowanie po przetworzeniu żądania (np. formularza) zawsze na metodę GET;
  • 307 Temporary Redirect – tymczasowe przekierowanie z gwarancją zachowania oryginalnej metody HTTP (np. POST).

Architektura techniczna i proces działania przekierowania 302

Komunikacja przebiega etapami. Serwer odsyła kod 302 oraz nagłówek Location, a przeglądarka żąda wskazanego adresu docelowego. W przypadku 302 historycznie mogła nastąpić zmiana metody z POST na GET, co bywa problematyczne dla formularzy.

W odpowiedzi 302 kluczowe są następujące elementy:

  • linia statusu, np. HTTP/1.1 302 Found,
  • nagłówek Location ze wskazaniem docelowego URL,
  • opcjonalne nagłówki dodatkowe, np. Content-Type, Content-Length.

Przeglądarki i CDN mogą buforować 302, co bywa korzystne dla wydajności, ale ryzykowne, jeśli przekierowanie miało trwać krótko. Aby ograniczyć cache, dodaj nagłówki kontrolne:

Cache-Control: no-cache, no-store, must-revalidate

Pragma: no-cache

Z perspektywy robotów indeksujących 302 jest interpretowane jako zmiana tymczasowa, więc kontynuują one indeksowanie pierwotnego adresu URL, a nie adresu docelowego.

Metody implementacji przekierowania 302

Wdrożenie 302 zależy od środowiska: serwera WWW, CMS lub poziomu aplikacji. Poniżej najczęściej stosowane podejścia.

Implementacja poprzez plik .htaccess na serwerze Apache

Najprościej użyć dyrektywy Redirect (mod_alias). Aby przekierować pojedynczą stronę, dodaj do pliku .htaccess linię:

Redirect 302 /stara-strona.html /nowa-strona.html

Przekierowanie całej witryny na inną domenę z poziomu katalogu głównego:

Redirect 302 / http://nowastrona.com/

Dla złożonych wzorców użyj mod_rewrite — przykład przekierowania całego katalogu z zachowaniem ścieżek:

RewriteEngine On
RewriteRule ^old-directory/(.*)$ /new-directory/$1 [R=302,L]

Aktywacja silnika reguł (na początku pliku):

RewriteEngine On

Implementacja na serwerze Nginx

Nginx nie używa .htaccess, więc edytuj plik konfiguracyjny serwera (np. /etc/nginx/sites-available/). Przekierowanie pojedynczej ścieżki w bloku location:

server {
listen 80;
server_name example.com;

location /old-page {
return 302 /new-page;
}
}

Przekierowanie domeny z zachowaniem pełnego $request_uri:

server {
listen 80;
server_name old-domain.com;

return 302 https://new-domain.com$request_uri;
}

Wzorzec oparty na wyrażeniu regularnym z użyciem rewrite (skrót 302):

server {
listen 80;
server_name example.com;

rewrite ^/old-directory/(.*)$ /new-directory/$1 redirect;
}

Sprawdzenie poprawności składni:

sudo nginx -t

Przeładowanie konfiguracji po akceptacji testów:

sudo systemctl reload nginx

Implementacja za pomocą PHP

W aplikacjach PHP użyj funkcji header(), pamiętając o wywołaniu exit po wysłaniu nagłówków. Przykład podstawowy:

<?php
header("Location: https://www.example.com/new-page", true, 302);
exit;
?>

Przykład warunkowy (przekierowanie konkretnej ścieżki):

<?php
if ($_SERVER['REQUEST_URI'] === '/old-page') {
header("Location: https://www.example.com/new-page", true, 302);
exit;
}
?>

Implementacja w WordPress

Najprościej skorzystać z wtyczek, np. Redirection lub Advanced 301 and 302 Redirect. Po instalacji dodaj regułę w panelu Tools → Redirects.

Deweloperzy mogą dodać przekierowanie 302 w pliku functions.php (hook template_redirect):

function temporary_redirect() {
if ($_SERVER['REQUEST_URI'] === '/old-page/') {
wp_redirect('https://www.example.com/new-page/', 302);
exit;
}
}
add_action('template_redirect', 'temporary_redirect');

wp_redirect() wysyła odpowiednie nagłówki HTTP i przyjmuje kod statusu jako drugi parametr.

Wpływ przekierowania 302 na pozycjonowanie w wyszukiwarkach

Kluczowe dla SEO jest to, że 302 komunikuje zmianę tymczasową. Wyszukiwarki (np. Google) utrzymują w indeksie oryginalny URL, a autorytet linkowy nie jest standardowo przenoszony na docelowy adres.

To bywa korzystne, gdy faktycznie planujesz powrót do pierwotnej strony. Jeśli jednak zmiana jest trwała, użycie 302 zamiast 301 może zaszkodzić widoczności nowego adresu, bo sygnały rankingowe pozostają przy starym URL.

Długotrwałe utrzymywanie 302 może skłonić wyszukiwarki do zmiany interpretacji (np. traktowania go jak trwałe), co grozi m.in. duplikacją treści lub nieprzewidywalnym przepływem sygnałów.

Eksperci (m.in. Matt Cutts) zalecają: używaj 302 tylko wtedy, gdy coś jest naprawdę tymczasowe, a po ustaleniu trwałości zmiany konwertuj na 301.

Praktyczne przypadki użycia przekierowania 302

Konserwacja i aktualizacje strony

Podczas prac technicznych przekieruj użytkowników na stronę informacyjną o konserwacji. 302 sygnalizuje wyszukiwarkom, że oryginalny URL wróci, więc nie dochodzi do niechcianych zmian w indeksie.

Testy A/B i eksperymenty z użytkownikami

302 pozwala kierować część ruchu do wariantu testowego bez wpływu na indeksowanie. Wersja oryginalna pozostaje podstawowym adresem w indeksie, a wyniki testu nie są zaburzane przez SEO.

Kampanie promocyjne i oferty ograniczone czasowo

Na czas kampanii kieruj ruch na stronę akcji, zachowując oryginalny URL jako główny. Po zakończeniu promocji łatwo wyłączysz przekierowanie.

Przekierowania geolokalizacyjne

Możesz przekierować użytkowników do wersji językowej lub regionalnej. Dla SEO rekomendowane są 302 oraz tagi hreflang jako uzupełnienie, aby jasno sygnalizować dostępność wariantów językowych.

Najczęstsze błędy i problemy z przekierowaniem 302

Niedostrzeganie zamiany metody HTTP

Historycznie 302 mogło zmieniać POST na GET, co skutkuje utratą danych formularzy. Jeśli musisz zachować metodę żądania, użyj 307.

Pętle przekierowań

Gdy A → B i B → A, przeglądarka zwróci ERR_TOO_MANY_REDIRECTS. Unikaj wzajemnych zależności i testuj ścieżki narzędziami typu Screaming Frog.

Długie łańcuchy przekierowań

Wielokrotne przeskoki spowalniają ładowanie i mogą ograniczyć śledzenie przez boty. Kieruj źródło bezpośrednio do ostatecznego celu.

Błędne zastosowanie zamiast kodu 301

Użycie 302 przy trwałej zmianie blokuje przekazanie autorytetu na docelowy URL. Ocenić charakter zmiany i dobrać kod adekwatnie.

Problemy z buforowaniem

Przeglądarki i CDN potrafią cache’ować 302. Aby wymusić świeże żądania, dodaj nagłówki kontroli cache:

Cache-Control: no-cache, no-store, must-revalidate

Pragma: no-cache

Narzędzia do testowania i monitorowania przekierowań 302

Aby szybko sprawdzić statusy i ścieżki przekierowań, skorzystaj z tych rozwiązań:

  • narzędzia online – HTTPStatus.io, Redirect Detective, Redirect Checker;
  • rozszerzenia przeglądarki – Redirect Path (Chrome) do wizualizacji łańcuchów i kodów;
  • Google Search Console – monitorowanie indeksowania, wykrytych problemów i map witryny;
  • narzędzia SEO – Screaming Frog, Lumar (OnCrawl), Semrush do pełnych audytów dużych serwisów.

Rekomendacje najlepszych praktyk

Stosuj poniższe zasady, aby wdrażać 302 bezpiecznie i efektywnie:

  • używaj 302 tylko dla zmian tymczasowych – gdy wiesz, że oryginalny URL wróci;
  • zmień 302 na 301 – jeśli okaże się, że zmiana jest trwała;
  • unikaj pętli i łańcuchów – kieruj bezpośrednio do ostatecznego URL, bez zbędnych przeskoków;
  • chroń metodę HTTP – dla żądań krytycznych (np. POST) rozważ 307 zamiast 302;
  • kontroluj cache – dodawaj Cache-Control i Pragma, by zapobiec niechcianemu buforowaniu;
  • monitoruj wdrożenia – korzystaj z Google Search Console, rozszerzeń i crawlerów SEO;
  • planuj czas wyłączenia – dla testów/kampanii ustaw termin usunięcia lub zmiany przekierowania.