Jak przekierować stronę po zmianie adresu URL

dowiedz się

Zmiana adresów URL w serwisie to operacja, która wymaga precyzyjnego planu: od przygotowania mapy starych i nowych ścieżek, przez wdrożenie przekierowań, aż po testy, monitorowanie i utrzymanie. Dobrze zrealizowana migracja ochroni ruch, widoczność w wyszukiwarkach oraz wygodę użytkowników. W tym poradniku znajdziesz instrukcje krok po kroku dla popularnych serwerów i platform, listy kontrolne, gotowe reguły oraz praktyczne wskazówki, dzięki którym przeniesiesz treści bez zbędnych strat.

Plan i mapa przekierowań: fundament udanej migracji

Inwentaryzacja adresów i priorytety

Zacznij od zebrania pełnej listy starych adresów URL. Skorzystaj z logów serwera, eksportu z CMS, pliku sitemap, narzędzi typu crawler oraz danych z analityki. Oznacz priorytetowe strony (najczęściej odwiedzane, z największą liczbą linków przychodzących, strony konwersyjne). Ustal, które adresy mają bezpośrednie odpowiedniki, a które wymagają przekierowania do stron nadrzędnych (np. kategorii) lub do treści najbardziej zbliżonej tematycznie. Unikaj masowego kierowania wszystkiego na stronę główną.

Dobór kodu odpowiedzi i typów przekierowań

  • Trwałe przekierowania 301 — stosuj, gdy przenosisz content na stałe lub zmieniasz strukturę adresów.
  • Tymczasowe 302 — używaj tylko, gdy zmiana jest chwilowa (np. testy A/B lub krótkotrwałe wyłączenie). Długofalowo zamień na 301.
  • Trwałe zachowujące metodę 308 — przydatne w API lub tam, gdzie chcesz zachować metodę i body żądania.

W praktyce, w przypadku migracji treści serwisu, najbezpieczniej jest stosować 301. Tylko wyjątkowo sięgaj po 302/308.

Mapowanie jeden do jednego i reguły wzorców

