Zmieniasz adresy podstron, przenosisz sklep na nowy system albo łączysz dwie stare kategorie w jedną – i nagle ruch z Google leci w dół jak kamień. W większości przypadków, które trafiają do nas na audyt, winowajca jest jeden: źle zrobione (albo całkiem pominięte) przekierowania 301. To one decydują, czy wartość wypracowana latami przejdzie na nowy adres, czy wyparuje razem ze starym URL-em.
Dobra wiadomość jest taka, że 301 to narzędzie proste w działaniu – pod warunkiem że nie zbudujesz z nich pętli, łańcuchów i mapowania „wszystko na stronę główną”. Poniżej pokazuję, czym 301 różni się od 302, co dzieje się z pozycjami, jak mapować stare adresy jeden do jednego i jak wdrożyć przekierowania na WordPressie oraz bezpośrednio na serwerze.
Spis treści
- Czym jest przekierowanie 301 i kiedy go potrzebujesz
- 301 vs 302 – kluczowa różnica, która rozstrzyga o SEO
- Przekierowanie 301 a SEO – co dzieje się z pozycjami
- Mapowanie starych adresów 1:1 – serce każdej migracji
- Jak zrobić przekierowanie 301 na WordPressie
- Przekierowania 301 na serwerze – .htaccess i nginx
- Łańcuchy i pętle przekierowań – czego unikać
- Najczęstsze błędy, które kosztują pozycje
- Podsumowanie
- Najczęściej zadawane pytania
Czym jest przekierowanie 301 i kiedy go potrzebujesz
Przekierowanie 301 to sygnał wysyłany przez serwer, który mówi przeglądarce i robotom Google jedno: „ten adres przeniósł się na stałe pod nowy adres”. Liczba 301 to kod statusu HTTP oznaczający „moved permanently” – przeniesiono na stałe. Użytkownik nawet tego nie zauważa, bo trafia od razu w nowe miejsce, a wyszukiwarka rozumie, że ma zaktualizować swój indeks.
Kiedy faktycznie go potrzebujesz? Najczęstsze sytuacje z naszej praktyki to:
- Zmiana adresów podstron – przebudowa struktury URL, nowe nazwy kategorii, porządki w sklepie.
- Migracja strony – przejście z WordPressa na inny system, ze starego sklepu na nowy, zmiana domeny lub przejście z http na https.
- Łączenie podstron – dwa słabe artykuły o tym samym temacie scalasz w jeden mocny i kierujesz stary URL na nowy.
- Usuwanie treści – kasujesz podstronę, ale ona ma linki i ruch, więc zamiast błędu 404 kierujesz ją na najbliższy tematycznie odpowiednik.
Najprościej zapamiętać to tak: jeśli adres znika lub się zmienia na stałe, a kiedykolwiek miał jakikolwiek ruch lub linki, należy mu się przekierowanie strony po zmianie adresu. Bez tego budujesz pod sobą dziury, w które wpada i ruch, i wypracowana moc linków.
301 vs 302 – kluczowa różnica, która rozstrzyga o SEO
To pytanie wraca przy niemal każdej migracji, więc rozłóżmy 301 vs 302 na części. Oba kody przekierowują użytkownika, ale mówią Google coś zupełnie innego:
| Cecha | 301 (Moved Permanently) | 302 (Found / Temporary) |
|---|---|---|
| Komunikat do Google | Adres zmieniony na stałe | Adres zmieniony tymczasowo |
| Co dzieje się w indeksie | Stary URL zastępowany nowym | Stary URL zostaje w indeksie |
| Przekazanie mocy linków | Tak, do nowego adresu | Zwykle zostaje przy starym |
| Kiedy stosować | Migracja, zmiana adresu, scalanie | Promocja, A/B test, czasowa niedostępność |
W skrócie: 301 przy zmianie na stałe, 302 tylko wtedy, gdy naprawdę wrócisz na stary adres. Klasyczny błąd, który widzimy na kontach, to migracja całej strony postawiona na 302 – bo tak ustawiła się domyślnie wtyczka albo developer „tak miał szybciej”. Efekt? Google miesiącami trzyma w indeksie stare adresy, nowe nie chcą się ranking, a właściciel nie rozumie, czemu pozycje stoją w miejscu.
Pro-tip: jeśli nie masz pewności, czy zmiana jest stała, zadaj sobie jedno pytanie – czy w ciągu najbliższego roku wrócę na stary adres? Jeśli odpowiedź brzmi „nie”, to jest 301. 302 zostaw dla sytuacji typu „strona w przebudowie, wróci za tydzień”.
Przekierowanie 301 a SEO – co dzieje się z pozycjami
Temat przekierowanie 301 a SEO obrósł mitami, więc trzymajmy się faktów. Google od lat potwierdza, że poprawnie wdrożone 301 przekazuje sygnały rankingowe do nowego adresu – łącznie z mocą zdobytych linków. Inaczej mówiąc: jeśli stara podstrona była na trzeciej pozycji na ważną frazę, dobrze przekierowana nowa ma realną szansę utrzymać tę pozycję.
Słowo „poprawnie” jest tu kluczowe. Z naszej praktyki migracje psują się nie dlatego, że 301 nie działa, tylko dlatego że:
- stare adresy mapuje się na stronę główną zamiast na odpowiednik treści,
- część adresów w ogóle pomija (zostają jako 404),
- przekierowania ustawia się przez łańcuchy zamiast prosto z punktu A do punktu B.
Po migracji Google potrzebuje czasu na przetworzenie zmian. Krótkie wahania pozycji w pierwszych tygodniach są normalne – nie ma powodu cofać przekierowań ani wpadać w panikę. Robot odwiedza stare adresy, widzi status 301 i aktualizuje indeks, a przy większych serwisach trwa to kilka tygodni. Pomaga tu dobry budżet indeksowania i czysta struktura.
Jeżeli widoczność nie wraca po kilku tygodniach, to znak, że coś w mapowaniu albo w technicznej warstwie jest nie tak – i tu pojawia się potrzeba technicznego audytu SEO. Całość domykamy w ramach pozycjonowania stron internetowych.
Mapowanie starych adresów 1:1 – serce każdej migracji
Tu wygrywa się albo przegrywa migrację. Mapowanie 1:1 oznacza, że każdy stary adres dostaje swój dokładny odpowiednik na nowej stronie – kategoria na kategorię, produkt na produkt, artykuł na artykuł. Nie „wszystko na stronę główną”, nie „byle gdzie, żeby nie było 404”.
Tak to robimy krok po kroku, gdy przygotowujemy klienta do zmiany:
- Zrób pełną listę starych adresów. Pobierz je z Google Search Console (raport indeksowania), z mapy XML, z analityki i z crawlera (np. Screaming Frog). Łącz źródła, bo żadne pojedyncze nie pokaże wszystkiego.
- Dopisz nowy adres do każdego starego. Najlepiej w arkuszu: kolumna „stary URL”, kolumna „nowy URL”, kolumna „priorytet” (ile miał ruchu i linków).
- Dla treści bez odpowiednika wskaż najbliższy temat. Skasowany produkt? Kieruj na kategorię, nie na stronę główną. Stary artykuł, którego nie przenosisz? Kieruj na nowszy o tym samym temacie.
- Zachowaj strukturę adresów tam, gdzie się da. Im mniej zmian w samych URL-ach, tym mniej przekierowań i tym mniejsze ryzyko. Przy okazji warto uporządkować przyjazne adresy URL, ale rozsądnie, nie „przy okazji zmieńmy wszystko”.
Pro-tip: mapowanie „wszystko na stronę główną” to najszybszy sposób na utratę pozycji. Google traktuje masowe przekierowania na home jak miękkie 404 i nie przekazuje wtedy mocy linków. Reguła brzmi: kieruj na treść najbardziej zbliżoną tematycznie do tej, którą użytkownik chciał zobaczyć.
Jak zrobić przekierowanie 301 na WordPressie
Najczęstsze pytanie brzmi: jak zrobić przekierowanie 301 bez grzebania w kodzie? Na WordPressie najprościej przez wtyczkę. Sprawdzone opcje to Redirection (darmowa, dedykowana) albo moduł przekierowań w Rank Math czy Yoast SEO Premium, jeśli już ich używasz.
Proces w praktyce wygląda tak:
- Zainstaluj i włącz wtyczkę (np. Redirection).
- Wejdź w ustawienia przekierowań i dodaj nową regułę: w polu „źródłowy URL” wklej stary adres, w polu „docelowy URL” nowy.
- Upewnij się, że typ przekierowania to 301 – Moved Permanently (a nie 302).
- Zapisz i przetestuj – wpisz stary adres w przeglądarce w trybie incognito i sprawdź, czy lądujesz na właściwej nowej podstronie.
Wtyczka Redirection ma jeszcze jedną zaletą – automatycznie loguje błędy 404, czyli adresy, na które ktoś wchodzi, a których już nie ma. To gotowa lista zaległych przekierowań do dorobienia. Zaglądaj tam co kilka tygodni po większej zmianie.
Jeśli przekierowań są setki (typowo przy migracji sklepu), nie klikaj ich ręcznie. Większość wtyczek pozwala zaimportować reguły z pliku CSV – i tu wraca arkusz z mapowaniem, który zrobiłeś wcześniej. Przy budowie nowej strony od zera zwykle składamy ten plik równolegle z projektem, w ramach tworzenia strony WWW, żeby w dniu uruchomienia wszystko było gotowe do wgrania.
Przekierowania 301 na serwerze – .htaccess i nginx
Wtyczka jest wygodna, ale przekierowania na poziomie serwera są szybsze i nie zależą od żadnego dodatku. Jeśli masz dostęp do plików konfiguracyjnych, warto je tam ustawić – zwłaszcza przy zmianie domeny lub przejściu na https.
Na serwerze Apache (plik .htaccess) pojedyncze przekierowanie wygląda tak:
Redirect 301 /stara-podstrona/ https://twojadomena.pl/nowa-podstrona/
A wymuszenie https i wersji bez www dla całej domeny tak:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://twojadomena.pl%{REQUEST_URI} [R=301,L]
Na serwerze nginx ten sam efekt osiąga się w bloku konfiguracji:
server {
listen 80;
server_name twojadomena.pl www.twojadomena.pl;
return 301 https://twojadomena.pl$request_uri;
}
Jedna ważna uwaga z naszej praktyki: w pliku .htaccess nie mieszaj dyrektyw Redirect i RewriteRule bez pomysłu, bo łatwo zrobić z tego pętlę. Po każdej zmianie testuj kilka kluczowych adresów i sprawdzaj zwracany kod statusu – narzędziem online, rozszerzeniem do przeglądarki albo komendą curl -I. Liczy się jedno: ma wyjść czyste 301, a nie 302 albo 301 prowadzące do kolejnego 301.
Pro-tip: przed dotknięciem
.htaccesszrób jego kopię. Literówka w tym pliku potrafi położyć całą stronę (błąd 500), a kopia to różnica między „wracam do działania w 10 sekund” a „panika na produkcji”.
Łańcuchy i pętle przekierowań – czego unikać
Łańcuchy przekierowań to sytuacja, w której adres A kieruje na B, B na C, a C dopiero na finalny D. Każdy taki skok to dodatkowy czas ładowania dla użytkownika i dodatkowa praca dla robota Google – a przy dłuższych łańcuchach wyszukiwarka może przestać podążać dalej i nie dotrzeć do strony docelowej.
Jak takie łańcuchy powstają? Zwykle warstwami – jedna migracja w 2023, druga w 2024, trzecia w 2026, każda dorzuca swoje przekierowanie na poprzednie. Po latach masz drabinę, której nikt już nie pamięta. Zasada jest prosta: zawsze kieruj stary adres prosto na finalny adres docelowy, z pominięciem etapów pośrednich. Jeśli A historycznie szło na B, a B teraz idzie na D, popraw regułę dla A, żeby od razu prowadziła do D.
Druga pułapka to pętla przekierowań – A kieruje na B, a B z powrotem na A. Wtedy przeglądarka pokazuje błąd „zbyt wiele przekierowań” i strona w ogóle się nie otwiera. To prawie zawsze efekt sprzecznych reguł: jedna w panelu CMS, druga w .htaccess, trzecia w ustawieniach https. Dlatego trzymaj przekierowania w jednym miejscu, a nie w trzech naraz.
Łańcuchy i pętle najszybciej wyłapuje crawler (Screaming Frog, Sitebulb) i raport „Strony z przekierowaniem” w Google Search Console. Skanujemy to standardowo w ramach audytu strony WWW – bo łańcuch przekierowań to jeden z tych cichych problemów, których nie widać gołym okiem, a potrafią spowalniać i stronę, i jej indeksację.
Najczęstsze błędy, które kosztują pozycje
Oto lista rzeczy, które najczęściej widzimy, gdy ktoś trafia do nas po nieudanej migracji. Każda z nich da się naprawić, ale lepiej jej w ogóle nie popełnić:
- Brak mapowania – przekierowanie wszystkiego na stronę główną. Google traktuje to jak miękkie 404 i nie przekazuje mocy linków.
- Użycie 302 zamiast 301 przy stałej zmianie. Stare adresy zostają w indeksie, nowe nie chcą się rankować.
- Pominięte adresy. Część starych URL-i zostaje jako 404, bo nikt nie zrobił pełnej listy z kilku źródeł.
- Łańcuchy przekierowań. A na B na C – zamiast A prosto na C.
- Brak aktualizacji linków wewnętrznych. Menu i linki w treści nadal prowadzą na stare adresy, więc strona sama generuje sobie przeskoki. Po migracji warto przejrzeć linkowanie wewnętrzne i podmienić je na nowe, finalne adresy.
- Brak aktualizacji mapy XML. W mapie zostają stare URL-e, co miesza robotowi w głowie. Wygeneruj nową mapę i zgłoś ją w Search Console.
- Brak weryfikacji po wdrożeniu. Nikt nie sprawdził, czy przekierowania faktycznie zwracają 301. Test 30 kluczowych adresów to absolutne minimum.
Podsumowanie
Przekierowania 301 to jeden z tych elementów SEO, które łatwo pominąć przy zmianie strony – a ich brak albo złe wdrożenie potrafi zniszczyć pozycje wypracowane przez lata. Trzy rzeczy, na których stoją poprawne 301: mapowanie jeden do jednego (nie „wszystko na home”), prosta ścieżka bez łańcuchów i weryfikacja po wdrożeniu. Resztę – WordPress, serwer, plik CSV z regułami – można ogarnąć krok po kroku zgodnie z tym, co opisałem wyżej.
Jeśli planujesz migrację albo zmianę struktury adresów i chcesz mieć pewność, że zrobisz to bez utraty ruchu – napisz do nas. Przeprowadzimy Cię przez cały proces.
Najczęściej zadawane pytania
Czy przekierowanie 301 przekazuje pozycje w Google?
Tak. Poprawnie wdrożone 301 przekazuje do nowego adresu sygnały rankingowe i moc zdobytych linków. Warunkiem jest mapowanie na odpowiednik treści (nie na stronę główną) i brak łańcuchów. Po zmianie Google potrzebuje kilku tygodni na przetworzenie – krótkie wahania pozycji są normalne.
Czym różni się 301 od 302?
301 mówi Google, że adres zmienił się na stałe, więc stary URL jest zastępowany nowym i moc linków przechodzi dalej. 302 oznacza zmianę tymczasową – stary adres zostaje w indeksie. Przy migracji i zmianie adresów używaj zawsze 301. 302 zostaw na sytuacje, gdy realnie wrócisz na stary adres.
Jak zrobić przekierowanie 301 na WordPressie?
Najprościej przez wtyczkę – Redirection, Rank Math lub Yoast SEO Premium. Dodajesz regułę: stary adres jako źródło, nowy jako cel, typ 301. Przy większej liczbie adresów importujesz reguły z pliku CSV zamiast wpisywać je ręcznie. Po wszystkim testujesz kilka adresów w trybie incognito.
Czy stare przekierowania można kiedyś usunąć?
Lepiej ich nie kasować, dopóki stare adresy mają jakikolwiek ruch lub linki z zewnątrz. Bezpieczna zasada to trzymać 301 co najmniej rok, a przy ważnych podstronach z linkami – na stałe. Usunięcie przekierowania przywraca błąd 404 i traci się przekazywaną moc.
Dlaczego po migracji spadł mi ruch z Google?
Najczęstsze przyczyny to brak mapowania 1:1, użycie 302 zamiast 301, pominięte adresy zostawione jako 404 albo łańcuchy przekierowań. Zacznij od sprawdzenia raportów w Search Console i przeskanowania strony crawlerem. Jeśli problem nie ustępuje po kilku tygodniach, to znak na techniczny audyt.