Zmiana struktury adresów URL to jedna z tych decyzji, które w arkuszu wyglądają na porządkowanie, a w Google Search Console na małą katastrofę. Przez kilka tygodni wykres idzie w dół i trzeba mieć dane, żeby nie wpaść w panikę. Poniżej pełny zapis przebudowy w serwisie usługowym liczącym niecałe 300 podstron: od powodów, przez mapę przekierowań, po dzień, w którym ruch wrócił do poziomu sprzed zmiany i zaczął go przekraczać.
Krótka odpowiedź dla tych, którzy szukają liczby: przejściowy spadek kliknięć wyniósł 22% w drugim tygodniu, powrót do poziomu bazowego zajął 38 dni, a po 90 dniach serwis miał o 17% więcej kliknięć z wyszukiwarki niż przed migracją. Te wyniki nie są regułą, tylko punktem odniesienia dla serwisu tej wielkości.
Dlaczego zdecydowaliśmy się na zmianę
Serwis rósł przez sześć lat bez planu informacyjnego. Część artykułów miała adresy z datą (/2019/04/nazwa-wpisu/), część siedziała pod /blog/, a strony usług były rozrzucone między /oferta/, /uslugi/ i adresami bez żadnego prefiksu. Trzy różne wtyczki do tworzenia landingów zostawiły po sobie własne schematy adresów.
Problem nie był estetyczny. Mieliśmy trzy twarde objawy:
- 41 podstron w raporcie stron „Strona zeskanowana, ale obecnie niezindeksowana”, w tym 9 stron usług,
- kanibalizację między starymi wpisami z datą a nowszymi poradnikami na te same zapytania,
- brak możliwości sensownego linkowania kategorii, bo kategorie nie istniały w adresach ani w nawigacji.
Jeśli Twój serwis ma podobny objaw z indeksacją, warto najpierw przejść przez przyczyny, przez które Google nie indeksuje podstron, bo nie każdy taki przypadek wymaga zmiany URL. U nas diagnoza wskazała na płaską, chaotyczną architekturę, więc migracja była uzasadniona.
Stara i nowa struktura obok siebie
Nowy schemat oparliśmy na dwóch poziomach: sekcja tematyczna i dokument. Zrezygnowaliśmy z dat w adresach i z prefiksu /blog/, który niczego nie mówił ani użytkownikowi, ani robotom.
| Typ strony | Stary adres | Nowy adres | Liczba stron |
|---|---|---|---|
| Usługi | /oferta/audyt-www/, /uslugi/audyt/, /audyt-strony/ | /uslugi/audyt-strony/ | 24 |
| Poradniki | /2019/04/jak-zrobic-audyt/ | /poradniki/audyt/jak-zrobic-audyt/ | 187 |
| Aktualności | /blog/nazwa-wpisu/ | /aktualnosci/nazwa-wpisu/ | 52 |
| Strony firmowe | /o-nas/, /kontakt/ | bez zmian | 11 |
| Usunięte lub scalone | różne | 301 do najbliższego odpowiednika | 23 |
Łącznie adres zmieniło 263 z 297 podstron. Strony firmowe zostawiliśmy bez zmian celowo: im mniej ruchomych części, tym łatwiej czytać dane po migracji.
Mapa przekierowań i testy przed wdrożeniem
Mapę przekierowań budowaliśmy w arkuszu z czterema kolumnami: stary URL, nowy URL, kod odpowiedzi, źródło stary URL (sitemap, crawl, logi, linki zewnętrzne). Ta ostatnia kolumna okazała się najważniejsza. Crawl serwisu znalazł 297 adresów, ale logi serwera z ostatnich 12 miesięcy pokazały kolejne 68, które Googlebot wciąż odwiedzał: stare paginacje, adresy z parametrami UTM i wpisy usunięte lata temu.
Zasady, których się trzymaliśmy:
- Każdy stary adres przekierowuje jednym skokiem 301 na adres docelowy, bez łańcuchów.
- Scalane treści kierujemy na najbliższy tematycznie odpowiednik, nigdy hurtowo na stronę główną.
- Adresy bez odpowiednika i bez ruchu dostają kod 410, a nie przekierowanie na siłę.
- Linki wewnętrzne w treściach podmieniamy na nowe adresy przed wdrożeniem, a nie liczymy na przekierowania.
Testy robiliśmy na kopii serwisu: skrypt przechodził przez całą mapę i sprawdzał, czy każdy stary URL zwraca 301 z poprawnym nagłówkiem Location, a docelowy odpowiada kodem 200. Pierwszy przebieg wykazał 14 łańcuchów (stare przekierowania z wtyczki nakładały się na nowe) i 3 pętle. Bez tego testu część ruchu utknęłaby na wiele dni.
Proces jest bardzo zbliżony do przenosin całej domeny, dlatego jako listę kontrolną wykorzystaliśmy nasz materiał o tym, jak przeprowadzić migrację domeny bez utraty ruchu. Różnica polega głównie na tym, że przy zmianie samych adresów nie korzysta się z narzędzia zmiany adresu w Search Console. Google opisuje ten scenariusz osobno w dokumentacji o przenoszeniu witryny ze zmianą adresów URL.
Pierwsze 14 dni po migracji
Wdrożenie zrobiliśmy we wtorek rano, czyli w dniu o najniższym ruchu w tygodniu dla tej branży. Od razu po publikacji przesłaliśmy nową mapę witryny, a starą zostawiliśmy dostępną jeszcze przez miesiąc, żeby roboty szybciej trafiły na przekierowania.
Tak wyglądały pierwsze dwa tygodnie w liczbach (porównanie z analogicznym okresem przed zmianą):
- Dni 1–3: kliknięcia bez zmian, w wynikach wciąż widać stare adresy. Googlebot zwiększył liczbę żądań o około 2,5 raza.
- Dni 4–7: pierwsze nowe adresy w indeksie, spadek kliknięć o 9%. W raporcie stron pojawiło się 180 pozycji „Strona z przekierowaniem”, co jest oczekiwane.
- Dni 8–14: najgłębszy dołek, minus 22% kliknięć. Średnia pozycja pogorszyła się z 14,2 do 17,8, głównie przez poradniki, które na kilka dni wypadły z pierwszej strony.
Szybkość odkrywania nowych adresów była zgodna z tym, co Google mówi publicznie o swoich czasach przetwarzania; zebraliśmy te deklaracje w tekście o tym, ile trwa indeksacja i powrót po zmianach. Odkrycie adresu to jedno, ale ponowna ocena strony pod nowym URL zajmuje znacznie dłużej.
Przez te dwa tygodnie codziennie sprawdzaliśmy trzy rzeczy. Pierwsza to logi serwera: ile żądań Googlebota trafia w stare adresy i czy któreś z nich dostaje kod inny niż 301. Druga to raport 404 w Search Console, w którym wyłapaliśmy 6 adresów pominiętych w mapie (stare załączniki PDF podlinkowane z zewnętrznych katalogów). Trzecia to lista 30 najważniejszych zapytań z pozycjami sprawdzanymi ręcznie, bo dane w Search Console docierają z opóźnieniem i w pierwszym tygodniu bywają mylące. Zasada była prosta: niczego nie poprawiamy w treściach, dopóki dołek mieści się w przewidywanym zakresie. Każda dodatkowa zmiana w tym czasie utrudniłaby odczytanie, co właściwie zadziałało, a co zaszkodziło.
Krzywa powrotu do poziomu bazowego
Powrót nie był liniowy. Strony usług wróciły najszybciej, po 19 dniach, bo miały najwięcej linków zewnętrznych i najmocniej linkowaliśmy je z menu. Aktualności wróciły po 26 dniach. Poradniki potrzebowały 38 dni i to one wyznaczyły moment, w którym cały serwis zrównał się z poziomem bazowym.
| Punkt pomiaru | Kliknięcia vs bazowe | Strony w indeksie |
|---|---|---|
| Dzień 14 | -22% | 211 |
| Dzień 30 | -6% | 238 |
| Dzień 38 | 0% | 247 |
| Dzień 60 | +9% | 259 |
| Dzień 90 | +17% | 264 |
Najciekawsza kolumna to liczba stron w indeksie. Przed migracją było ich 228 z 297, czyli 77%. Po 90 dniach indeks obejmował 264 strony, choć łącznie było ich mniej (scaliliśmy 23 słabe wpisy). Wzrost ruchu powyżej poziomu bazowego wynikał właśnie z tego, że do indeksu weszły strony wcześniej pomijane, a nie z poprawy pozycji starych liderów.
Warto też uczciwie powiedzieć, czego nie wiemy. Okres 60–90 dni przypadł na sezonowy wzrost zapytań w branży, więc część z tych 17% to zapewne popyt, a nie zasługa nowej struktury. Po skorygowaniu o sezonowość z poprzedniego roku efekt netto szacujemy na 8–11%.
Co zyskaliśmy poza rankingami
Najbardziej niedocenianym efektem była łatwość pracy z danymi. Gdy sekcja jest w adresie, filtr w Search Console albo w GA4 po fragmencie /poradniki/ od razu pokazuje kondycję całej grupy treści. Wcześniej wymagało to ręcznie utrzymywanych list.
Inne korzyści, które zauważyliśmy po trzech miesiącach:
- linkowanie wewnętrzne stało się przewidywalne, bo każda sekcja ma stronę zbiorczą, do której prowadzą wszystkie jej dokumenty,
- kanibalizacja między starymi wpisami z datą a poradnikami zniknęła po scaleniu 23 duplikatów,
- nowe treści indeksowały się szybciej: mediana czasu od publikacji do indeksacji spadła z 9 do 4 dni,
- w odpowiedziach asystentów AI zaczęły pojawiać się nasze poradniki z czytelnymi, opisowymi adresami, choć tego efektu nie potrafimy rzetelnie zmierzyć.
Gdybyśmy robili tę migrację drugi raz, zaczęlibyśmy od logów serwera, a nie od crawla. To w logach były adresy, o których nikt w zespole nie pamiętał, a które wciąż zbierały wizyty robotów i linki zewnętrzne. Drugą zmianą byłoby rozłożenie wdrożenia na dwa etapy: najpierw strony usług, a po dwóch tygodniach poradniki. Dołek byłby płytszy i łatwiej byłoby przypisać efekty do konkretnych zmian.
FAQ
Jak długo trwa spadek ruchu po zmianie struktury URL?
W serwisie z około 300 podstronami najgłębszy spadek przypadł na drugi tydzień, a powrót do poziomu sprzed zmiany zajął 38 dni. Mniejsze serwisy z mocnym profilem linków wracają szybciej, duże sklepy i portale zwykle wolniej.
Czy przy zmianie adresów trzeba używać narzędzia zmiany adresu w Search Console?
Nie. To narzędzie służy do przenosin na inną domenę. Przy zmianie struktury w obrębie tej samej domeny wystarczą poprawne przekierowania 301, nowa mapa witryny i podmiana linków wewnętrznych.
Przekierowanie 301 czy 410 dla usuniętych stron?
Jeśli strona ma tematyczny odpowiednik, stosuj 301. Jeśli nie ma odpowiednika ani ruchu, kod 410 jest uczciwszy niż przekierowanie na stronę główną, które Google i tak potraktuje jak miękki błąd 404.
Jak długo utrzymywać przekierowania po migracji?
Co najmniej rok, a w praktyce najlepiej bezterminowo. Linki zewnętrzne i zakładki użytkowników żyją latami, a koszt utrzymania kilkuset reguł jest pomijalny.
Czy przebudowa struktury URL zawsze przynosi wzrost ruchu?
Nie. Wzrost pojawia się, gdy nowa struktura rozwiązuje realny problem, na przykład z indeksacją lub kanibalizacją. Zmiana adresów wyłącznie dla estetyki zwykle kończy się powrotem do tego samego poziomu po kilku tygodniach strat.