301 czy 404? Którego kodu użyć i dlaczego wyszukiwarki przywiązują do tego wagę

autor: Luca Cavallini Poradniki techniczne
301 czy 404? Którego kodu użyć i dlaczego wyszukiwarki przywiązują do tego wagę

Dwa kody, które odpowiadają na dwa różne pytania

Kod 404 odpowiada „nie” na pytanie „czy pod tym adresem coś jest?”. Informuje przeglądarkę i robota indeksującego, że adres URL jest dziś nieosiągalny, i niczego nie obiecuje na jutro. Kod 301 odpowiada na inne pytanie: „to, czego Państwo szukają, istnieje, ale przeniosło się tutaj na stałe”. Podaje adres, za którym należy podążyć, i informuje wyszukiwarkę, że sygnały pozycjonowania starego adresu URL ma stopniowo przenosić na nowy. To nie są dwa warianty tej samej strony błędu. Jeden mówi, że nic nie istnieje, drugi, że coś zostało przeniesione.

Porównanie kodu 404, który odpowiada przecząco na pytanie, czy pod adresem coś jest, i kodu 301, który wskazuje nowy adres i przenosi sygnały pozycjonowania
Kod 404 mówi, że nic tu nie ma, kod 301 mówi, dokąd przeniesiono treść: to nie są dwa warianty tej samej strony błędu.

Pomyłka w którąkolwiek stronę ma swoją cenę. Zwrócenie kodu 404 dla strony, która w rzeczywistości została przeniesiona, marnuje wszystkie linki zwrotne i całą historię pozycjonowania, jaką zdobył stary adres URL, a prawdziwego odwiedzającego wysyła w ślepy zaułek zamiast na stronę, której szukał. Zwrócenie kodu 301 dla strony, która zniknęła na dobre, z przekierowaniem na niepowiązaną stronę tylko po to, by uniknąć 404, uczy wyszukiwarki, że takie dopasowanie nic nie znaczy, i w końcu przestają one przekazywać cokolwiek, ponieważ schemat wygląda raczej na sztuczkę niż na prawdziwą przeprowadzkę.

Krótka lista pomocna w podejmowaniu decyzji

  • Treść została przeniesiona pod nowy adres URL i nadal istnieje. Należy użyć kodu 301. To jedyny przypadek, do którego przeznaczono 301: przeniesienie stałe, jeden do jednego. Przekierowanie powinno prowadzić do najtrafniejszego odpowiednika, a nie do strony głównej jako rozwiązania na wszystko.
  • Treść jest chwilowo niedostępna, ale wróci pod ten sam adres. Należy użyć kodu 302, a nie 301. Kod 302 informuje robota, aby zachował w indeksie pierwotny adres URL i wrócił później, a dokładnie tego potrzeba podczas promocji, braku towaru lub prac serwisowych.
  • Treść zniknęła bez bezpośredniego zamiennika. Należy użyć kodu 404, albo 410, jeśli wiadomo na pewno, że treść nigdy nie wróci. Kod 410 (Gone) jest sygnałem silniejszym i bardziej celowym niż 404, a wyszukiwarki zwykle szybciej usuwają takie adresy z indeksu, co się przydaje, gdy wycofana linia produktów ma szybko zniknąć z wyników wyszukiwania, zamiast wisieć w nich jako pozorny błąd.
  • Treść nigdy nie istniała pod tym adresem. Zwykły kod 404 jest poprawny i nie wymaga żadnych dalszych działań.
Tabela decyzyjna: treść przeniesiona 301, chwilowo niedostępna 302, zniknęła bez zamiennika 404 lub 410, nigdy nie istniała 404
Cztery przypadki, cztery odpowiedzi: właściwy kod zależy od tego, co stało się z treścią, a nie od tego, co jest wygodniejsze.

Błąd łatwy do przeoczenia: soft 404