Dla kluczowych podstron przygotuj klasyczne mapowanie 1:1. W pozostałych przypadkach stosuj wzorce (regex), np. przeniesienie całej sekcji /blog/* do /poradnik/*, zachowując „ogon” ścieżki. Ustal zasady dla:

  • zmiany domeny (example.com → example.pl),
  • www → non-www (lub odwrotnie),
  • http → HTTPS,
  • dodania/usunięcia ukośnika na końcu (/produkt/ vs /produkt),
  • zmiany wielkości liter i znaków diakrytycznych,
  • zachowania parametrów zapytania (utm, filtry), aby nie utracić śledzenia kampanii.

Zasady porządku i bezpieczeństwa

  • Unikaj łańcuchów (A→B→C). Zawsze kieruj A→C, gdy to możliwe.
  • Eliminuj pętle (A→B i B→A). Testuj każdy wzorzec.
  • Nie przekierowuj na 404. Jeżeli treść została trwale usunięta bez zamiennika, rozważ 410.
  • Zadbaj o kolejność reguł: od najbardziej szczegółowych do ogólnych.
  • Oceń wpływ cache. Pamiętaj, że przeglądarki i pośrednicy mogą zapamiętać 301 na długo.

Wdrożenie przekierowań na popularnych serwerach i platformach

Apache (.htaccess i VirtualHost)

Najprościej użyć .htaccess z włączonym mod_rewrite. Umieść plik w katalogu głównym witryny. Kolejność reguł ma znaczenie. Przykłady:

  • Włącz silnik: RewriteEngine On
  • HTTP → HTTPS: RewriteCond %{HTTPS} off; RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
  • non-www → www: RewriteCond %{HTTP_HOST} ^example.com$ [NC]; RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
  • Przeniesienie katalogu: RewriteRule ^blog/(.*)$ /poradnik/$1 [R=301,L]
  • Pojedyncza strona: Redirect 301 /stara-strona /nowa-strona

W konfiguracji VirtualHost możesz przenieść reguły bezpośrednio do sekcji serwera i uniknąć .htaccess (lepsza wydajność).

Nginx (server blocks)

Nginx preferuje dyrektywy return/rewrite w blokach server/location. Przykłady:

  • HTTP → HTTPS: server { listen 80; server_name example.com www.example.com; return 301 https://example.com$request_uri; }
  • non-www → www: server { listen 443 ssl; server_name example.com; return 301 https://www.example.com$request_uri; }
  • Przeniesienie katalogu: location ~ ^/blog/(.*)$ { return 301 /poradnik/$1; }
  • Pojedyncza strona: location = /stara-strona { return 301 /nowa-strona; }

Dbaj o brak kolizji między blokami i testuj konfigurację: nginx -t, a potem przeładuj serwer.

IIS (Windows Server)

W Menedżerze usług IIS wybierz witrynę → URL Rewrite → Add Rule(s). Użyj „Blank rule” do wzorców lub „Redirect” do prostych przeniesień. Ustaw 301 jako kod odpowiedzi i wybierz „Append query string”, jeżeli chcesz zachować parametry. Alternatywnie dodaj reguły ręcznie w web.config, ale unikaj błędów w składni.

WordPress (wtyczka i core)

Jeżeli nie masz dostępu do serwera, skorzystaj z wtyczki Redirection: dodaj pojedyncze adresy i wzorce, włącz zachowanie parametrów i ustaw 301. Dodatkowo:

  • Zmień adres witryny w Ustawienia → Ogólne (URL witryny i WordPressa).
  • Zaktualizuj bezpośrednie odnośniki w Ustawienia → Bezpośrednie odnośniki (w razie zmiany struktury).
  • Upewnij się, że motyw/widżety nie generują twardych linków do starych adresów.

CDN i narzędzia brzegowe: Cloudflare, Fastly

W Cloudflare użyj Bulk Redirects (zalecane) albo Page Rules:

  • Bulk Redirects: wgraj listę par From → To i ustaw kod 301. Dobre do dużych migracji.
  • Page Rules: proste wzorce, limitowane wolumenem. Pamiętaj o kolejności reguł.

Na Fastly zdefiniuj vcl_recv z return (syntetyczne 301) albo skonfiguruj Edge Dictionaries z mapą przekierowań. Monitoruj skuteczność w real time logs.

Static hosting i Jamstack: Netlify, Vercel, S3/CloudFront

  • Netlify: plik _redirects. Przykłady: „/stara /nowa 301”; „/blog/* /poradnik/:splat 301”.
  • Vercel: w vercel.json sekcja redirects z source/has/destination i permanent: true.
  • S3 + CloudFront: w S3 (Static website hosting) możesz ustawić redirect dla obiektu lub użyć CloudFront Function/Lambda@Edge do reguł wzorcowych.

Aplikacje i frameworki

W aplikacjach możesz wymusić przekierowanie programowo: w Express (res.redirect(301, '/nowa’)), w Next.js/Nuxt konfiguracją w pliku konfiguracyjnym, w Django korzystając z HttpResponsePermanentRedirect. Pilnuj, aby logika nie duplikowała reguł serwera (preferuj przekierowania jak najbliżej krawędzi).

Aspekty SEO i porządkowanie sygnałów po zmianie adresów

Aktualizacja mapy witryny i indeksowanie

Wygeneruj nową sitemap zawierającą wyłącznie docelowe adresy. Umieść ją pod standardową ścieżką /sitemap.xml oraz zaktualizuj wpis w robots.txt. W Google Search Console prześlij nową mapę i sprawdź raporty indeksowania. Nie publikuj starych adresów w nowej mapie — wyszukiwarka powinna odkrywać je przez linki wewnętrzne i logikę przekierowań.

Zmiana adresu i sygnały kanoniczne

Po zmianie domeny użyj narzędzia „Zmiana adresu” w Search Console, aby zsynchronizować sygnały pomiędzy właściwościami. Zadbaj o meta rel=”canonical” na docelowych stronach. Nie ustawiaj canonical na adresy, które już przekierowują (to zbędne), lecz upewnij się, że finalna strona kanoniczna wskazuje sama na siebie lub na preferowaną wersję.

Języki, regiony i oznaczenia

Zaktualizuj adnotacje hreflang po zmianie ścieżek lub domen (np. migracja na domeny krajowe). W przypadku wielojęzyczności zadbaj o spójność adresów między wariantami. Przetestuj w narzędziach walidacyjnych, czy linki zwrotne hreflang działają obustronnie i nie wskazują na przekierowania.

Linkowanie wewnętrzne i zewnętrzne

  • Przejrzyj nawigację, stopki, moduły relacyjne i linki w treści. Zmieniaj twarde odnośniki na nowe ścieżki, aby uniknąć zbędnych hopów.
  • Przy kluczowych backlinkach wykonaj outreach do wydawców z prośbą o aktualizację linków.
  • Aktualizuj profile firmowe, social media, kampanie reklamowe i e-maile transakcyjne.

Parametry, filtry i duplikacja

Dla parametrów sortowania/filtrów zdecyduj, które adresy mają być indeksowane. Rozważ normalizację (np. usuwanie parametrów kampanii po stronie analityki). Dopilnuj, by przekierowania zachowywały kluczowe parametry, chyba że świadomie je odrzucasz.

Testy, monitoring i wydajność po wdrożeniu

Sprawdzanie nagłówków i przepływu

  • Użyj curl lub narzędzi HTTP do weryfikacji: status 301/308, poprawny Location, brak łańcuchów.
  • Testuj różne warianty (http/https, www/non-www, ze slashem i bez, z parametrami).
  • Sprawdź, czy Content-Type i cache-control są adekwatne, a HSTS nie wymusza błędnych zachowań.

Crawler i raporty wyszukiwarek

Przepuść serwis przez crawlera (Screaming Frog, Sitebulb, lokalne narzędzia). Oceń odsetek 3xx, 4xx, 5xx. W Search Console kontroluj błędy „Nie znaleziono (404)”, „Strona z przekierowaniem”, a także trendy ruchu i liczby zaindeksowanych adresów. Daj wyszukiwarkom czas na reindeksację, ale usuwaj przyczyny błędów, które narastają.

Logi serwera i alerty

Włącz zbieranie i analizę logów: szukaj powtarzających się wejść na stare ścieżki bez mapowania. Twórz alerty (np. w Stackdriver, CloudWatch, ELK), gdy odsetek 404 przekroczy próg. Zapisuj referer, aby zidentyfikować źródła ruchu prowadzące do niedziałających adresów i reagować (kontakt, własne przekierowanie, aktualizacja kampanii).

Cache, TTL i warstwy pośrednie

Przemyśl politykę cache. 301 bywa długo przechowywane przez przeglądarki i CDN. Jeżeli istnieje ryzyko pomyłki, na czas migracji możesz użyć 302, a po potwierdzeniu poprawności zmienić na 301. Na CDN ustaw krótsze TTL dla tras objętych migracją. Po finalizacji zwiększ TTL dla stabilnych reguł, poprawiając wydajność.

Wydajność i maksymalna liczba hopów

Każde przekierowanie to dodatkowa podróż RTT. Dąż do jednego przejścia. Preferuj przekierowanie na krawędzi (serwer/edge) zamiast w aplikacji. Profiluj cold/warm caches. Jeśli korzystasz z Service Workera, upewnij się, że nie buforuje starych tras w sposób sprzeczny z nową strukturą.

Najczęstsze pułapki, wzorce i dobre praktyki

www vs non-www, HTTP vs HTTPS

Wybierz ostateczny wariant domeny i konsekwentnie wymuszaj go jednym przekierowaniem. Sekwencja powinna wyglądać: HTTP → docelowa domena i protokół w jednym kroku. Dodaj HSTS po upewnieniu się, że HTTPS jest wszędzie. Sprawdź certyfikaty i SNI w środowiskach z wieloma domenami.

Ukośniki, wielkość liter i kodowanie

  • Ustal politykę trailing slash. Jeśli zmieniasz, dodaj regułę normalizującą.
  • Wymuś małe litery, jeśli serwer jest wrażliwy na case (np. Linux). Dodaj reguły, które mapują wielkie litery na małe.
  • Zwróć uwagę na znaki diakrytyczne i procentowe kodowanie — testuj zarówno zakodowane, jak i niekodowane formy.

Identyfikatory i paginacja

Wzorce paginacji (np. /strona/2) i parametry sortowania muszą zachować logikę. Jeśli łączysz kategorie lub archiwa, przemyśl, dokąd trafią strony 2, 3 itd. W razie braku odpowiednika kieruj na stronę główną sekcji (nie ogólną home), aby utrzymać kontekst.

Serwisy o dużej skali i wersjonowanie

Przy setkach tysięcy adresów użyj pliku mapy przekierowań i mechanizmu klucz→wartość (np. w Redis, Edge Dictionary, rules file). Zasady:

  • Ładuj reguły atomowo (blue/green), aby uniknąć niespójności.
  • Waliduj format (lint) przed wdrożeniem.
  • Stosuj rezerwowe ścieżki: jeżeli brak wpisu, kieruj na najbliższą kategorię.

Reklamy, kampanie i analityka

Zaktualizuj kreacje, feedy produktowe i linki w kampaniach, aby nie przepalać budżetu na przekierowania. W analityce dodaj adnotację o migracji, skonfiguruj filtry, by nie dublować ścieżek (np. bez i z ukośnikiem). Zweryfikuj e-commerce tracking po zmianie domeny i ciastek (przejścia cross-domain).

Back-end, API i klienty mobilne

Jeśli zmieniasz endpointy API, preferuj 308 lub 301 z zachowaniem metody. Zakomunikuj zmiany deweloperom zewnętrznym, przygotuj okres przejściowy i wersjonowanie (v1→v2). W aplikacjach mobilnych uwzględnij aktualizację deep linków oraz App Links/Universal Links.

Porządkowanie treści: kiedy nie przekierowywać

Jeżeli treść jest przestarzała i nie ma odpowiednika, 410 Gone będzie właściwsze niż 301 do strony głównej. Zredukujesz w ten sposób szum w indeksie i poprawisz SEO jakościowe. W artykułach przejętych scal kilka słabych stron w jedną mocną i przekieruj 301 do nowej, lepszej wersji.

Komunikacja i wsparcie użytkowników

Przy większych migracjach przygotuj komunikat dla użytkowników (baner, wpis na blogu, FAQ). Jeżeli zmieniasz domenę, ustaw skrzynki e-mail z aliasami i przekaż instrukcje zespołowi sprzedaży, wsparcia i partnerom. Dzięki temu minimalizujesz utratę kontaktu oraz zaufania.

Warstwa sieciowa i rejestry

Zadbaj o rekordy DNS: poprawne A/AAAA, CNAME, TTL-y dopasowane do planu hot-swap. Jeżeli korzystasz z Anycast i wielu POP, wdrażaj reguły na krawędzi równolegle. Po migracji usuń nieużywane rekordy i certyfikaty, aby ograniczyć ryzyko błędów.

Checklisty operacyjne

  • Przed: pełna mapa starych adresów, decyzje o 301/302/410, przygotowane reguły, staging z testami, backup, nowa struktura linków wewnętrznych.
  • W trakcie: włączenie przekierowań, testy krytycznych ścieżek, monitoring logów i błędów, szybkie poprawki.
  • Po: nowa sitemap i robots.txt, zgłoszenie w Search Console, outreach do kluczowych linkodawców, analiza trendów, sprzątanie łańcuchów.

Czas utrzymania przekierowań

Utrzymuj 301 tak długo, jak to możliwe. Minimum 12 miesięcy przy zmianie domeny i 6–12 miesięcy przy zmianie struktury. W praktyce warto zostawić je „na zawsze” dla stron, do których nadal prowadzą linki. Usuwając przekierowanie, sprawdź, czy nie generujesz masowo 404.

Bezpieczeństwo i zgodność

Po przejściu na HTTPS włącz HSTS (z rozwagą w kwestii preload). Upewnij się, że polityki CSP, referrer i cookies (SameSite, Secure) są poprawne na nowych adresach. Jeżeli zmieniasz domenę, zaktualizuj polityki DMARC/SPF/DKIM dla poczty oraz integracje OAuth/SAML, które zależą od dokładnych adresów przekierowań.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz