Przekierowanie 301 w WordPressie ustawiasz na jeden z trzech sposobów: w module Przekierowania wtyczki Rank Math, we wtyczce Redirection albo regułą w pliku .htaccess na serwerze. Robisz to, gdy podstrona dostała nowy adres, dwie strony zostały scalone w jedną albo w starym linku jest literówka i użytkownicy trafiają na błąd 404. Poniżej każda metoda krok po kroku, polecenie do sprawdzenia, czy przekierowanie działa, i lista błędów, które najczęściej je psują.
Którą metodę ustawienia przekierowania 301 wybrać?
Pojedyncze adresy przekierowujesz wtyczką: modułem w Rank Math, jeśli ta wtyczka jest już na stronie, albo wtyczką Redirection, jeśli Twoje narzędzie SEO nie ma modułu przekierowań. Plik .htaccess zostaw na reguły, które mają działać przed WordPressem, na wzorce adresów i na hurtowe listy przy przebudowie serwisu.
| Metoda | Gdzie | Czego potrzebujesz | Najlepsza do | Ograniczenia |
|---|---|---|---|---|
| Rank Math, moduł Przekierowania | panel WordPressa, menu Rank Math | konto administratora, włączony moduł | pojedyncze adresy, kilka wariantów starego adresu w jednej regule | reguły znikają po usunięciu wtyczki |
| Wtyczka Redirection | panel WordPressa, Narzędzia → Redirection | konto administratora, instalacja wtyczki | strony bez Rank Math, wyrażenia regularne, log trafień | druga wtyczka do utrzymania; reguły znikają po jej usunięciu |
Plik .htaccess | serwer, katalog główny strony | dostęp FTP/SFTP lub menedżer plików, serwer Apache lub LiteSpeed | reguły na poziomie serwera, wzorce, listy adresów przy przebudowie | błąd składni zatrzymuje całą stronę (kod 500); nie działa na nginx |
Każdą regułę trzymasz w jednym miejscu: ten sam stary adres obsługuje albo wtyczka, albo .htaccess, nigdy jedno i drugie naraz.
Jak ustawić przekierowanie 301 w Rank Math?
Przekierowanie 301 dodajesz w menu Rank Math → Przekierowania → Dodaj nowy: wpisujesz stary adres w polu „Source URLs” (Adresy źródłowe), nowy w polu „Destination URL” (Adres docelowy), zostawiasz typ „301 Permanent Move” i status „Activate”. Panel Rank Math ma angielskie etykiety pól nawet przy polskim interfejsie, moduł jest dostępny w darmowej wersji wtyczki.
Włącz moduł
Na liście modułów Rank Math zaznacz „Przekierowania” (Redirections); w menu wtyczki pojawi się wtedy nowa pozycja Przekierowania.
Otwórz formularz
Rank Math → Przekierowania → Dodaj nowy.
Source URLs
Wpisz stary adres jako ścieżkę bez domeny, np. /stara-oferta/. Jedna reguła przyjmuje kilka adresów źródłowych („Add another”), więc wersję z ukośnikiem na końcu i bez niego wpisujesz jako dwie pozycje tej samej reguły. Zostaw dopasowanie „Exact”; pozostałe tryby dopasowania obsługują wzorce, nie pojedyncze strony.
Destination URL
Wpisz pełny nowy adres z https:// i ukośnikiem na końcu, np. https://roseo.com.pl/oferta/nowa-oferta/. Adres docelowy ma zwracać kod 200, nie kolejne przekierowanie.
Redirection Type
Zostaw domyślny przycisk „301 Permanent Move”. Lista zawiera też 302 i 307 dla zmian tymczasowych oraz 410 i 451 dla treści usuniętych, ale stałe przeniesienie adresu oznaczasz kodem 301.
Zapisz przyciskiem „Add Redirection”
Status zostaw na „Activate”; „Deactivate” zapisuje regułę, ale ją wyłącza. Po zapisaniu reguła trafia na listę z licznikiem trafień.

