Rodzajów przekierowań URL jest więcej, niż sugeruje debata 301 kontra 302, a wybranie złego po cichu kosztuje cię szybkość lub pozycję w rankingu. Dzielą się na dwie rodziny. Przekierowania HTTP po stronie serwera to kody statusu zwracane przez serwer przed załadowaniem strony - 301, 302, 303, 307, 308. Przekierowania po stronie klienta następują w przeglądarce po załadowaniu strony - znacznik meta refresh lub skok przez JavaScript. Po stronie serwera jest szybciej i czyściej zarówno dla użytkowników, jak i crawlerów; po stronie klienta wolniej i słabiej, i sięgasz po to tylko wtedy, gdy serwer jest poza twoją kontrolą.
Pracuję nad ścieżką przekierowań, więc będę konkretny: co każdy rodzaj robi w sieci, jak odczytują go wyszukiwarki i który faktycznie wybrać. Jeśli chcesz dogłębnie przeanalizować dwa najczęściej używane, przekierowania 301 a 302 omawia tę parę szczegółowo; ten artykuł to pełna mapa.
Krótka wersja na początek: przy trwałym przeniesieniu używaj 301, przy tymczasowym 302, dodaj zachowujące metodę 308/307, gdy POST musi przetrwać, i unikaj opcji po stronie klienta, chyba że nie masz serwera do skonfigurowania.
Dwie rodziny przekierowań#
Przekierowanie to po prostu instrukcja, żeby pójść gdzie indziej, ale miejsce, w którym ta instrukcja się znajduje, zmienia wszystko w kwestii jej działania.
Przekierowanie po stronie serwera to odpowiedź serwera "nie tutaj, idź tam" zanim jakakolwiek treść strony zostanie wysłana. Przeglądarka otrzymuje kod statusu i nagłówek Location i natychmiast się przenosi - żadna treść nie ładuje się pod oryginalnym URL, więc jest szybko i jednoznacznie. Przekierowanie po stronie klienta to coś odwrotnego: oryginalna strona ładuje się w całości, a dopiero potem znacznik meta lub skrypt odsyłają odwiedzającego dalej. Oznacza to zmarnowane ładowanie strony, widoczne migotanie i słabszy sygnał dla wyszukiwarek, które muszą załadować, a niekiedy i wykonać stronę, żeby w ogóle zauważyć przekierowanie. Formalne definicje kodów po stronie serwera znajdują się w RFC 9110, a praktyczne zachowanie przeglądarek jest udokumentowane w przewodniku MDN po przekierowaniach HTTP.
To jedno rozróżnienie - przed stroną czy po niej - to powód, dla którego cały ten artykuł wraca do zasady "używaj przekierowania po stronie serwera, gdy możesz".
Przekierowania kodów statusu HTTP#
To są prawdziwe przekierowania, zwracane przez serwer w zakresie 3xx. Liczy się pięć z nich.
| Kod | Znaczenie | Trwałe? | Metoda zachowana? | Typowe zastosowanie |
|---|---|---|---|---|
| 301 | Przeniesione trwale | Tak | Niegwarantowane | Ostateczne przeniesienie, migracja strony, przejście na HTTPS |
| 302 | Znalezione | Nie | Niegwarantowane | Tymczasowe przeniesienie, edytowalne linki, testy A/B |
| 303 | Patrz inne | Nie | Wymusza GET | Przekierowanie po formularzu do strony z wynikiem |
| 307 | Tymczasowe przekierowanie | Nie | Tak | Tymczasowe przeniesienie na endpoincie POST lub API |
| 308 | Trwałe przekierowanie | Tak | Tak | Trwałe przeniesienie, gdzie metoda musi przetrwać |
Dwie osie porządkujące tabelę to trwałość i obsługa metody. Trwałość to oś SEO: 301 i 308 są trwałe, więc wyszukiwarki przekazują sygnały rankingowe i traktują cel jako kanoniczny, podczas gdy 302, 303 i 307 są tymczasowe i zachowują indeksowanie oryginalnego URL. Obsługa metody to oś inżynierska: 307 i 308 ściśle zachowują metodę HTTP, więc POST pozostaje POST, podczas gdy 301 i 302 historycznie pozwalały jej zmienić się w GET. Kod 303 jest wyjątkowy - stworzony specjalnie, żeby wymusić GET po przesłaniu formularza, żeby odświeżenie strony nie powodowało ponownego przesłania danych. Własna dokumentacja przekierowań Google potwierdza, że traktuje trwałe kody jako sygnały kanonizacji.
Dla codziennych linków internetowych, które są żądaniami GET, oś metody znika i tak naprawdę wybierasz między trwałym a tymczasowym - czyli dokładnie decyzją 301 kontra 302.
Przekierowania po stronie klienta: meta refresh i JavaScript#
Gdy nie możesz skonfigurować serwera, pozostają dwie opcje na poziomie przeglądarki, i obie są kompromisami.
Meta refresh to znacznik HTML w nagłówku strony, który nakazuje przeglądarce załadować nowy URL po opóźnieniu - wzorzec "za 5 sekund zostaniesz przekierowany". Działa, ale strona załadowała się już przed jego uruchomieniem, więc jest wolno, a wyszukiwarki odczytują go niespójnie: natychmiastowe meta refresh jest zwykle traktowane jako trwałe przekierowanie, podczas gdy opóźnione jest niejednoznaczne i może być odczytane jako miękkie 404. Przekierowanie JavaScript jest jeszcze słabsze, bo działa tylko wtedy, gdy crawler wykona skrypt. Google renderuje JavaScript, ale z opóźnieniem, a wiele innych crawlerów w ogóle go nie uruchamia, więc przekierowanie może zostać całkowicie pominięte.
Uczciwy ranking opcji jest prosty: najpierw 3xx po stronie serwera, meta refresh tylko wtedy, gdy kontrolujesz HTML, ale nie serwer, a JavaScript jako ostateczność, gdy nie kontrolujesz niczego innego. Żadne z tego nie dotyczy zarządzanego krótkiego linku, który zawsze używa przekierowania po stronie serwera - techniki po stronie klienta przeznaczone są na sytuacje takie jak statyczny host bez konfiguracji przekierowań.
Które przekierowanie wybrać#
Sprowadź to do decyzji, którą można podjąć w jednym przejściu.
- Trwałe przeniesienie, zwykły link:
301. Pełny transfer rankingowy, traktowany jako kanoniczny. - Tymczasowe przeniesienie, zwykły link:
302. Zachowuje indeksowanie oryginału i możliwość edycji linku. - Przeniesienie obejmuje POST lub wywołanie API: używaj
308dla trwałego lub307dla tymczasowego, żeby metoda przetrwała. - Po przesłaniu formularza:
303, żeby odświeżenie strony nie powodowało ponownego przesłania formularza.
Meta-zasada stojąca za wszystkimi czterema: dopasuj kod statusu do prawdy o przeniesieniu - czy jest trwałe i czy metoda ma znaczenie. Błędne dopasowanie to sposób, w jaki przekierowania po cichu tracą ranking lub psują formularz.
Czego używają krótkie linki#
Zarządzany krótki link to przekierowanie po stronie serwera i jest ku temu dobry powód - to szybka, przyjazna dla crawlerów rodzina. Interesującym wyborem jest który kod, a odpowiedź dla większości krótkich linków to 302.
Brzmi to źle z perspektywy SEO, dopóki nie przypomnisz sobie, do czego służy krótki link. Kod 302 zachowuje możliwość edycji linku, więc możesz go przepisać po wydrukowaniu lub udostępnieniu, i sprawia, że każde kliknięcie trafia do serwera, dzięki czemu twoja analityka pozostaje dokładna - obie rzeczy, które twardocacheowany 301 by ci kosztował. Pełne uzasadnienie, w tym pułapka buforowania przeglądarki, jest w artykule przekierowania 301 a 302, a mechanika rozwiązywania przekierowania na brzegu sieci jest w artykule jak działają skracacze URL. Jedna zasada obowiązuje niezależnie od kodu: ogranicz do jednego skoku. Przekierowanie wskazujące na inne przekierowanie marnuje budżet crawlowania i zwiększa opóźnienie, i jest najszybszym sposobem na zrujnowanie SEO, które krótkie linki skądinąd zachowują.
Cała mapa mieści się w jednym zdaniu: kody po stronie serwera dla prawdziwych przekierowań, trwałe kontra tymczasowe dla SEO, warianty zachowujące metodę dla żądań innych niż GET, a triki po stronie klienta tylko wtedy, gdy serwer jest niedostępny. Wybieraj według prawdy o przeniesieniu, ogranicz łańcuch do jednego skoku, a twoje przekierowania będą robić to, czego oczekiwałeś.
Powiązane artykuły na blogu#
Wypróbuj Elido
Wklej URL, otrzymaj krótki link
Bez rejestracji. Link działa 30 dni. Zarejestruj się, aby zachować go na zawsze.
Za darmo, bez rejestracji · 2 dziennie