Przekierowanie strony i domeny - rodzaje, wdrożenie i wpływ na SEO

Przekierowanie strony internetowej to technika, która kieruje użytkowników i roboty wyszukiwarki z jednego adresu URL na inny. Zanim zaczniesz, musisz wiedzieć jedno: nie każde przekierowanie działa tak samo, a ich działanie zależy od kodu odpowiedzi i miejsca konfiguracji. Serwer wysyła przeglądarce instrukcję z kodem 3xx i nowym adresem, a automatyczne przekierowanie odbywa się, zanim odwiedzający zobaczy stary adres. Poprawna konfiguracja chroni widoczność strony w wynikach wyszukiwania i zapobiega błędom 404 przy migracji, zmianie domeny czy przebudowie struktury URL. To, jaki typ przekierowania wybierzesz, decyduje, czy sygnały rankingowe i moc linków trafią pod nowy adres. Przy zmianach trwałych stosuje się przekierowanie 301, przy tymczasowych, np. pracach konserwacyjnych czy testach A/B, przekierowanie 302.
Przekierowanie domeny, podobnie jak przekierowanie pojedynczej podstrony, można skonfigurować za pomocą pliku .htaccess, w konfiguracji serwera, w panelu hostingu lub u rejestratora domeny. Przekierowania dzielimy na stałe i tymczasowe oraz na serwerowe i realizowane po stronie klienta (meta refresh, JavaScript). Kody 3xx definiuje RFC 9110, a ich wpływ na indeksację opisuje dokumentacja Google Search Central.
Rodzaje przekierowań HTTP - porównanie kodów odpowiedzi i metod żądania
Rodzaje przekierowań różnią się w dwóch kwestiach: czy zmiana jest trwała i czy przeglądarka zachowa metodę żądania (GET, POST) po przejściu pod nowy adres. Kod odpowiedzi wraz z nagłówkiem Location mówi przeglądarce i wyszukiwarce, co zrobić. Źle dobrany kod potrafi zaszkodzić SEO, bo w wynikach zostanie niewłaściwy adres.
| Kod | Nazwa | Trwałość | Zachowanie metody żądania | Typowe zastosowanie |
|---|---|---|---|---|
| 301 | Moved Permanently | Stała | Może zmienić POST na GET | Migracja domeny, zmiana struktury URL |
| 302 | Found | Tymczasowa (długo utrzymywana bywa traktowana jak stała) | Może zmienić POST na GET | Testy A/B, tymczasowa konserwacja |
| 303 | See Other | Tymczasowa | Wymusza GET niezależnie od metody wejściowej | Przekierowanie po formularzu (Post/Redirect/Get) |
| 307 | Temporary Redirect | Tymczasowa | Bezwzględnie zachowuje metodę (np. POST) | API, formularze wymagające zachowania danych żądania |
| 308 | Permanent Redirect | Stała | Bezwzględnie zachowuje metodę (np. POST) | Stała migracja z zachowaniem semantyki POST |
Przekierowanie 301 informuje, że strona została na stałe przeniesiona. Google traktuje je jako trwałe zastąpienie adresu: stary adres URL znika z wyników, a jego miejsce zajmuje docelowy. Dlatego 301 jest podstawą przy scalaniu domen, przejściu na HTTPS i przebudowie ścieżek.
Przekierowanie 302 oznacza tymczasowe przeniesienie treści. Dla wyszukiwarki to słaby sygnał, że docelowy adres ma zostać kanoniczny, więc w indeksie zwykle zostaje stary URL. Popularne twierdzenie, że 302 w ogóle nie przekazuje wartości SEO, nie jest ścisłe: Google od 2016 roku deklaruje, że żaden kod 3xx nie powoduje utraty PageRanku. Różnica dotyczy tego, który adres zobaczysz w wynikach wyszukiwania. Jeśli „tymczasowe” przekierowanie działa miesiącami, wyszukiwarka może uznać je za stałe. Ważne jest więc, by kod odpowiadał rzeczywistym planom wobec adresu.
Kody 303, 307 i 308 mają znaczenie głównie przy formularzach, API i aplikacjach webowych. Dla widoczności witryny mają mniejsze znaczenie, ale duże znaczenie dla stabilności aplikacji. Kod 303 realizuje wzorzec Post/Redirect/Get: po wysłaniu formularza metodą POST przeglądarka pobiera kolejną stronę metodą GET, więc odświeżenie nie wysyła danych ponownie. Kod 307 to precyzyjniejszy odpowiednik 302, który zawsze zachowuje metodę żądania. Kod 308 robi to samo przy zmianie trwałej, a Google traktuje go tak jak 301.

