301 Moved Permanently informuje klienta, że zasób docelowy otrzymał nowy, stały adres URL, przesłany w nagłówku Location, i że w przyszłości należy odwoływać się właśnie do niego. Przeglądarki od razu za nim podążają, a klienci, którzy mogą edytować linki, np. menedżery zakładek i narzędzia do sprawdzania linków, powinni je zaktualizować.
Odpowiedź 301 może być buforowana heurystycznie. Przeglądarki zapamiętują przekierowania stałe – gdy nie ustawiono nagłówka Cache-Control, często na długo – i przy kolejnych wizytach przechodzą od razu na nowy adres URL, nie odpytując ponownie starego. Dlatego błędne przekierowanie 301 trudno cofnąć: najpierw przetestuj je z krótkim Cache-Control: max-age albo stosuj przekierowanie tymczasowe, dopóki przeniesienie nie będzie ostateczne.
Z przyczyn historycznych klienci mogą zmienić metodę z POST na GET, gdy podążają za kodem 301, i wszystkie popularne przeglądarki tak robią. Jeśli przekierowane żądanie POST musi pozostać żądaniem POST, np. w przypadku API lub endpointu formularza, użyj zamiast tego 308 Permanent Redirect.
Przykładowa odpowiedź
HTTP/1.1 301 Moved Permanently
Date: Fri, 06 Nov 2026 10:15:32 GMT
Server: nginx
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: https://www.example.com/new-page
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html> SEO i sprawdzanie przekierowań
Przekierowanie 301 to standardowy sposób przeniesienia treści bez utraty widoczności w wyszukiwarce. Google traktuje je jako silny sygnał, że adres docelowy powinien być kanonicznym adresem URL, więc z czasem nowy adres zastępuje stary w wynikach wyszukiwania. Google zapewnia też, że przekierowania 3xx nie powodują utraty PageRanku. Stosuj 301 przy zmianie domeny, przejściu z HTTP na HTTPS, ujednolicaniu www, zmianie slugów i łączeniu stron. Przekierowuj każdy stary adres URL na jego najbliższy odpowiednik, a nie na stronę główną, którą Google może potraktować jako soft 404.
Skracaj łańcuchy. Każdy dodatkowy przeskok to kolejne żądanie i odpowiedź (round trip), a Googlebot podąża za co najwyżej 10 przeskokami, po czym zgłasza błąd przekierowania. Kieruj linki wewnętrzne i mapy witryny bezpośrednio na docelowe adresy URL i unikaj łańcuchów w rodzaju http:// → https:// → https://www. → /new-page. Narzędzie Sprawdzanie przekierowań 301 pokazuje, czy każdy przeskok jest stały, a przewodnik po kodach przekierowań HTTP porównuje 301 z 302, 307 i 308.
Typowe przyczyny i zastosowania
- Witryna przeszła na HTTPS lub na nową domenę, a każdy stary adres URL przekierowuje na swój nowy odpowiednik.
- Wersje hosta z
wwwi bezwwwalbo warianty z ukośnikiem na końcu i bez niego są ujednolicane do jednej kanonicznej postaci. Przetestuj je narzędziami Sprawdzanie przekierowania na HTTPS i Sprawdzanie ukośnika na końcu adresu URL. - Zmieniono adres strony albo połączono ją z inną stroną.
- Przekierowanie 301 ustawiono przez pomyłkę, a przeglądarki nadal korzystają z zapamiętanego przekierowania. Popraw konfigurację serwera, a potem wyczyść pamięć podręczną przeglądarki lub przetestuj adres w oknie prywatnym.