Przekierowanie 302

Czym jest tymczasowe przekierowanie 302, dlaczego Google nazywa je „słabym” sygnałem przetwarzania celu (a nie ślepą uliczką z zerową wartością), jakie uzasadnione zastosowania Google rzeczywiście zaleca oraz jaki błąd kosztuje rankingi.

Opublikowano po raz pierwszy: 2 lip 2026 · Ostatnia aktualizacja: 6 sie 2026 · Advanced
Języki
1 sygnał dowodowy na tej stronie

Przekierowanie 302 (HTTP 302, „Found”) jest tymczasowe: wysyła użytkowników pod nowy adres URL, sygnalizując, że oryginalny adres URL powinien pozostać w wynikach. Najważniejszy niuans: infrastruktura crawlowania Google nazywa 302 słabym sygnałem przetworzenia celu, w przeciwieństwie do silnego sygnału 301 — ale to odrębne od potoku indeksowania Search, który nie traktuje tymczasowego przekierowania jako sygnału kanoniczności celu (słaby nie znaczy zerowy, a przetworzony nie znaczy kanoniczny). Google (Mueller, Illyes) mówiło, że 302 nadal przekazuje sygnały linków, a gdy pozostaje aktywny wystarczająco długo, Google może zacząć traktować go jak 301 — wzorzec zaobserwowany przez praktyków, bez opublikowanego harmonogramu. To właściwy wybór przy rzeczywiście tymczasowych sytuacjach — Google wyraźnie zaleca 302 zamiast 301 przy testach A/B, a także przy routingu geograficznym/urządzeń i stronach konserwacji. Prawdziwym błędem jest użycie 302 przy stałym przeniesieniu, co może pozostawić stary adres URL w rankingu zamiast nowego przez nieprzewidywalny czas.

TL;DR — 302 („Found”) to tymczasowe przekierowanie. Precyzyjne ujęcie Google obejmuje dwa etapy, nie jeden: infrastruktura crawlowania nazywa je słabym sygnałem, że cel przekierowania powinien zostać przetworzony, w przeciwieństwie do silnego sygnału 301 — a osobno potok indeksowania Search mówi, że nie traktuje tymczasowego przekierowania jako sygnału, że cel powinien być kanoniczny (cel nadal może zostać zindeksowany przez inne sygnały). Dwa mechanizmy są stale mylone: przekazywanie sygnałów linków/PageRank (Mueller i Illyes powiedzieli, że nie jest zerowe w przypadku 302, choć to ich publiczne stwierdzenie, a nie formalnie opublikowana uniwersalna reguła) oraz preferencja kanonizacji/indeksowania (to ona faktycznie się różni — 302 mówi Google, aby zachować źródłowy adres URL w indeksie). Pozostawiony dostatecznie długo 302 może się przełączyć — to wzorzec zaobserwowany przez praktyków, a nie udokumentowany mechanizm, bez opublikowanego harmonogramu. Google zaleca 302 zamiast 301 przy testach A/B. Jedynym prawdziwym błędem jest użycie 302 przy stałym przeniesieniu; nie buduj też celu przekierowania z niesprawdzonych danych wejściowych użytkownika.

„Moved Temporarily” → „Found” — krótka historia

302 narodził się jako kod niejednoznaczny. W HTTP/1.0 nazywał się „Moved Temporarily”, a specyfikacja mówiła, że klienci powinni ponownie używać pierwotnej metody żądania podczas podążania za nim. W praktyce przeglądarki tego nie robiły — wiele z nich po cichu zmieniało POST na GET przy przekierowaniu, wbrew specyfikacji. HTTP/1.1 uznało rzeczywistość, zmieniając nazwę 302 na „Found” i dodając dwie jednoznaczne alternatywy: 303 (See Other), który zawsze zmienia metodę na GET, oraz 307 (Temporary Redirect), który nigdy nie zmienia metody. Aktualna specyfikacja, RFC 9110 (2022), nadal zaznacza, że klienci mogą zmienić POST na GET przy 302 — właśnie dlatego istnieje 307 dla przypadków, w których nie wolno tego zrobić. Przy zwykłych przekierowaniach stron opartych na GET (zastosowanie SEO) 302 i 307 zachowują się tak samo wobec wyszukiwarek; różnica zachowania metody ma znaczenie tylko przy wysyłaniu formularzy i wywołaniach API. Evidence for this claim RFC 9110 defines 302 Found as a temporary move to another URI and notes that user agents may change POST to GET when following it. Scope: HTTP semantics for 302 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.3 — 302 Found