Wpływ przekierowań na SEO, PageRank i budżet indeksowania
Transfer autorytetu domeny i sygnałów rankingowych (Link Juice)
Przekierowanie 301 przenosi pod docelowy adres URL niemal całą moc SEO starego adresu, czyli tzw. link juice. Wartość linków zewnętrznych i wewnętrznych, które prowadziły do starego URL-a, trafia do nowego, razem z przypisanym mu PageRankiem. Dzięki temu nowa podstrona przejmuje pozycję budowaną przez lata.
Przekierowanie działa inaczej niż tag kanoniczny. Rel="canonical" to wskazówka: obie wersje strony zostają dostępne, a algorytm wybiera, którą indeksować. Przekierowanie 301 fizycznie przenosi użytkownika pod inny adres, a stara wersja przestaje być osiągalna. Canonical stosuje się przy duplikatach, które mają działać dalej (np. adresy z parametrami), przekierowanie wtedy, gdy stary adres ma zniknąć. Błąd w konfiguracji po migracji może zniweczyć efekty wielomiesięcznych działań, dlatego przy pozycjonowaniu stron mapę przekierowań sprawdzamy przed każdą zmianą struktury.
Optymalizacja budżetu indeksowania (Crawl Budget) i wskaźnika TTFB
Każde zbędne przekierowanie to dodatkowe żądanie, które robot Google musi wykonać, zanim dotrze do treści. Wydłuża to czas ładowania i zużywa crawl budget, czyli liczbę adresów, które Googlebot może odwiedzić w domenie w określonym czasie. Googlebot przechodzi maksymalnie 10 kolejnych przekierowań. Jeśli łańcuch jest dłuższy, robot przerywa próbę i nie dociera do treści. Dla użytkownika każdy skok to kolejne opóźnienie, co pogarsza doświadczenie użytkowników, bo wydłuża czas do pierwszego bajtu treści (TTFB) docelowej podstrony.
Brak przekierowania dla usuniętego zasobu kończy się błędem 404. Takie adresy wypadają z wyników, a użytkownicy klikający stare linki trafiają w ślepy zaułek. Równie groźne jest przekierowanie na podstronę niezwiązaną tematycznie ze starym adresem. Google może uznać je za soft 404, czyli stronę, która formalnie działa, ale nie odpowiada na to, czego szukał użytkownik. Podstrona traci wtedy widoczność mimo poprawnego kodu 301.
Problem dotyczy szczególnie sieci placówek. W pozycjonowaniu lokalnym przekierowanie zamkniętego oddziału na stronę główną zamiast na najbliższy oddział w regionie zwykle kończy się utratą widoczności na frazy z nazwą miasta.
Najczęstsze scenariusze zastosowania przekierowań URL
Przekierowania są istotne podczas migracji strony internetowej, zmiany domeny, wdrożenia SSL i porządkowania adresów po usunięciu treści. Przekierowanie URL musi odpowiadać charakterowi zmiany, trwałej lub tymczasowej, i zachowywać spójność tematyczną między starym a docelowym adresem URL.
- Migracja z HTTP na HTTPS. Po instalacji certyfikatu SSL wdróż globalne przekierowanie 301 dla wszystkich adresów w domenie, bez wyjątków. Bez tej reguły w indeksie zostają dwie wersje protokołu, co rozprasza sygnały rankingowe. Rozważ też HSTS preloading: przeglądarka łączy się od razu przez HTTPS, bez dodatkowego przeskoku i z mniejszym ryzykiem ataków typu downgrade.
- Ujednolicenie wersji z www i bez www. Jedna reguła wymusza jedną wersję adresu domeny. Bez niej serwer odpowiada identyczną treścią pod dwoma adresami, a wyszukiwarka widzi duplikat. Tag kanoniczny strony internetowej warto zostawić, ale to przekierowanie 301 fizycznie usuwa zduplikowaną wersję z obiegu.
- Restrukturyzacja adresów w sklepie internetowym. Zmiana kategorii, np. przy migracji na nową platformę e-commerce, wymaga mapowania 1:1 każdego starego adresu URL na jego nowy odpowiednik. Reguły twórz pojedynczo albo grupowo przez wzorce regex. Masowe przekierowanie na stronę główną kategorii obniża trafność i wartość przekazywanych sygnałów.
- Wycofanie produktu lub usunięcie artykułu. Gdy podstrona trwale traci rację bytu, skieruj ją na najbliższy tematycznie odpowiednik: produkt zastępczy z tej samej kategorii albo zaktualizowany artykuł. Przekierowanie na stronę główną ryzykuje klasyfikację jako soft 404. Przy konsolidacji podstron o podobnej treści zasada jest ta sama: słabsze adresy kierujesz na najmocniejszy.
Każde nowe przekierowanie to sygnał, by zaktualizować też linki wewnętrzne, tak by prowadziły prosto pod docelowy adres. Przekierowanie ratuje ruch z zewnątrz, ale w obrębie witryny nie ma powodu, by robot i użytkownik wykonywali dodatkowy skok.