Soft 404 (tzw. pozorny błąd) to strona, która w swoim tekście informuje odwiedzającego „nie znaleziono produktu” lub „strona została usunięta”, podczas gdy serwer pod spodem odpowiada kodem HTTP 200 OK. Wyszukiwarki w końcu dostrzegają rozbieżność między tym, co mówi strona, a tym, co mówi kod statusu, i zaczynają i tak traktować taki adres jak stronę błędu, tyle że zajmuje on teraz zwykłe miejsce w indeksie, zamiast być traktowany jako błąd, którym naprawdę jest. Najczęściej zdarza się to w katalogach e-commerce, gdy produkt zostaje usunięty z bazy danych, ale kontroler wraca do ogólnego szablonu bez ustawienia kodu odpowiedzi, albo gdy przekierowanie po stronie klienta (JavaScript w rodzaju „brak wyników, trwa przekierowanie”) w ogóle nie zmienia statusu HTTP. Jeśli tekst strony mówi, że czegoś brakuje, jej kod statusu musi mówić to samo.

Dwie strony z tekstem „Nie znaleziono produktu”: pierwsza odpowiada HTTP 200 i jest soft 404, druga odpowiada HTTP 404 i jest poprawna
Ten sam tekst, dwa kody stanu: tylko drugi mówi wyszukiwarce to, co strona mówi odwiedzającemu.

Dlaczego to nie jest teoretyczne SEO: crawl budget to prawdziwy ruch

Wyszukiwarki, a coraz częściej także roboty indeksujące sztucznej inteligencji, nie mają nieograniczonej cierpliwości wobec danej domeny: przydzielają jej przybliżony dzienny budżet żądań, a każde żądanie wydane na łańcuch przekierowań, błędny kod statusu lub adres URL, który w ogóle nie powinien istnieć, to żądanie, które nie posłuży do odkrycia ani odświeżenia ważnej strony. To nie jest abstrakcyjny problem. W naszym własnym sklepie internetowym, przed rutynowym czyszczeniem, okazało się, że wbudowany filtr śledzenia odwiedzin korzysta z listy sygnatur robotów, aktualizowanej po raz ostatni około 2010 roku: rejestrował 43 478 „odwiedzin” dziennie ze strony robotów, jakby był to prawdziwy ruch, wobec około 300 prawdziwych osób, a zgromadzone dane śledzenia osiągnęły 1,4 GB, zanim czyszczenie sprowadziło je do 24 MB. Ponadto w tym samym sklepie pojedynczy robot (robot Meta) wykonywał 38 144 żądań w ciągu jednego dnia, czyli 78% całego ruchu odbieranego przez serwer, dopóki nie dodano celowanej reguły, która go zatrzymała. Roboty uderzające w sklep z takim natężeniem chętnie wyczerpią cały swój budżet na zepsutych łańcuchach przekierowań i starych błędach 404, zanim dotrą do strony, którą naprawdę chcą Państwo mieć w indeksie.

Dane z naszego sklepu: 43 478 wizyt botów dziennie wobec około 300 prawdziwych osób, dane śledzenia z 1,4 GB do 24 MB, 38 144 żądań w ciągu dnia od crawlera Meta, 78% ruchu
Trzy liczby z naszego sklepu: ruch automatyczny był znacznie większy niż ruch ludzi, dla którego tworzono przekierowania.

Praktyczny wniosek jest taki, że plan przekierowań nie jest jednorazowym zadaniem migracyjnym: warto go ponownie sprawdzać po każdej większej zmianie katalogu, zmianie motywu lub dodaniu języka, właśnie dlatego, że natężenie ruchu automatycznego uderzającego w adresy URL sklepu jest często znacznie większe niż ruch ludzki, który uzasadnił utworzenie przekierowań.

Łańcuchy przekierowań: cicha opłata przy każdej z tych decyzji

Pojedyncze 301 prawie nic nie kosztuje. Łańcuch trzech lub czterech (stary adres URL do pierwszego zamiennika, do drugiego, do strony końcowej) zmusza każdego robota i przeglądarkę każdego prawdziwego odwiedzającego do wykonania trzech lub czterech żądań, by dotrzeć do jednej strony, a wyszukiwarki, jak wiadomo, podążają tylko za ograniczoną liczbą skoków, zanim zrezygnują. Za każdym razem, gdy adres URL zmienia się ponownie, należy przekierować oryginał bezpośrednio na aktualny cel końcowy, a nie dokładać kolejny skok do poprzedniego. Plan przekierowań zmieniany wiele razy i nigdy nie spłaszczany to jedno z najczęstszych i najmniej widocznych źródeł zmarnowanego crawl budgetu i wolnych stron w starszych witrynach.