Z punktu widzenia wyszukiwania Google grupuje 302 (found), 303 (see other) i 307 (temporary redirect) jako „Temporary”, w przeciwieństwie do 301 i 308 jako „Permanent”.

Skrócona decyzja, jeśli wybierasz między nimi:

  • 302 — klient podążający za przekierowaniem może zmienić POST na GET (RFC 9110). To dobre rozwiązanie dla zwykłego przekierowania strony opartego na GET; unikaj go, jeśli nie możesz tolerować zmiany metody.
  • 307 — nigdy nie zmienia metody ani nie wysyła innego żądania. Użyj go, gdy wysłanie formularza lub wywołanie API musi zostać dokładnie powtórzone.
  • 303 — celowo wskazuje inny, niebędący odpowiednikiem zasób, zwykle pobierany przez GET/HEAD — klasyczny wzorzec „przekieruj po POST do strony potwierdzenia”, a nie zamiennik tego samego żądania.
  • Cache — 302 nie jest heurystycznie możliwy do zapisania w cache tylko ze względu na kod stanu (RFC 9111); zostanie zapisany i ponownie użyty wyłącznie po ustawieniu jawnych dyrektyw świeżości lub cache. Nie zakładaj, że CDN albo przeglądarka domyślnie potraktuje go jako możliwy do cache’owania.

Słaby kontra silny sygnał — precyzyjne słowa Google

Pomiń folklor i przeczytaj rzeczywisty język Google. W dokumentacji infrastruktury crawlowania Google mówi, że 302 jest słabym sygnałem:

“By default, Google’s crawlers follow the redirect, and Google systems use the redirect as a weak signal that the redirect target should be processed.” (tłumaczenie) „Domyślnie crawlery Google podążają za przekierowaniem, a systemy Google używają przekierowania jako słabego sygnału, że cel przekierowania powinien zostać przetworzony.”

Evidence for this claim Google's crawling-infrastructure documentation says crawlers follow a 302/303 and Google systems use it as a weak signal that the target should be processed; it also warns that product behavior can differ. Scope: product-specific crawl and processing handoff Confidence: high · Verified: How HTTP Status Codes Affect Google's Crawlers

Wiersz dotyczący 301 w tej samej tabeli jest identyczny z wyjątkiem jednego słowa — strong:

“Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.” (tłumaczenie) „Google podąża za przekierowaniem, a systemy Google używają przekierowania jako silnego sygnału, że cel przekierowania powinien zostać przetworzony.”

Evidence for this claim Google's crawling-infrastructure documentation says crawlers follow a 302/303 and Google systems use it as a weak signal that the target should be processed; it also warns that product behavior can differ. Scope: product-specific crawl and processing handoff Confidence: high · Verified: How HTTP Status Codes Affect Google's Crawlers

„Słaby” nie znaczy „zerowy” — ale warto też precyzyjnie wskazać, co jest słabe. Mówią tu dwa różne systemy Google o dwóch różnych etapach, a nie jeden ciągły zakres:

  • Infrastruktura crawlowania (powyższy cytat o „słabym sygnale”) dotyczy tego, czy cel przekierowania zostanie przetworzony — w praktyce, czy crawler Google pobierze i obejrzy stronę docelową.
  • Potok indeksowania Search to osobny, późniejszy etap, który podaje własną regułę wprost: “Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical. The target page might still be indexed if other canonicalization signals are present.” (tłumaczenie) „Googlebot podąża za przekierowaniem, ale potok indeksowania nie używa go jako sygnału, że cel powinien być kanoniczny. Strona docelowa nadal może zostać zindeksowana, jeśli obecne są inne sygnały kanonizacji.” Evidence for this claim Google follows a 302 temporary redirect but does not use it as a signal that the destination should become canonical; Google recommends 302 rather than 301 for temporary site tests. Scope: Google Search handling of temporary redirects and A/B tests. Confidence: high · Verified: Google: Redirects and Google Search Google: Website testing

Czytaj te informacje razem: 302 daje Google delikatny impuls, aby zajrzał do celu (crawlowanie), ale potok indeksowania Search nie traktuje tego samego przekierowania jako głosu za uczynieniem celu kanonicznym (indeksowanie). Cel nadal może zostać zindeksowany i stać się kanoniczny — ale dzięki innym sygnałom, a nie dzięki samemu 302. Nie sprowadzaj tego do „302 jest słabym głosem za kanonicznością celu” — żaden z tych dokumentów tego nie mówi; opisują różne zakresy.

Dwa mechanizmy, nie jeden

W tym miejscu większość treści konkurencji miesza pojęcia, więc zachowaj je osobno:

  1. Przekazywanie sygnałów linków/PageRank nie jest zerowe przy 302. Gary Illyes powiedział w 2016 roku, że Google nie stosuje już rozcieńczania PageRank przy przekierowaniach 301, 302 ani innych 30x (odchodząc od starego folkloru o „utracie około 15% na przeskoku”), a Mueller powiedział to samo konkretnie o 302: “do work the same as normal redirects… It’s not that they don’t pass any PageRank or anything like that.” (tłumaczenie) „działają tak samo jak zwykłe przekierowania… Nie chodzi o to, że nie przekazują żadnego PageRank ani niczego podobnego.” Traktuj to jako publiczne stwierdzenie Google w tej kwestii, a nie formalnie opublikowaną, uniwersalną gwarancję transferu — aktualna dokumentacja pierwotna nie opisuje dokładnej reguły transferu sygnałów linków dla każdego typu przekierowania w każdej sytuacji.
  2. Preferencja kanonizacji/indeksowania to mechanizm, który faktycznie się różni. 301 jest silnym sygnałem, aby zindeksować cel; 302 jest słaby, więc domyślnie Google zachowuje indeksowanie źródła.

„Czy 302 przekazuje PageRank?” oraz „czy 302 zmienia adres URL, który się pozycjonuje?” to dwa różne pytania. Odpowiedź na pierwsze brzmi „tak”, a na drugie „nie, nie domyślnie”. Ich pomieszanie dało początek mitowi „302 = zero wartości”.

W związku z tym: po przekierowaniu adresu URL Google śledzi oba końce. “Google keeps track of both the redirect source (the old URL) and the redirect target (the new URL). One of the URLs will be the canonical; which one, depends on signals such as whether the redirect was temporary or permanent. The other URL becomes an alternate name of the canonical URL.” (tłumaczenie) „Google śledzi zarówno źródło przekierowania (stary adres URL), jak i jego cel (nowy adres URL). Jeden z adresów URL będzie kanoniczny; który, zależy od sygnałów, takich jak tymczasowy lub stały charakter przekierowania. Drugi adres URL staje się alternatywną nazwą kanonicznego.” W przypadku 302 źródło pozostaje kanoniczne — na razie.

Evidence for this claim A 302 expresses temporary intent, but it does not guarantee that the source URL will always remain Google's selected canonical or that the target cannot index through other signals. Scope: redirect crawling, indexing, and canonicalization Confidence: high · Verified: Redirects and Google Search

Co się dzieje, gdy 302 pozostaje zbyt długo — „przełączenie”