Moduł ma też opcję automatycznego przekierowania: gdy zmienisz adres opublikowanego wpisu lub strony, Rank Math sam zakłada regułę ze starego adresu na nowy. Po dodaniu reguły przechodzisz do testu z sekcji „Jak sprawdzić, czy przekierowanie 301 działa?”, a na stronie z LiteSpeed Cache czyścisz pamięć podręczną.
Jak ustawić przekierowanie wtyczką Redirection?
Przekierowanie 301 dodajesz w menu Narzędzia → Redirection: stary adres w polu „Source URL”, nowy w polu „Target URL”, na koniec przycisk „Add Redirect”. Kod 301 jest ustawiony domyślnie, więc dla stałego przeniesienia adresu nic więcej nie zmieniasz.
Zainstaluj wtyczkę
Wtyczki → Dodaj nową → wyszukaj „Redirection” → Zainstaluj → Włącz. Przy pierwszym uruchomieniu kreator proponuje monitorowanie zmian adresów i log 404; obie opcje możesz włączyć od razu. Jak potem czytać monitor 404 i log 404 w Redirection, pokazujemy w osobnym poradniku.
Otwórz panel
Narzędzia → Redirection, zakładka Redirects.
Source URL
W polu „Source URL” wpisz stary adres jako ścieżkę, np. /stara-oferta/. Pole przyjmuje też wyrażenia regularne po zaznaczeniu opcji Regex, ale dla pojedynczej strony zostajesz przy zwykłej ścieżce.
Target URL
W polu „Target URL” wpisz pełny nowy adres z https:// i ukośnikiem na końcu. Grupę zostaw domyślną („Redirections”); grupy służą tylko do porządkowania reguł.
Add Redirect
Po kliknięciu reguła trafia na listę, a zakładka Logs pokazuje każde wejście na stary adres z datą, adresem IP i źródłem, więc od razu widzisz, czy jest w ogóle używana.
Wtyczka Redirection i moduł Rank Math robią to samo, więc na stronie zostawiasz jedno z nich.
Jak dodać przekierowanie 301 w pliku .htaccess?
W pliku .htaccess przekierowanie 301 to jedna linia Redirect 301 /stary-adres/ https://domena.pl/nowy-adres/ wpisana nad blokiem # BEGIN WordPress. Zanim ją dodasz, zrób kopię tego pliku. Metoda działa na serwerach Apache i LiteSpeed, czyli na większości hostingów współdzielonych dla WordPressa; serwer nginx pliku .htaccess nie czyta.
Zrób kopię
Połącz się z serwerem przez FTP/SFTP albo menedżer plików w panelu hostingu i pobierz .htaccess z katalogu głównego strony (tam, gdzie leży wp-config.php). Plik zaczyna się od kropki, więc w kliencie FTP włącz pokazywanie plików ukrytych.
Dodaj regułę nad blokiem WordPressa
WordPress przy każdym zapisie ustawień bezpośrednich odnośników nadpisuje wszystko między # BEGIN WordPress a # END WordPress, więc własne reguły wpisujesz powyżej tego bloku.
Wybierz składnię
Dla pojedynczego adresu wystarczy Redirect 301 z modułu mod_alias. Dla wzorców (np. cała stara kategoria na nową) używasz RewriteRule z modułu mod_rewrite.
Zapisz i od razu przetestuj
Otwórz stronę główną i stary adres, bo błąd składni w .htaccess zatrzymuje całą stronę z kodem 500.
Przy błędzie 500 przywróć kopię
Wgraj z powrotem plik z kroku 1: strona wraca do działania, a regułę poprawiasz na spokojnie.
# pojedynczy adres (mod_alias)
Redirect 301 /stara-oferta/ https://roseo.com.pl/oferta/nowa-oferta/
# wzorzec: cała stara kategoria na nową (mod_rewrite)
RewriteEngine On
RewriteRule ^stara-kategoria/(.*)$ https://roseo.com.pl/nowa-kategoria/$1 [R=301,L]
# BEGIN WordPress
# (blok generowany przez WordPress, nie edytuj)
# END WordPressW Redirect 301 adres źródłowy podajesz jako ścieżkę od ukośnika, a docelowy w pełnej postaci z domeną. Przy przeprowadzce na nową domenę lub przebudowie serwisu reguły zwykle idą do jednej mapy adresów w .htaccess, a wtyczka zostaje do pojedynczych poprawek.
Nie chcesz edytować plików na serwerze ani ryzykować błędu 500?
Napisz do nas, ustawimy przekierowania na Twojej stronie i sprawdzimy, czy każde z nich prowadzi tam, gdzie ma.
Jak sprawdzić, czy przekierowanie 301 działa?
Przekierowanie sprawdzasz po kodzie odpowiedzi serwera i nagłówku Location, nie po tym, że w przeglądarce otworzyła się właściwa strona. Przeglądarka pokazuje nową stronę także przy kodzie 302 i przy przekierowaniu JavaScriptem, a Google traktuje te przypadki inaczej niż 301.
Terminal: curl -I. To polecenie pobiera same nagłówki odpowiedzi, bez treści strony. Wywołujesz je ze starym adresem i szukasz dwóch linii: kodu 301 i nagłówka Location z nowym adresem. Tak wygląda odpowiedź roseo.com.pl na adres bez https://, który serwer LiteSpeed przekierowuje na wersję szyfrowaną:
$ curl -sI http://roseo.com.pl/
HTTP/1.1 301 Moved Permanently
Server: LiteSpeed
Location: https://roseo.com.pl/Wariant curl -IL podąża za przekierowaniami i wypisuje nagłówki każdego przeskoku po kolei. Jeśli na liście są dwa lub trzy kody 301 przed końcowym 200, reguła prowadzi do adresu, który sam jest przekierowywany; popraw ją tak, żeby wskazywała adres końcowy.