Sprawdźmy potencjał Twojej strony
Podaj adres swojej strony i e-mail - odezwiemy się z konkretną analizą, bez zobowiązań.
Jak zrobić przekierowanie strony na poziomie serwera
Zalecaną metodą są przekierowania serwerowe, a przy zmianach trwałych kod 301. Reguła w Apache, Nginx lub PHP wykonuje się, zanim przeglądarka albo roboty wyszukiwarki otrzymają jakąkolwiek treść strony. Dlatego jest najszybsza i najbardziej niezawodna, co potwierdzają wytyczne Google Search Central dotyczące migracji.
Konfiguracja serwera Apache w pliku .htaccess
Plik .htaccess jest kluczowy dla konfiguracji przekierowań na serwerze Apache. Przekierowanie 301 korzysta z modułu mod_rewrite i dyrektyw RewriteRule. Blok reguł zaczyna się od linii RewriteEngine on, bez której Apache ignoruje wszystkie zapisane reguły. Podstawowe przekierowanie jednego adresu na drugi wygląda tak:
RewriteEngine on
RewriteRule ^stara-strona\.html$ /nowa-strona.html [R=301,L]
Flaga R=301 wymusza trwałe przekierowanie, a L (Last) zatrzymuje przetwarzanie kolejnych reguł. Bez niej Apache próbuje dopasować adres do następnych wzorców, co w rozbudowanych plikach prowadzi do nieoczekiwanych łańcuchów. Warunki, np. przekierowanie tylko ruchu bez szyfrowania, definiuje dyrektywa RewriteCond:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Przy setkach adresów strony internetowej, np. po przebudowie katalogów sklepu, ręczne pisanie reguł jest czasochłonne. Generator przekierowań 301 tworzy blok reguł na podstawie listy starych i nowych adresów, co zmniejsza ryzyko błędu w wyrażeniach regularnych. Pamiętaj, że jedno źle ustawione przekierowanie w .htaccess może zablokować dostęp do całej witryny, więc przed wdrożeniem zrób kopię pliku.
Reguły przekierowań rewrite i return w Nginx
Nginx nie obsługuje plików .htaccess. Reguły definiuje się centralnie w nginx.conf lub w bloku server danej witryny. Proste przekierowania obsługuje dyrektywa return 301, która nie wymaga analizy wyrażeń regularnych i działa szybciej niż rewrite:
server {
listen 80;
server_name stara-domena.pl;
return 301 https://nowa-domena.pl$request_uri;
}
Dyrektywa rewrite, odpowiednik mod_rewrite, jest potrzebna, gdy trzeba przepisać fragment adresu z zachowaniem reszty ścieżki:
rewrite ^/stara-kategoria/(.*)$ /nowa-kategoria/$1 permanent;
Słowo permanent odpowiada kodowi 301, a redirect kodowi 302. Wybór musi odzwierciedlać rzeczywisty charakter zmiany. Po każdej zmianie w nginx.conf sprawdź składnię poleceniem nginx -t i przeładuj konfigurację. Apache czyta .htaccess przy każdym żądaniu, Nginx wymaga przeładowania.
Wdrożenie przekierowań w WordPressie i skryptach PHP
W przypadku stron opartych na WordPressie nie musisz edytować plików serwera. Wtyczki takie jak Redirection, Rank Math czy Yoast SEO Premium pozwalają dodać przekierowanie w panelu administracyjnym i dają łatwe zarządzanie setkami reguł. Rozwiązanie jest szczególnie przydatne dla właścicieli stron, którzy nie mają dostępu do serwera, oraz przy blogach i serwisach firmowych, w których redakcja często zmienia adresy wpisów. Przy dużym ruchu reguły serwerowe są jednak wydajniejsze, bo nie wymagają uruchomienia WordPressa.
W czystym PHP przekierowanie realizuje funkcja header(), wywołana przed wysłaniem jakiejkolwiek treści do przeglądarki. Nawet jedna spacja wypisana wcześniej powoduje błąd „headers already sent”:
<?php
header('Location: https://przyklad.pl/nowa-strona', true, 301);
exit();
Trzeci argument PHP header ustawia kod statusu odpowiedzi. Wartość 301 oznacza przekierowanie trwałe, a exit() zatrzymuje wykonanie dalszej części skryptu.