Oto część, która zaskakuje ludzi: tymczasowe przekierowanie, którego nigdy nie usunięto, może przestać być traktowane jako tymczasowe. Mueller: “if you have 302 redirects for the long run, we treat them exactly the same as 301 redirects anyway.” (tłumaczenie) „jeśli utrzymujesz przekierowania 302 przez długi czas, i tak traktujemy je dokładnie tak samo jak przekierowania 301.”

Dlaczego tak się dzieje? To moje własne robocze wyjaśnienie z poradnika kanonizacji Ahrefs — model mentalny praktyka zbudowany na podstawie obserwowanego zachowania, a nie mechanizm formalnie opublikowany przez Google — potraktuj to jak przechylającą się wagę. Stałe przekierowania wysyłają sygnały do przodu, na nowy adres URL; tymczasowe przekierowania wysyłają sygnały wstecz, na oryginalny adres URL. Ale:

“If a temporary redirect is left in place long enough or the URL it’s redirected to already exists, it may be treated as a permanent redirect and send signals forward instead. It requires enough signals to flip the scale we saw earlier for canonicalization signals. As links build up, internal links are changed, sitemap URLs are updated, etc., more signals point to the new URL than the old URL, and the flip occurs.” (tłumaczenie) „Jeśli tymczasowe przekierowanie pozostanie aktywne wystarczająco długo lub adres URL, do którego prowadzi, już istnieje, może zostać potraktowane jako stałe i zamiast tego wysyłać sygnały do przodu. Do przechylenia wagi potrzebna jest wystarczająca liczba sygnałów kanonizacji. Gdy przybywa linków, zmieniają się linki wewnętrzne, aktualizowane są adresy URL w sitemapach itd., więcej sygnałów wskazuje nowy adres URL niż stary i następuje przełączenie.”

Pułapka polega na tym, że nikt nie wie, ile to trwa. Jak napisałem w poradniku o przekierowaniach, “Nobody knows how long a 302 redirect has to exist before Google starts treating it as a 301 redirect. Usually, it’s a few weeks to a few months, but it can be days, weeks, or months.” (tłumaczenie) „Nikt nie wie, jak długo przekierowanie 302 musi istnieć, zanim Google zacznie traktować je jak 301. Zwykle jest to od kilku tygodni do kilku miesięcy, ale mogą to być dni, tygodnie lub miesiące.” Google może zadziałać wcześniej, jeśli uzna, że popełniłeś błąd: “Only if Google thinks you used a 302 redirect by mistake for a permanent move does this not happen. In that case, it treats the redirect as a 301… In some circumstances, Google even appears to treat 302s as 301s from the get-go.” (tłumaczenie) „Tylko gdy Google uzna, że przez pomyłkę użyto 302 przy stałym przeniesieniu, to się nie dzieje. W takim przypadku traktuje przekierowanie jak 301… W pewnych okolicznościach Google zdaje się nawet traktować 302 jak 301 od samego początku.” Nie podawaj konkretnej liczby dni — nie ma opublikowanej wartości, a żadna liczba, którą zobaczysz (w tym „2 dni” krążące w folklorze Binga), nie została potwierdzona przez Google.

Jak Bing traktuje 302 — obserwuje zachowanie, nie tylko nagłówek

Bing dochodzi do podobnego wniosku nieco inną drogą i mówi o tym wprost. W swoim wieloletnim objaśnieniu przekierowań Bing opisuje obserwowanie wzorca przekierowania podczas kolejnych crawlów, zamiast ufania samemu kodowi stanu: przekierowania, które stale zmieniają cel, są traktowane bardziej jak 302, nawet jeśli mają etykietę 301, a przekierowania zawsze wskazujące to samo miejsce są traktowane bardziej jak 301, nawet jeśli mają etykietę 302 — system Binga zaczyna „myśleć o nich bardziej jak o 301, gdy crawlujemy je ponownie raz za razem”. To ta sama konwergencja, którą opisuje Google, osiągnięta niezależnie: przy wystarczająco spójnym zachowaniu obie wyszukiwarki bardziej ufają temu, co przekierowanie robi, niż temu, co twierdzi jego nagłówek.