Przeglądarka: karta Network. Bez terminala sprawdzisz przekierowanie w narzędziach deweloperskich: F12 → Network → zaznacz „Preserve log” → wpisz stary adres w pasku i wciśnij Enter. Pierwsze żądanie na liście ma w kolumnie Status kod 301, a w zakładce Headers nagłówek Location. Test rób w oknie prywatnym, bo przeglądarka zapamiętuje odpowiedź 301 i przy kolejnym wejściu idzie pod nowy adres bez pytania serwera.
Cache strony. Jeśli strona ma LiteSpeed Cache albo inną wtyczkę buforującą, po dodaniu reguły wyczyść pamięć podręczną (LiteSpeed Cache: Zarządzaj → Wyczyść wszystko). Bez tego serwer potrafi oddać pod starym adresem zapisaną kopię strony zamiast przekierowania, a test pokaże kod 200.
Google Search Console. Po kilku dniach robot odczyta przekierowanie: stary adres pojawia się w raporcie Strony z przyczyną „Strona zawiera przekierowanie”, a w raporcie Statystyki indeksowania rośnie udział odpowiedzi 301. Ten sam komunikat zobaczysz w narzędziu Sprawdzenie adresu URL po wpisaniu starego adresu.
Jakie błędy najczęściej psują przekierowanie 301?
Najczęściej przekierowanie psuje literówka w adresie, brak ukośnika, reguła wskazująca na kolejne przekierowanie i stary cache. Każdy z tych błędów wychodzi w teście curl -I, dlatego rób go po każdej dodanej regule.
- Literówka lub inny ukośnik. Adres źródłowy
/stara-ofertabez ukośnika nie łapie wejść na/stara-oferta/, gdy dopasowanie jest dokładne. W Rank Math dopisujesz oba warianty do jednej reguły, w.htaccessdodajesz dwie linie. - Pętla. Jedna reguła prowadzi z A na B, a druga z B na A. Przeglądarka przerywa z komunikatem o zbyt wielu przekierowaniach, a Search Console pokazuje wiersz „Błąd przekierowania” w raporcie Strony. Naprawę krok po kroku opisuje wpis o tym, jak rozwiązać pętlę przekierowań w WordPressie.
- Łańcuch zamiast reguły wprost. Stary adres kieruje na adres, który sam ma przekierowanie. Robot Google podąża domyślnie za maksymalnie 10 przeskokami, ale każdy przeskok to osobne żądanie z budżetu indeksowania. Każda reguła ma prowadzić od razu na końcowy adres z kodem 200.
- Reguły w kilku miejscach. Ten sam adres ustawiony we wtyczce, w
.htaccessi w panelu hostingu: działa reguła z serwera, więc przy zmianie celu poprawiasz niewłaściwą. - Zbuforowana stara strona. LiteSpeed Cache oddaje pod starym adresem zapisaną wcześniej kopię strony; po dodaniu reguły wyczyść cache wtyczki i przetestuj w oknie prywatnym.
- Brak kopii
.htaccess. Jeden brakujący znak w regule zatrzymuje stronę kodem 500, a bez zapasowego pliku szukasz błędu pod presją, dlatego kopię robisz przed każdą edycją. - Przekierowanie na stronę główną zamiast na odpowiednik. Google klasyfikuje przekierowanie usuniętej podstrony na stronę główną jako soft 404 i nie przenosi na nią pozycji. Adres bez zamiennika o tej samej tematyce zostaje z kodem 404 lub 410; które adresy przekierować, a które zostawić, opisuje sekcja „Kiedy stosować przekierowanie 301, a kiedy nie?” we wpisie Co to jest przekierowanie 301?.
- Niespójna wersja adresu. Adres docelowy z
http://albo bezwww, gdy strona działa nahttps://www, dokłada do reguły drugi przeskok z przekierowania serwera. Wpisuj go w tej postaci, w której strona ostatecznie się otwiera. Dwa skoki powstają też wtedy, gdy normalizacja adresu (https, „www”, ukośnik) jest rozbita na kilka reguł zamiast jednej.
Nie masz pewności, że przekierowania na Twojej stronie działają poprawnie?
Napisz do nas, sprawdzimy każdą regułę poleceniem curl i w Search Console, a błędne poprawimy.
FAQ
Tak, serwer stosuje nową regułę od następnego żądania. Jeśli test pokazuje starą stronę z kodem 200, przyczyną jest cache: wyczyść pamięć podręczną wtyczki (LiteSpeed Cache → Zarządzaj → Wyczyść wszystko) i sprawdź stary adres w oknie prywatnym przeglądarki.
Obie wtyczki mogą być aktywne, ale reguły przekierowań trzymasz w jednej z nich. Dwa źródła reguł dla tego samego adresu dają niejasne pierwszeństwo i utrudniają szukanie przyczyny, gdy przekierowanie prowadzi w złe miejsce.
W Rank Math dopisujesz kolejne adresy do pola „Source URLs” w jednej regule („Add another”), w Redirection zakładasz osobną regułę dla każdego adresu, a w .htaccess dopisujesz dla niego osobną linię Redirect 301. Dla dużej liczby adresów o wspólnym wzorcu (np. cała stara kategoria) używasz dopasowania po wyrażeniu regularnym albo RewriteRule.
Serwer nginx nie czyta .htaccess; reguły przekierowań wpisuje się wtedy w konfiguracji serwera, do której na hostingu współdzielonym dostęp ma zwykle tylko administrator lub panel hostingu z sekcją „Przekierowania”. Wtyczki Rank Math i Redirection działają niezależnie od typu serwera, bo wykonują przekierowanie w WordPressie.
Tak. Rank Math i Redirection wykonują przekierowanie przy każdym żądaniu, więc gdy skasujesz wtyczkę, stary adres znów zwraca 404. Wcześniej wyeksportuj reguły: obie wtyczki mają eksport listy przekierowań, w tym do formatu .htaccess, i te linie wklejasz do pliku na serwerze.
Źródła
- Google Search Central, „Kody stanu HTTP oraz błędy sieci i DNS wpływające na wyszukiwarkę Google” (robot podąża za maksymalnie 10 przeskokami): developers.google.com
- Google Search Central, „Przekierowania i wyszukiwarka Google”: developers.google.com
- Rank Math, baza wiedzy, moduł Redirections: rankmath.com/kb
- Redirection, dokumentacja wtyczki: redirection.me
- Apache HTTP Server, dokumentacja
mod_alias(dyrektywaRedirect): httpd.apache.org - Apache HTTP Server, dokumentacja
mod_rewrite(dyrektywaRewriteRule): httpd.apache.org