Jak ustawić przekierowanie domeny na poziomie DNS i panelu hostingu
Przekierowanie domeny bez utrzymywania hostingu dla starego adresu URL ustawia się u rejestratora (forwarding), w panelu hostingowym (cPanel, DirectAdmin) albo w regułach Cloudflare. Rekordy DNS same niczego nie przekierowują: wskazują jedynie, dokąd ma trafić ruch, a kod 301 wysyła dopiero maszyna docelowa lub usługa rejestratora. Wybór metody zależy od specyfiki projektu: czy stara domena ma zniknąć z infrastruktury, czy tylko kierować na nowy zasób. Przekierowanie domeny na inną domenę u rejestratora wymaga najmniej pracy, a przekierowanie domeny przez własny serwer daje najwięcej kontroli.
- Forwarding domeny u rejestratora. Usługa kieruje ruch pod docelowy adres bez osobnego pakietu hostingowego. Wystarczy podać nazwę domeny docelowej lub konkretny adres i typ przekierowania (301 lub 302). Sposób ustawiania opcji różni się między rejestratorami, ale zasada jest ta sama. Niektórzy rejestratorzy oferują maskowanie adresu w przeglądarce, ale do SEO ta opcja się nie nadaje, bo działa na ramkach. To najprostsza droga, gdy przekierowanie domeny na inną stronę ma być trwałe.
- Rekord DNS A wskazujący na adres IP. Rekord A kieruje domenę na adres IP serwera, na którym ustawia się regułę przekierowania w Apache lub Nginx. Wpis wymaga nazwy hosta (zwykle @ dla domeny głównej) i adresu IPv4, a wartość TTL decyduje, jak długo serwery DNS przechowują go w pamięci. Metoda sprawdza się, gdy przekierowanie domeny ma obsługiwać Twój własny serwer.
- Rekord DNS CNAME jako alias nazwy hosta. CNAME wskazuje subdomenę (np. shop.przyklad.pl) na nazwę hosta innego dostawcy, np. platformy e-commerce. Wymaga nazwy aliasu i docelowej nazwy hosta, nie adresu IP. Nie może współistnieć z innymi rekordami dla tej samej nazwy, co trzeba wiedzieć, zanim zechcesz go skonfigurować, dlatego zwykle nie da się go ustawić dla domeny głównej. To dobre rozwiązanie, gdy dostawca zmienia adresy IP bez powiadamiania klienta.
Przekierowania po stronie klienta - mechanizm Meta Refresh, JavaScript i ryzyka ramek
Przekierowania po stronie klienta wykonuje przeglądarka, więc działają dopiero po wczytaniu strony źródłowej. Wyszukiwarka je rozpoznaje, ale Google zaleca stosowanie ich tylko wtedy, gdy przekierowanie serwerowe jest niemożliwe, np. na hostingu bez dostępu do konfiguracji.
Zasada działania Meta Refresh i interpretacja czasu przez Google
Meta refresh to przekierowanie z poziomu kodu HTML: znacznik meta http-equiv="refresh" w sekcji head, który po zadanym czasie przeładowuje przeglądarkę pod inny adres:
<meta http-equiv="refresh" content="0; url=https://przyklad.pl/nowa-strona">
Liczba w atrybucie content decyduje o interpretacji. Opóźnienie 0 Google traktuje jak przekierowanie stałe, zbliżone do 301. Wartość większa od zera, np. content="5; url=...", oznacza dla wyszukiwarki przekierowanie tymczasowe, nawet jeśli administrator chciał trwale przenieść zasób.
Meta refresh nie jest zalecanym sposobem przekierowania w SEO. Działa wolniej, bo przeglądarka musi najpierw pobrać i przetworzyć stronę źródłową, a opóźnione odświeżenie pogarsza doświadczenie użytkowników.
JavaScript redirect to przekierowanie sterowane skryptem w przeglądarce, np. przez window.location. Roboty wyszukiwarki wykonają je dopiero po wyrenderowaniu strony, a renderowanie może nastąpić z opóźnieniem albo się nie udać, dlatego to ostatnia opcja na liście. Najwięcej ryzyka niosą ramki (frame forwarding): pasek adresu pokazuje dotychczasowy adres, a treść ładuje się z innej lokalizacji. Wyszukiwarka nie widzi wtedy przekierowania na inną stronę, tylko pustą stronę z ramką, więc docelowa treść nie buduje widoczności w Google pod żadnym adresem.
Diagnostyka błędów - jak wykrywać i eliminować pętle oraz łańcuchy przekierowań
Łańcuchy przekierowań i pętle spowalniają ładowanie strony, marnują crawl budget i mogą całkowicie zablokować indeksację. Diagnostyka sprowadza się do sprawdzenia, czy każde przekierowanie tworzy jedną, bezpośrednią relację między starym a docelowym adresem.
Dwa podstawowe błędy mają różne przyczyny i skutki:
- Redirect chain (łańcuch przekierowań). Sekwencja kilku przeskoków (np. A → B → C → D) przed dotarciem do treści. Zwykle powstaje, gdy kolejne migracje dokładają reguły na starych regułach. Każdy skok to dodatkowe zapytanie, które spowalnia stronę i zużywa budżet indeksowania.
- Redirect loop (pętla przekierowań). Adres docelowy odsyła z powrotem do źródłowego (np. A → B → A), więc zapytanie krąży bez końca. Przy przekierowaniu domeny na siebie samą albo sprzecznych regułach Chrome pokazuje błąd ERR_TOO_MANY_REDIRECTS, czyli sieciowy błąd 310. Pętla uniemożliwia dostęp do treści zarówno użytkownikowi, jak i robotowi, a strona z czasem traci pozycje.
Poprawność kodów i długość łańcucha sprawdzisz kilkoma narzędziami:
- Google Search Console. Raport indeksowania stron i narzędzie do sprawdzania adresu URL pokazują, czy robot Google napotkał błąd przekierowania, oraz jaki adres i status zarejestrował przy ostatnim skanowaniu.
- cURL. Polecenie curl -I -L adres_url zwraca nagłówki HTTP każdego skoku w łańcuchu wraz z kodami (301, 302, 200). Tak najszybciej znajdziesz regułę, która psuje ścieżkę.
- Crawlery SEO (np. Screaming Frog, Sitebulb). Skan całej domeny wykrywa wszystkie łańcuchy i pętle naraz i podaje liczbę przeskoków dla każdego adresu. To podstawowe narzędzie przy audytach dużych sklepów.
Zanim dodasz nowe przekierowanie, sprawdź, czy adres źródłowy nie jest już celem innej reguły. Każdy wykryty łańcuch skróć do jednego, bezpośredniego przekierowania: adres A ma prowadzić prosto do D, z pominięciem B i C. Diagnostyka przekierowań powinna być stałym punktem audytu technicznego strony internetowej. Najczęstsze błędy, które w nim znajdujemy, to reguły z poprzednich migracji, o których nikt już nie pamięta, i przekierowania między wersjami z www i bez www, niezauważone do pierwszego spadku widoczności.

FAQ
Czym różni się przekierowanie 301 od 302 pod kątem SEO?
Przekierowanie 301 informuje Google o trwałej zmianie adresu: nowy URL zastępuje stary w indeksie i przejmuje jego sygnały. Przekierowanie 302 jest stosowane dla tymczasowych zmian, np. testów A/B lub prac konserwacyjnych, a w indeksie zwykle zostaje stary adres.
Co to jest kod 308 i czym różni się od 301?
Kod 308 to stałe przekierowanie wprowadzone w 2015 roku (RFC 7538, obecnie część RFC 9110). Google traktuje go tak samo jak 301. Różnica jest techniczna: 308 zawsze zachowuje metodę żądania (POST pozostaje POST), a 301 może zmienić ją na GET.
Jak długo powinno być utrzymywane przekierowanie 301 po migracji domeny?
Google zaleca utrzymywać przekierowanie domeny po migracji tak długo, jak to możliwe, zwykle co najmniej rok. Przeniesienie witryny wymaga cierpliwości: przez ten czas wyszukiwarka przenosi sygnały, a użytkownicy ze starych linków i zakładek trafiają pod właściwy adres. Starą domenę warto odnawiać jeszcze dłużej, żeby nikt jej nie przejął.