Starsze wytyczne Binga również mocniej niż dzisiejsze Google skłaniały się ku „oszczędnemu używaniu 302”, ostrzegając, że niewłaściwie użyty 302 może pozostawić wartość na starych adresach URL. Wniosek praktyczny jest taki sam jak u Google: dopasuj typ przekierowania do rzeczywistej intencji.

Kiedy 302 jest właściwym wyborem

Google nie tylko toleruje 302s — przy jednym zastosowaniu zaleca ten kod. Z wytycznych dotyczących testów A/B:

“If you’re running a test that redirects users from the original URL to a variation URL, use a 302 (temporary) redirect, not a 301 (permanent) redirect. This tells search engines that this redirect is temporary—it will only be in place as long as you’re running the experiment—and that they should keep the original URL in their index rather than replacing it with the target of the redirect (the test page). JavaScript-based redirects are also fine.” (tłumaczenie) „Jeśli prowadzisz test przekierowujący użytkowników z oryginalnego adresu URL na wariant, użyj przekierowania 302 (tymczasowego), a nie 301 (stałego). Informuje to wyszukiwarki, że przekierowanie jest tymczasowe — będzie aktywne tylko tak długo, jak długo prowadzisz eksperyment — i że powinny zachować oryginalny adres URL w indeksie, zamiast zastępować go celem przekierowania (stroną testową). Przekierowania oparte na JavaScripcie również są dopuszczalne.”

Uzasadnione przypadki użycia (wszystkie rzeczywiście tymczasowe):

  • Testy A/B — wyraźna rekomendacja Google powyżej. Nie przeciągaj jednak testu: Google ostrzega, że “if we discover a site running an experiment for an unnecessarily long time, we may interpret this as an attempt to deceive search engines and take action accordingly.” (tłumaczenie) „jeśli odkryjemy witrynę prowadzącą eksperyment przez niepotrzebnie długi czas, możemy zinterpretować to jako próbę oszukania wyszukiwarek i odpowiednio zareagować.” Prowadź test tak długo, jak potrzeba do uzyskania istotności, a następnie go usuń.
  • Routing geograficzny, urządzenia i języka — gdy „właściwy” cel zależy od odwiedzającego i żaden pojedynczy adres URL nie powinien na stałe zastąpić źródła. Tu potrzeba czegoś więcej niż wyboru kodu stanu: sprawdź, do czego trafia sam Googlebot (zwykle nie wysyła prawdziwych sygnałów lokalizacji ani urządzenia odwiedzającego), czy routing korzysta z ciasteczek lub nagłówków, których crawler nie wysyła, czy klucze cache i nagłówek Vary poprawnie rozdzielają warianty (aby cache nie podał strony jednego kraju innemu), czy użytkownik czytnika ekranu lub bez JavaScriptu może dotrzeć do treści oraz czy odwiedzający może nadpisać automatyczny routing, zamiast utknąć w pętli przekierowań. Połącz to z prawidłowym hreflang na wersjach lokalnych — przekierowanie i hreflang powinny się zgadzać, a nie wzajemnie zwalczać.
  • Tymczasowe strony konserwacji / niedostępności usługi — własny przykład Google: “if a service your site offers is temporarily unavailable, you can set up a temporary redirect to send users to a page that explains what’s happening, without compromising the original URL in search results.” (tłumaczenie) „jeśli usługa oferowana przez witrynę jest tymczasowo niedostępna, możesz ustawić tymczasowe przekierowanie wysyłające użytkowników na stronę wyjaśniającą sytuację, bez naruszania pozycji oryginalnego adresu URL w wynikach wyszukiwania.” Zastanów się, który z dwóch przypadków naprawdę masz. Jeśli sam adres URL po prostu nie może być teraz obsłużony (backend jest wyłączony, trwa wdrożenie), 503 Service Unavailable z nagłówkiem Retry-After na tym samym adresie URL jest często dokładniejszą odpowiedzią — mówi „tymczasowo nie mogę spełnić tego żądania, spróbuj ponownie później”, bez przekierowywania gdziekolwiek. Sięgnij po 302, gdy celowo kierujesz odwiedzających do innego, rzeczywiście użytecznego adresu URL z wyjaśnieniem (strony statusu lub strony „wrócimy” z większą ilością szczegółów), a nie tylko oznaczasz oryginał jako niedostępny.
  • Promocje ograniczone czasowo — wysyłaj odwiedzających na stronę kampanii podczas jej trwania, a potem wróć do poprzedniego adresu.
  • Równoważenie obciążenia / przełączanie awaryjne — kieruj ruch gdzie indziej, gdy źródło lub centrum danych jest tymczasowo niedostępne.

