Przekierowanie 301 to mechanizm informujący, że dana strona została przeniesiona na stałe pod inny adres URL. Nazwa pochodzi z angielskiego „moved permanently” i jest wyrażana za pomocą kodu statusu HTTP 301, który serwer wysyła do przeglądarek i robotów wyszukiwarek. Przekierowanie 301 działa automatycznie – zamiast wyświetlać komunikat, natychmiast kieruje użytkownika i robota na właściwą stronę pod nową ścieżką URL.
Jak działa przekierowanie 301?
Proces działania jest prosty, a jednocześnie kluczowy dla UX i SEO. Gdy użytkownik lub robot próbuje uzyskać dostęp do starego adresu, serwer zwraca HTTP 301 (moved permanently), informując, że zasób jest dostępny pod nowym adresem i należy go używać w przyszłości.
Co dzieje się po uruchomieniu przekierowania 301:
- użytkownik trafia automatycznie na nową stronę,
- robot wyszukiwarki aktualizuje w indeksie powiązanie stary→nowy adres,
- linki zewnętrzne i reputacja SEO są przenoszone na nowy URL,
- większość wypracowanej wartości SEO zostaje zachowana.
Dzięki prawidłowej implementacji przekierowania 301 użytkownik nie widzi błędu 404 „Nie znaleziono”, tylko od razu trafia do aktualnej treści.
Główne zastosowania przekierowania 301
W praktyce 301 wykorzystuje się wszędzie tam, gdzie dochodzi do trwałej zmiany adresów lub konsolidacji treści. Najczęstsze scenariusze to:
- Zmiana nazwy domeny – migracja całej witryny na nową domenę bez utraty wypracowanej widoczności;
- Migracja na HTTPS – wymuszenie HTTPS i przekierowanie z HTTP ze względów bezpieczeństwa i SEO;
- Zmiana struktury adresów URL – przenosiny podstron do nowych kategorii lub skracanie adresów przy zachowaniu mocy SEO;
- Eliminacja duplikacji – ujednolicenie wersji z/bez www, http/https oraz ze/bez ukośnika końcowego (trailing slash);
- Scalanie i archiwizacja treści – łączenie podobnych artykułów w jeden silniejszy adres lub odesłanie wycofanej podstrony do najbardziej zbliżonej tematycznie.
Znaczenie dla SEO i pozycjonowania
Przekierowanie 301 pozwala zachować sygnały rankingowe, link equity i historię adresu przy trwałej zmianie URL. Roboty interpretują 301 jako stałe przeniesienie zasobu i przenoszą większość mocy na nowy adres.
To kluczowe dla uniknięcia spadków widoczności, błędów 404 oraz rozproszenia linków. Właściwa konfiguracja skraca czas reindeksacji i utrzymuje spójne doświadczenie użytkownika.
Różnica między przekierowaniem 301 a 302
Aby świadomie dobrać typ przekierowania, pomocne jest porównanie kluczowych parametrów:
| Cecha | 301 (stałe) | 302 (tymczasowe) |
|---|---|---|
| Charakter zmiany | Przeniesienie na stałe | Zmiana tymczasowa |
| Przenoszenie sygnałów SEO | Przenosi większość mocy SEO na nowy URL | Zazwyczaj nie przenosi pełnej mocy SEO |
| Zastosowanie | Migracje, zmiana struktury, kanonikalizacja | Testy A/B, krótkie kampanie, chwilowa niedostępność |
| Wpływ na indeksowanie | Docelowy adres zwykle przejmuje ranking | Wyszukiwarki zachowują oryginalny adres jako kanoniczny |
Metody implementacji przekierowania 301
Wybór metody zależy od technologii serwera i CMS. Poniżej krótkie porównanie możliwości:
| Metoda | Gdzie | Poziom trudności | Zalety | Kiedy stosować |
|---|---|---|---|---|
| .htaccess | Serwer Apache | Średni | Szybka konfiguracja, reguły per katalog | Pojedyncze i masowe reguły w Apache |
| Konfiguracja Nginx | Serwer Nginx (blok server) | Średni/Zaawansowany | Wysoka wydajność, centralne zarządzanie | Wymuszanie HTTPS, www, mapowania całych sekcji |
| Panel CMS | WordPress i inne CMS-y | Niski | Prosta obsługa, historia przekierowań | Gdy brak dostępu do konfiguracji serwera |
Przykłady konfiguracji – Apache (.htaccess)
Przekierowanie pojedynczego adresu na nowy URL:
Redirect 301 /stary-adres https://example.com/nowy-adres
Wymuszenie HTTPS dla całej witryny:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Ujednolicenie na wersję z www:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
Przykłady konfiguracji – Nginx
Wymuszenie HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
Ujednolicenie na wersję bez www:
server {
listen 443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
Konfiguracja w CMS (np. WordPress)
Jeśli korzystasz z CMS, przekierowania dodasz bez edycji plików serwera. Ogólny przebieg wygląda następująco:
- Zainstaluj i włącz wtyczkę do przekierowań w swoim CMS.
- Dodaj regułę 301, wskazując stary oraz docelowy adres URL.
- Zapisz zmiany i przetestuj działanie na urządzeniach mobilnych i desktopowych.
Testowanie i monitorowanie przekierowań
Po wdrożeniu koniecznie zweryfikuj poprawność działania i wpływ na indeksację:
- Sprawdzenie nagłówków – użyj komendy, aby upewnić się, że zwracany jest HTTP 301;
- Aktualizacja linków wewnętrznych – podmień odnośniki w nawigacji, treściach i stopkach na docelowe URL-e;
- Aktualizacja mapy witryny – upewnij się, że XML Sitemap zawiera wyłącznie nowe adresy;
- Google Search Console – monitoruj błędy indeksowania i pokrycie, sprawdzaj przekierowane adresy;
- Logi serwera i 404 – wyłapuj brakujące reguły i eliminuj pętle lub łańcuchy przekierowań.
Aby szybko sprawdzić nagłówki, użyj polecenia:
curl -I https://example.com/stary-adres
Najczęstsze błędy i dobre praktyki
Aby przekierowania 301 działały maksymalnie efektywnie, warto stosować poniższe zasady:
- Unikaj łańcuchów przekierowań – kieruj bezpośrednio stary adres → finalny adres, aby nie tracić mocy i szybkości;
- Nie mieszaj 301 i 302 bez potrzeby – dla trwałych zmian zawsze używaj 301, a 302 tylko tymczasowo;
- Aktualizuj linkowanie wewnętrzne – nie polegaj długoterminowo na przekierowaniach w menu i treściach;
- Utrzymuj spójność kanoniczną – wersja kanoniczna (np. https + bez www) musi być wymuszona konsekwentnie;
- Testuj przed publikacją – sprawdzaj na środowisku testowym, aby uniknąć pętli i błędnych tras;
- Nie używaj 301 do „ukrywania” stron bez docelowej treści – jeśli zasób został usunięty bez zamiennika, rozważ 410 Gone.