
Co oznacza kod 308?
Kod 308 oznacza, że zasób ma nowy, stały adres i klient musi powtórzyć pod nim dokładnie to samo żądanie. Serwer podaje nowy adres w nagłówku Location. Jeśli pierwotne żądanie było wysłaniem formularza metodą POST, przeglądarka wyśle POST z tymi samymi danymi pod nowy URL. RFC 7538 określa też, że odpowiedź 308 jest domyślnie zapisywana w pamięci podręcznej, więc przeglądarka ją zapamiętuje, chyba że nagłówki cache mówią inaczej.
Przekierowanie 308 a 301, 302 i 307
Przekierowanie 308 to odpowiednik przekierowania 301, który zachowuje metodę żądania. W przeszłości wiele przeglądarek zamieniało POST na GET po 301 lub przekierowaniu 302, co psuło formularze i API. RFC 7538 wprowadził 308, aby zakazać tej zmiany przy stałych przeniesieniach, tak jak przekierowanie 307 robi to przy tymczasowych.
| Kod | Rodzaj | Czy metoda może zmienić się na GET | Jak traktuje go Google |
|---|---|---|---|
| 301 | stałe | tak (historycznie) | silny sygnał kanoniczności adresu docelowego |
| 308 | stałe | nie | silny sygnał kanoniczności adresu docelowego |
| 302 | tymczasowe | tak (historycznie) | w indeksie zwykle zostaje adres źródłowy |
| 307 | tymczasowe | nie | w indeksie zwykle zostaje adres źródłowy |
Jak Google traktuje przekierowanie 308?
Google traktuje przekierowanie 308 tak samo jak 301: Googlebot podąża za nim, a system indeksowania uznaje adres docelowy za kanoniczny. Dokumentacja Google zalicza 301 i 308 do kategorii „przeniesiono na stałe” i zaleca stałe przekierowania po stronie serwera przy każdej trwałej zmianie adresu. W praktyce SEO oznacza to, że 308 można bezpiecznie użyć przy przenosinach domeny czy migracji na HTTPS, bez utraty sygnałów rankingowych w porównaniu z 301.
Kiedy stosować przekierowanie 308?
Przekierowanie 308 stosuj, gdy adres zmienia się na stałe, a metoda żądania musi zostać zachowana. Typowe sytuacje to:
- endpointy API przyjmujące żądania POST lub PUT, które zmieniają ścieżkę,
- obsługa formularzy przeniesiona pod nowy adres,
- frameworki domyślnie używające 308, np. Next.js przy każdym przekierowaniu oznaczonym jako stałe,
- migracje, w których serwer lub CDN już zwraca 308 i zależy Ci na spójności.
Dla zwykłych podstron otwieranych metodą GET kody 301 i 308 działają w SEO tak samo, więc wybierz jeden i stosuj go konsekwentnie. Unikaj kilku przekierowań po kolei, bo łańcuch przekierowań marnuje budżet indeksowania.
Jak ustawić przekierowanie 308?
Przekierowanie 308 ustawia się w konfiguracji serwera, CDN lub aplikacji. Przykłady w formie tekstu:
- Nginx (od wersji 1.13.0): return 308 https://example.pl/nowa-strona;
- Apache mod_alias: Redirect 308 “/stara-strona” “https://example.pl/nowa-strona”
- Next.js, plik next.config.js: wpis z polami source, destination i permanent: true zwraca 308.
Dokumentacja Nginx zaznacza, że przed wersją 1.13.0 kod 308 nie był traktowany jako przekierowanie, więc najpierw sprawdź wersję serwera. Po wdrożeniu przetestuj odpowiedź narzędziem do sprawdzania nagłówków i upewnij się, że Location zawiera pełny, docelowy adres.
Mapa przekierowań to podstawa mojej pracy w obszarze technicznego SEO, szczególnie gdy sklep przenosi się do nowych katalogów krajowych w projektach międzynarodowego SEO.
Najczęstsze pytania: Przekierowanie 308
Czy przekierowanie 308 jest dobre dla SEO?
Przekierowanie 308 jest dobre dla SEO przy stałym przeniesieniu strony. Google traktuje je jak 301 i uznaje nowy adres za kanoniczny.
Czym różni się przekierowanie 301 od 308?
Oba kody oznaczają stałe przekierowanie, ale 308 zabrania zmiany metody żądania. Przy 308 żądanie POST pozostaje POST, a starsze przeglądarki po 301 potrafią zamienić je na GET.
Czy przeglądarka zapamiętuje przekierowanie 308?
Tak, odpowiedź 308 jest domyślnie zapisywana w pamięci podręcznej zgodnie z RFC 7538. Dlatego przekierowania warto dokładnie przetestować przed wdrożeniem.
Dlaczego Next.js używa 308 zamiast 301?
Next.js używa 308 przy stałych przekierowaniach, aby zachować pierwotną metodę żądania. Dokumentacja wyjaśnia, że wiele przeglądarek zmieniało POST na GET po kodach 301 i 302.
Powiązane pojęcia
- RFC 9110: HTTP Semantics · IETF / RFC Editor
- RFC 7538: The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect) · IETF / RFC Editor
- Redirects and Google Search · Google Search Central
- 308 Permanent Redirect · MDN Web Docs
- Module ngx_http_rewrite_module · nginx
- redirects (next.config.js) · Next.js (Vercel)