Zobacz kartę Examples, aby obejrzeć te przypadki z adnotacjami obok siebie, oraz kartę Checklists, aby wykonać kontrolę przed uruchomieniem.

Jeden prawdziwy błąd

Użycie 302, gdy chodzi o stałe przeniesienie. Mówisz Google, aby zachował stary adres URL w indeksie, więc nowa strona, którą chcesz pozycjonować, może nie przejąć miejsca przez nieokreślony, nieprzewidywalny czas — to realny koszt utraconej widoczności, a nie teoretyczne ryzyko. Jeśli strona zniknęła na dobre, użyj 301 (lub 308). Powiązane błędy to niespójne mieszanie 301 i 302 w łańcuchu przekierowań oraz — tryb awarii każdego przekierowania — przypadkowe skierowanie dwóch adresów URL do siebie nawzajem i utworzenie pętli.

Wdrażanie 302

Liczy się nagłówek — wiersz statusu 302 Found i Location. Własny przykład PHP Google:

header('HTTP/1.1 302 Found');
header('Location: https://www.example.com/newurl');
exit();

Apache (.htaccess) — flaga R=302 sprawia, że przekierowanie jest tymczasowe (R=301 lub samo R domyślnie oznaczałoby stałe):

Redirect 302 /old-path https://www.example.com/newurl
# or with mod_rewrite:
RewriteRule ^old-path/?$ https://www.example.com/newurl [R=302,L]

nginx — redirect wydaje 302 (permanent wydałoby 301):

location = /old-path {
    return 302 https://www.example.com/newurl;
}

Niezależnie od stosu (wtyczki przekierowań WordPressa, reguła CDN/brzegu sieci, handler na poziomie aplikacji), zasada jest taka sama: preferowane są przekierowania po stronie serwera, a kod tymczasowy trzeba wybrać świadomie — większość narzędzi domyślnie ustawia 301, więc 302 zwykle wymaga jawnego ustawienia.

Jedna uwaga dotycząca bezpieczeństwa, która dotyczy każdego przekierowania, nie tylko 302s: jeśli cel w nagłówku Location jest kiedykolwiek budowany na podstawie danych wejściowych kontrolowanych przez użytkownika (na przykład parametru zapytania ?next= lub ?returnUrl=), masz składniki otwartego przekierowania — atakujący tworzy link w Twojej domenie, który w rzeczywistości odbija odwiedzających gdzieś złośliwie. Nie wysyłaj odwiedzających pod dowolny adres URL pojawiający się w parametrze żądania; umieść na liście dozwolonych cele, do których rzeczywiście będziesz przekierowywać (stały zestaw znanych, bezpiecznych ścieżek lub źródeł), i przed wdrożeniem sprawdź, jak logika przekierowania obsługuje zakodowane oraz względne względem schematu dane wejściowe (//evil.example, %2F%2Fevil.example i podobne sztuczki). Przed wdrożeniem porównaj dokładną składnię każdego fragmentu dla danej platformy z aktualną wersją — powyższe przykłady są ilustracyjne i nie zastępują testów na własnym serwerze/CDN.

Stały odpowiednik oraz pełne porównanie opisują sąsiednie artykuły o przekierowaniu 301, 301 kontra 302 i 302 kontra 307 w tym klastrze.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.