Co to jest przekierowanie 301 i co oznacza kod 301?
To kod odpowiedzi HTTP o nazwie „Moved Permanently”, czyli „przeniesiono na stałe”. Serwer nie wysyła treści starej strony, tylko nowy adres, pod który przeglądarka przechodzi sama. Klient nawet tego nie zauważa: kliknął stary link z maila sprzed dwóch lat i widzi aktualną ofertę.
Dla Google redirect 301 to mocny sygnał, że właściwą wersją jest adres docelowy. Robot przechodzi pod nowy adres, a po przetworzeniu zmiany w wynikach pojawia się już strona docelowa. Dzięki temu nowa strona może przejąć to, na co pracowała stara: pozycje i linki z innych serwisów. Bez przekierowania stary adres zwraca błąd, a nowy zaczyna od zera.
Nie każde przekierowanie jest przekierowaniem 301. Kod 308 Google traktuje tak samo jak 301. Przekierowanie ustawione w kodzie strony przez meta refresh działa jak trwałe tylko wtedy, gdy uruchamia się natychmiast. Przekierowania w JavaScripcie dokumentacja Google zostawia na sytuacje, w których serwera nie da się skonfigurować, bo robot może ich nie zobaczyć, jeśli strona się nie wyrenderuje.
Kiedy przekierowanie 301, a kiedy 302?
Przekierowanie 301 ustawiasz, gdy zmiana jest ostateczna, a 302, gdy stary adres ma wrócić. Różnica jest widoczna w wynikach Google. Przy trwałym przekierowaniu wyszukiwarka pokazuje adres docelowy, przy tymczasowym (302, 303, 307) zostawia w wynikach adres źródłowy, bo zakłada, że to on jest właściwy.
- nowa domena albo przejście z http na https
- Kod: 301
- Dlaczego: stare adresy nie wrócą, a wyniki mają pokazywać nowe
- zmiana nazwy kategorii albo usługi w adresie
- Kod: 301
- Dlaczego: treść ta sama, zmienia się tylko adres
- połączenie dwóch artykułów lub podstron w jedną
- Kod: 301 z obu na stronę, która zostaje
- Dlaczego: sygnały obu stron trafiają w jedno miejsce
- kategoria sezonowa kierowana na czas poza sezonem na kategorię ogólną
- Kod: 302
- Dlaczego: adres kategorii sezonowej wraca za kilka miesięcy i ma zachować swoje miejsce w wynikach
- test nowej wersji strony na części ruchu
- Kod: 302
- Dlaczego: wersja testowa nie powinna zastąpić oryginału w wynikach
- prace serwisowe, strona chwilowo niedostępna
- Kod: żadne przekierowanie; serwer zwraca 503
- Dlaczego: kod 503 mówi robotowi, żeby wrócił później, i nie zmienia adresów w wynikach
Częsty błąd jest odwrotny: przekierowanie, które miało być trwałe, ustawiono jako 302, bo taki kod podstawia domyślnie wtyczka albo panel hostingu. Strona działa, klient niczego nie widzi, a w wynikach dalej wisi stary adres. Wychodzi to dopiero przy sprawdzeniu kodu odpowiedzi, dlatego przy odbiorze prac warto patrzeć na sam kod, nie tylko na to, czy strona się otwiera.
Kiedy sklep potrzebuje przekierowań 301?
Zawsze wtedy, gdy adres z historią przestaje działać, a klient szukający tej treści może dostać sensowny zamiennik. W sklepie dzieje się to częściej niż na stronie firmowej, bo asortyment i struktura kategorii ciągle się zmieniają.
Usunięty produkt
Gdy model ma następcę albo bardzo bliski zamiennik, przekierowanie 301 na jego kartę zachowuje ruch z wyszukiwań po nazwie. Gdy zamiennika nie ma, uczciwszą odpowiedzią jest kod 404 albo 410. Kiedy który kod jest w porządku, rozpisaliśmy w artykule o błędzie 404.
Zmiana nazwy lub struktury kategorii
Kategoria „Sofy i kanapy” zmienia adres z /sofy na /sofy-i-kanapy, a podkategorie dostają nową ścieżkę. Każdy stary adres wymaga przekierowania na nowy odpowiednik, także te z filtrami, które zbierały ruch. Ten sam problem powstaje po cichu, gdy platforma buduje adres produktu ze ścieżki kategorii: przeniesienie produktu do innej kategorii zmienia jego adres.
Zmiana domeny
Przy nowej domenie przekierowujesz każdy adres na jego odpowiednik w nowej domenie. Gdy wszystkie stare adresy prowadzą na nową stronę główną, Google może to potraktować jak pozorny błąd 404. Po ustawieniu przekierowań zgłaszasz przeprowadzkę w Search Console. Służy do tego „Narzędzie zmiany adresu”, dostępne dla usług na poziomie domeny, gdy masz uprawnienia właściciela do starej i nowej wersji.
Jak przygotować mapę przekierowań przed migracją?
Mapa przekierowań to arkusz, w którym każdy stary adres z ruchem, pozycjami albo linkami dostaje jeden nowy adres i docelowy kod. Powstaje przed przełączeniem, na podstawie listy adresów ze starej strony. Po pierwszych spadkach jest już na nią za późno. Dokumentacja Google o przenoszeniu witryn nazywa takie zmapowanie adresów bardzo ważnym krokiem.
Dobra mapa ma kolumnę, której często brakuje: wynik sprawdzenia po wdrożeniu. Dzięki niej wiadomo, które reguły działają na działającej stronie, nie tylko w arkuszu. Tak może wyglądać fragment mapy sklepu meblowego po zmianie platformy:
- /sofy
- Nowy adres: /sofy-i-kanapy
- Kod: 301
- Sprawdzone: tak, jeden krok
- /sofy/narozniki
- Nowy adres: /sofy-i-kanapy/narozniki
- Kod: 301
- Sprawdzone: tak, jeden krok
- /produkt/sofa-oslo-szara
- Nowy adres: /sofa-oslo-szara
- Kod: 301
- Sprawdzone: nie, prowadzi przez /produkt/sofa-oslo (łańcuch)
- /produkt/fotel-bergen
- Nowy adres: /fotel-bergen-2
- Kod: 301
- Sprawdzone: tak; następca wycofanego modelu
- /promocja-czarny-piatek
- Nowy adres: /promocje
- Kod: 302
- Sprawdzone: tak; adres wraca w listopadzie
- /produkt/pufa-lido
- Nowy adres: brak
- Kod: 410
- Sprawdzone: tak; produkt wycofany bez zamiennika
Wiersz z łańcuchem to typowe znalezisko. Sklep po wcześniejszej migracji ma stare reguły, które teraz prowadzą do adresów przekierowanych po raz drugi. Poprawka polega na skierowaniu najstarszych adresów od razu na adres końcowy. Cały proces przeprowadzki, od listy adresów po monitoring po starcie, rozpisaliśmy w opisie usługi migracji strony lub sklepu z opieką SEO.
Co oznacza błąd „zbyt wiele przekierowań” i jak go naprawić?
Najczęściej oznacza pętlę: adres A przekierowuje na B, a B z powrotem na A, więc przeglądarka po serii prób się poddaje. W Chrome towarzyszy mu kod ERR_TOO_MANY_REDIRECTS. Strona jest wtedy niedostępna dla wszystkich, także dla robota Google, więc to błąd do naprawy w ciągu godzin, a nie tygodni.
Pętla bierze się zwykle z dwóch reguł, które sobie przeczą. Serwer wymusza wersję z www, a system zarządzania treścią ma w ustawieniach adres bez www. Albo usługa pośrednicząca przed serwerem łączy się z nim po http, a serwer każe przejść na https. Programista szuka wtedy miejsca, w którym ta sama zasada jest zapisana dwa razy inaczej. Czyszczenie plików cookie w przeglądarce pomaga tylko wtedy, gdy pętla wynika z zapisanej sesji, a nie z konfiguracji.
Łańcuch to łagodniejsza odmiana: przekierowania działają, ale prowadzą przez kilka kroków, zanim trafią do celu. Według dokumentacji robot Google przechodzi standardowo do 10 przeskoków. Dłuższy łańcuch albo pętla kończą się w raporcie Indeksowanie stron statusem „Błąd przekierowania”. Krótszy łańcuch też kosztuje: każdy krok to kolejne zapytanie do serwera i dłuższe oczekiwanie klienta, a Google przy przenoszeniu witryn wprost radzi łańcuchów unikać.
Jak sprawdzić, czy przekierowanie 301 działa?
Sprawdź kod odpowiedzi starego adresu, nie tylko to, czy przeglądarka pokazuje właściwą stronę. Przeglądarka przejdzie przez 302, łańcuch i przekierowanie w JavaScripcie, więc wizualnie wszystko wygląda dobrze. Kod widać w narzędziach, które pokazują nagłówki odpowiedzi serwera, i w crawlerach, czyli programach przechodzących serwis jak robot wyszukiwarki.
- próbka z każdej grupy adresów: kategorie, produkty, wpisy, strony usług; każdy stary adres zwraca 301 i prowadzi do celu w jednym kroku
- lista ze starej mapy witryny przepuszczona przez crawler: wyłapuje adresy, o których nikt nie pamiętał przy pisaniu reguł
- raport Indeksowanie stron: status „Strona zawierająca przekierowanie” przy starych adresach jest w porządku, za to „Błąd przekierowania” albo przyrost błędów 404 po zmianie wymaga reakcji
- raport Skuteczność po kilku tygodniach: wyświetlenia powinny przechodzić ze starych adresów na nowe
Po wdrożeniu poproś jeszcze o poprawienie linków w menu, stopce i treściach, żeby prowadziły wprost do nowych adresów. Przekierowanie ratuje ruch ze starych linków, ale własny serwis nie powinien przez nie przechodzić. Gdy stara i nowa wersja żyją równolegle i obie muszą zostać, lepszym narzędziem bywa link kanoniczny.