Gdy strona ma być dostępna pod innym adresem tylko przez chwilę, stałe przekierowanie może narobić więcej szkody niż pożytku. Przekierowanie 302 służy właśnie do tymczasowego kierowania użytkowników i robotów na inną lokalizację, bez jasnego sygnału, że pierwotny adres zniknął na zawsze. Wyjaśniam, jak działa kod 302, kiedy go stosować, czym różni się od 301 i 307 oraz jak sprawdzić, czy został wdrożony poprawnie.
Kod 302 jest właściwy wtedy, gdy zmiana adresu ma być tymczasowa
- Tymczasowość to najważniejsza zasada użycia przekierowania 302.
- Serwer informuje przeglądarkę o nowym adresie w nagłówku Location.
- W SEO kod 302 nie przekazuje tak wyraźnego sygnału kanoniczności jak 301 lub 308.
- Do przekierowań wymagających zachowania metody żądania lepszy może być 307.
- Po wdrożeniu trzeba sprawdzić łańcuchy, pętle i właściwy kod odpowiedzi.

Co naprawdę oznacza kod 302
Odpowiedź HTTP 302 nosi oficjalną nazwę Found, czyli „znaleziono”. W praktyce oznacza, że żądany zasób jest chwilowo dostępny pod innym adresem wskazanym w nagłówku Location. Przeglądarka odczytuje tę informację i wysyła kolejne żądanie do nowej lokalizacji.
Dla użytkownika cały proces zwykle trwa ułamek sekundy. Wpisuje stary adres, serwer odpowiada kodem 302, a przeglądarka ładuje stronę docelową. Istotne jest jednak to, że pierwotny adres nadal pozostaje ważny, dlatego nie powinien być automatycznie traktowany jak trwale usunięty.
Warto rozróżnić kod odpowiedzi od samej funkcji przekierowania. 302 nie jest błędem strony ani komunikatem o awarii. To instrukcja dla klienta HTTP, że w danym momencie powinien sprawdzić inną lokalizację.
Jak wygląda przebieg żądania
- Przeglądarka wysyła żądanie do pierwotnego adresu.
- Serwer odpowiada kodem 302 i podaje nową ścieżkę w nagłówku Location.
- Przeglądarka wykonuje kolejne żądanie.
- Użytkownik widzi stronę pod adresem docelowym.
Jeżeli pierwszy adres przekierowuje do drugiego, a drugi do trzeciego, powstaje łańcuch przekierowań. Sam kod może działać poprawnie, ale każde dodatkowe żądanie zwiększa czas ładowania i utrudnia diagnostykę.
Kiedy tymczasowe przekierowanie ma sens
Najprostsza reguła brzmi tak: używam 302 wtedy, gdy zakładam, że za jakiś czas użytkownik powinien wrócić pod pierwotny adres. Nie chodzi o konkretny limit dni. Przekierowanie może trwać kilka minut podczas wdrożenia albo kilka tygodni w czasie kampanii, o ile jego tymczasowy charakter jest rzeczywisty.
Testy A/B i eksperymenty treści
Przy testowaniu dwóch wersji landing page można czasowo kierować część ruchu na wariant eksperymentalny. Dzięki temu oryginalny adres zachowuje swoją rolę, a test nie wysyła wyszukiwarkom sygnału, że nowa wersja zastąpiła go na stałe.
Trzeba jednak kontrolować czas eksperymentu i sposób przydzielania użytkowników. Losowe przekierowanie przy każdym żądaniu może utrudnić analizę danych, a robot może trafić na różne wersje strony podczas kolejnych wizyt.
Awaria albo chwilowa niedostępność usługi
Sklep może tymczasowo przekierować stronę produktu na kategorię, formularz zamówienia albo komunikat o przerwie technicznej. To rozsądne rozwiązanie, gdy produkt lub funkcja ma wrócić pod tym samym adresem. Przy długiej awarii lepiej zadbać o czytelny komunikat, bo samo przeniesienie użytkownika na ogólną stronę często nie odpowiada na jego potrzebę.
Kampanie i krótkotrwałe akcje
Promocyjna wersja strony może działać pod inną ścieżką przez czas trwania kampanii, po czym ruch wróci do adresu podstawowego. W takim scenariuszu 302 jest logiczne, ale trzeba pamiętać o spójnych linkach wewnętrznych. Nie ma sensu kierować użytkowników przez przekierowanie, jeśli wszystkie odnośniki na stronie można od razu wskazać na aktualny adres.
Sam używam kodu 302 ostrożnie przy zmianach marketingowych. Jeżeli kampania trwa kilka miesięcy i nie ma planu powrotu do starej struktury, tymczasowość może być tylko pozorna. Wtedy lepszym wyborem bywa przekierowanie stałe.
302, 301, 307 i 303 nie znaczą tego samego
Najczęstszy błąd polega na wybieraniu kodu wyłącznie po tym, czy użytkownik „ma trafić na inną stronę”. Ważniejsza jest odpowiedź na dwa pytania: czy zmiana jest stała oraz czy trzeba zachować metodę żądania, na przykład POST używany przy wysyłaniu formularza.
| Kod | Charakter zmiany | Typowe zastosowanie | Najważniejsze zastrzeżenie |
|---|---|---|---|
| 301 | Stała | Zmiana adresu strony lub migracja domeny | Nie używać, jeśli planowany jest szybki powrót |
| 302 | Tymczasowa | Test, kampania, chwilowa niedostępność | Nie daje tak mocnego sygnału, że nowy adres zastępuje stary |
| 307 | Tymczasowa | Przekierowanie wymagające zachowania metody żądania | Wymaga większej uwagi przy formularzach i żądaniach API |
| 303 | Przejście do innego zasobu | Przekierowanie po wysłaniu formularza | Klient powinien pobrać stronę docelową metodą GET |
| 308 | Stała | Trwała zmiana z zachowaniem metody żądania | Nie jest zamiennikiem 302 dla zmian tymczasowych |
W przypadku zwykłej strony HTML różnica między 302 a 307 może nie być widoczna. Przy żądaniach POST ma już znaczenie, ponieważ historycznie część klientów zmieniała metodę po otrzymaniu 302 na GET. Jeżeli zachowanie metody jest wymagane, 307 jest bardziej jednoznaczny.
Przy migracji strony, zmianie slugów lub trwałym usunięciu starego adresu wybieram 301 albo 308. Tymczasowe użycie 302 w takiej sytuacji może sprawić, że wyszukiwarka dłużej będzie traktowała stary adres jako główny.
Jak wdrożyć kod 302 na serwerze
Najlepiej wykonywać przekierowanie po stronie serwera. Jest szybsze od skryptu uruchamianego w przeglądarce i działa także wtedy, gdy JavaScript jest wyłączony. Sposób konfiguracji zależy od używanego oprogramowania, ale zasada pozostaje ta sama: serwer ma zwrócić właściwy kod oraz nagłówek Location.
Apache i plik .htaccess
W konfiguracji Apache można użyć reguły wskazującej starą i nową ścieżkę:
Redirect 302 /stara-sciezka /nowa-sciezkaPrzy bardziej rozbudowanych regułach stosuje się moduł mod_rewrite. Trzeba uważać na kolejność wpisów, ponieważ zbyt ogólna reguła może przejąć ruch przeznaczony dla innych podstron.
Nginx
W Nginx tymczasowe przekierowanie może wyglądać następująco:
location = /stara-sciezka {
return 302 /nowa-sciezka;
}Dokładne dopasowanie ścieżki ogranicza ryzyko przypadkowego przekierowania podobnych adresów. Po zmianie konfiguracji warto sprawdzić, czy serwer zaakceptował nowy plik i czy nie powstała pętla.
PHP i aplikacje webowe
W aplikacji PHP kod statusu można zwrócić razem z nagłówkiem lokalizacji:
http_response_code(302);
header('Location: /nowa-sciezka');
exit;Instrukcja exit jest ważna, ponieważ zatrzymuje dalsze generowanie odpowiedzi. Bez niej aplikacja może wykonać dodatkowy kod, wysłać niepotrzebną treść albo nadpisać nagłówki.
W systemach CMS przekierowania często dodaje się przez panel administracyjny lub wtyczkę. To wygodne, ale przed publikacją sprawdzam, czy narzędzie rzeczywiście zwraca 302, a nie 301. Nazwa funkcji w panelu nie zawsze odpowiada finalnej odpowiedzi HTTP.
Co kod 302 oznacza dla SEO
Google traktuje 302 jako sygnał tymczasowy. Robot może podążyć za przekierowaniem, ale sam kod nie wskazuje z taką siłą jak 301 lub 308, że strona docelowa ma stać się kanoniczną wersją starego adresu.
To nie oznacza, że 302 „nie przekazuje żadnej wartości SEO”. Sygnały są oceniane razem z treścią, linkami wewnętrznymi, tagiem canonical, mapą witryny i innymi elementami. Praktyczny wniosek jest prostszy: nie używaj 302 jako domyślnego zamiennika dla 301.
Jeżeli przekierowanie służy testowi, krótkiej promocji albo chwilowej awarii, zachowanie starego adresu w indeksie może być korzystne. Jeśli jednak strona została przeniesiona na stałe, tymczasowy status wysyła wyszukiwarce niejednoznaczny sygnał i może opóźnić uporządkowanie indeksu.
Przeczytaj również: Strony RWD - jak działają i co daje responsywność?
Najczęstsze problemy techniczne
- Pętla przekierowań, w której adres A prowadzi do B, a B z powrotem do A.
- Łańcuch kilku przekierowań zamiast jednego przejścia do końcowej strony.
- Przekierowanie na niepowiązaną podstronę, które pogarsza doświadczenie użytkownika.
- Masowe kierowanie na stronę główną po usunięciu wielu adresów.
- Brak aktualizacji linków wewnętrznych, mimo że przekierowanie działa poprawnie.
- Nieprawidłowy kod, gdy panel CMS miał ustawić 302, ale zwrócił 301.
Przekierowanie na stronę główną nie rozwiązuje automatycznie problemu usuniętej treści. Jeżeli istnieje bliski odpowiednik, kieruję użytkownika właśnie tam. Gdy nie ma sensownego zamiennika, lepsza może być odpowiedź 404 albo 410 niż przypadkowa podstrona, która wygląda jak błąd jakościowy.
Jak sprawdzić, czy przekierowanie działa prawidłowo
Nie kończę wdrożenia na tym, że strona otwiera się w przeglądarce. Przeglądarka może podążyć za kilkoma przekierowaniami i ukryć problem. Trzeba sprawdzić pierwszą odpowiedź serwera, docelowy adres oraz liczbę wykonanych kroków.
- Otwórz stary adres i sprawdź, czy odpowiedź ma kod 302.
- Zweryfikuj, czy nagłówek Location wskazuje właściwą ścieżkę.
- Sprawdź, czy strona docelowa zwraca kod 200.
- Przetestuj adres z końcowym ukośnikiem, bez niego oraz z parametrami, jeśli są używane.
- Powtórz test dla urządzeń mobilnych i najważniejszych wariantów protokołu.
W narzędziach deweloperskich przeglądarki można zobaczyć serię żądań w zakładce Network. Przy większej stronie przydaje się crawler SEO albo prosty test nagłówków HTTP. Najważniejsze, by kontrola obejmowała nie tylko pojedynczy adres, lecz także reprezentatywne typy podstron.
Po wdrożeniu obserwuję logi serwera i raporty indeksowania. Nagły wzrost liczby przekierowań, powtarzające się żądania tych samych adresów lub błędy 5xx często pokazują problem, którego nie widać podczas ręcznego testu jednej strony.
Jak zachować kontrolę nad tymczasową zmianą
Każde 302 powinno mieć właściciela i plan wycofania. W dokumentacji projektu zapisuję powód, datę wdrożenia, adres docelowy i warunek zakończenia. Bez tego tymczasowa reguła łatwo zostaje na serwerze przez miesiące, a zespół zaczyna traktować ją jak stały element architektury.
Gdy test lub kampania się kończy, usuwam przekierowanie, aktualizuję linki i sprawdzam, czy pierwotna strona wraca z właściwym kodem. Jeśli decyzja biznesowa zmieniła się i adres ma już na stałe prowadzić gdzie indziej, dopiero wtedy zamieniam 302 na odpowiedni kod trwały.
Najbezpieczniejsza zasada jest prosta. 302 opisuje stan przejściowy, nie strategię migracji. Dobrze działa wtedy, gdy naprawdę chcesz zachować pierwotny adres, kontrolujesz czas trwania reguły i regularnie sprawdzasz, co widzi użytkownik oraz robot wyszukiwarki.