Schemat: łańcuch trzech przekierowań 301 od starego adresu do strony docelowej oraz ta sama mapa spłaszczona, w której każdy adres wskazuje bezpośrednio stronę docelową
Wielokrotnie zmienianą mapę przekierowań trzeba spłaszczyć: każdy stary adres wskazuje aktualny cel w jednym przeskoku.

Praktyczna lista kontrolna

  • Przed każdą migracją adresów URL (zmiana platformy, nowy motyw, zmiana folderu językowego) należy wyeksportować z Search Console pełną listę aktualnie zaindeksowanych adresów URL i zbudować plan przekierowań przed wdrożeniem zmiany, a nie po pierwszym raporcie o utraconym ruchu.
  • Kodu 301 należy używać do przeniesień stałych, a kodu 302 do tych naprawdę tymczasowych, i przestać traktować je jako zamienne, „byle działało”.
  • W przypadku treści, które zniknęły na dobre, lepiej zwrócić prawdziwy kod 410 niż 301 na niepowiązaną stronę. Jasny sygnał jest lepszy niż fałszywe przekierowanie.
  • Należy tropić soft 404: każda strona, której tekst mówi „nie znaleziono” lub „już niedostępne”, musi zwracać odpowiedni status HTTP, a nie 200.
  • Łańcuchy przekierowań należy spłaszczać, gdy tylko się jakiś znajdzie, tak aby każdy stary adres URL wskazywał bezpośrednio aktualną stronę końcową w jednym skoku.
  • Należy sprawdzać logi serwera, a nie tylko Search Console, aby wiedzieć, o co roboty naprawdę proszą: natężenie może być znacznie większe, niż sugeruje panel, i jest to najszybszy sposób na wykrycie przestarzałego filtra robotów lub robota wymykającego się spod kontroli, zanim stanie się problemem zasobów.

W skrócie

Kody 301 i 404 nie są dwoma zamiennymi sposobami na usunięcie starego adresu URL: to sygnały przeciwstawne. Jeden mówi „podążaj za mną, przeprowadziłem się”, drugi „nic tu nie ma, za niczym nie podążaj”. Wybór niewłaściwego kosztuje albo historię pozycjonowania, albo zaufanie odwiedzającego, a przy rzeczywistych wolumenach ruchu, w dużej mierze automatycznego, a nie ludzkiego, wielokrotne popełnianie błędu nie jest problemem kosmetycznym, lecz realną utratą uwagi, jaką roboty są gotowe poświęcić domenie. Jeśli ręczne zarządzanie przekierowaniami w konfiguracji serwera jest dla Państwa sklepu niepraktyczne, jedną z opcji jest dedykowany menedżer przekierowań, także w PrestaShop (zob. moduł Przekierowania SEO i jego przewodnik konfiguracji), ale przedstawione wyżej drzewo decyzyjne obowiązuje niezależnie od tego, które narzędzie ostatecznie zapisuje regułę.

Zrzut ekranu modułu Przekierowania SEO w wersji demo PrestaShop 9: lista przekierowań 301 i jedno 302 dla promocji, ze źródłem, celem, typem i liczbą wejść
Moduł Przekierowania SEO w naszej wersji demo PrestaShop 9: 301 dla stałych przeniesień i 302 dla promocji czasowej (panel w języku włoskim).
Przekierowania SEO - menedżer 301/302/404Zarządzanie przekierowaniami 301/302 (zwykłymi, z symbolami wieloznacznymi lub bezpiecznym regex), m…49,99 €Zobacz produkt

Dodaj komentarz

Komentarze są moderowane przed publikacją.

← Blog

Ładowanie...
Powrót do góry