Kody odpowiedzi HTTP i SEO

503, 410, 404, 301, 200… To nie żadne odliczanie tylko kody HTTP, które postanowiłam omówić w dzisiejszym poście. Do napisania na ten temat skłonił mnie wczorajszy artykuł na blogu Google, który opisywał, co zrobić kiedy witryna jest niedostępna. Co prawda część informacji tu zawartych to podstawy, ale w niektórych przypadkach może się pojawić kilka możliwości.

Aby sprawdzić, jaki kod zwraca dana strona, możemy skorzystać np. z wtyczki do Firefoxa o nazwie Firebug. Po uaktywnieniu panelu sieci (zakładka Sieć) wpisujemy adres strony, np. http://www.lexy.com.pl/blog (bez znaku „/” na końcu) i w tym przypadku uzyskamy informację o przekierowaniu 301 na adres kończący się znakiem „/”.

Wtyczka Firebug
W każdym z omówionych tu podpunktów podam definicję konkretnego kodu i proszę Was o swoje propozycje rozwiązań.

Podstrona nie istnieje (i nigdy nie istniała)

Jeśli internauta wpisał w polu przeglądarki błędny adres podstrony, która nigdy nie istniała, powinniśmy zastosować:

404 (Not Found) – Nie znaleziono – serwer nie odnalazł zasobu według podanego URL ani niczego co by wskazywało na istnienie takiego zasobu w przeszłości.

W tym przypadku ważne jest stworzenie odpowiedniej strony błędu – najlepiej takiej, na której znajdą się odnośniki do najważniejszych podstron, dzięki którym jest szansa na zatrzymanie internauty na stronie.

Należy również upewnić się co do tego, że strona faktycznie zwraca błąd 404, a nie 200 z informacją o niedostępności strony (tzw. miękka 404). Na szczęście o tego typu błędach zostaniemy poinformowani w narzędziach dla webmasterów, tak więc warto do nich od czasu do czasu zaglądać.

Przypomnijmy sobie jeszcze, co JohnMu mówił na temat tzw. soft 404:

Google will not penalize your site for having soft-404 pages. Having soft-404 pages makes it harder for us to recognize new and updated content on your site, but it does not mean that we would see you site as being any less valuable in the search results :-). There’s no need to rush and do something drastic here. Yes, it would be great if it could be cleaned up (that’s why we have started reporting these things), but in general, it’s not critical.

W skrócie oznacza to, aby nie panikować po wykryciu miękkich 404, ale lepiej je poprawić.

Podstrona jest chwilowo niedostępna

Z sytuacją taką możemy się spotkać m.in. w sklepach, które chwilowo nie mają danego produktu w asortymencie. Co w takim przypadku?

200 (OK) – Zawartość żądanego dokumentu (najczęściej zwracany nagłówek odpowiedzi w komunikacji WWW Internetu)

Możemy zastosować 200 i dopisać na stronie informację o tym, że produkt jest chwilowo nieodstępny, ewentualnie zachęcając do zapoznania się z podobnymi dostępnymi w danej chwili produktami.

A może lepsze będzie przekierowanie 301, np. do kategorii produktu?

301 (Moved Permanently) – Trwale przeniesiony – żądany zasób zmienił swój URI i w przyszłości zasób powinien być szukany pod wskazanym nowym adresem.

Pamiętajmy jednak, że 301 wyindeksuje nam podstronę produktu i może minąć trochę czasu, aż podstrona produktu wróci do indeksu po tym, kiedy produkt będzie ponownie dostępny.

Niektórzy decydują się w takim przypadku na zwykłą 404:

404 (Not Found) – Nie znaleziono – serwer nie odnalazł zasobu według podanego URL ani niczego co by wskazywało na istnienie takiego zasobu w przeszłości.

Z jednej strony użytkownicy od razu widzą, że podstrona nie istnieje, z drugiej jednak – pod kątem SEO nie jest to idealne rozwiązanie. Poza tym, według powyższej definicji błąd ten nie powinien być wyświetlany w przypadku niedostępności istniejącej wcześniej podstrony.

Myślę, że tutaj wybór konkretnego rozwiązania dobrze byłoby uzależnić od szacowanego czasu, przez jaki podstrona będzie niedostępna. Jeśli to będą miesiące, nie warto denerwować użytkownika pokazując mu przez tak długi okres niedostępny produkt. Z drugiej strony, jeśli właścicielowi serwisu np. ogłoszeniowego zależy z jakichś powodów na jak największej ilości zaindeksowanych podstron, pozostawi on 202 informując jedynie o tym, że są to ogłoszenia archiwalne

Podstrona została usunięta

Jeśli produkt zostaje całkowicie usunięty, wtedy również do rozważenia mamy kilka możliwości:

410 (Gone) – Zniknął (usunięto) – zażądany zasób nie jest dłużej dostępny i nie znany jest jego ewentualny nowy adres URI; klient powinien już więcej nie odwoływać się do tego zasobu.

Zgodnie z informacją uzyskaną od JohnaMu, Google szybciej usunie taką podstronę z wyników wyszukiwania niż w przypadku zwrócenia 404:

A 410 will generally result in us removing a URL faster from the index (…) using a 410 for URLs that are really permanently gone is a good idea, but it is not a requirement; a 404 will generally be seen similarly over time. If at some point those old URLs are re-used, then it may take a little bit longer for us to notice that if you have been using a 410, but in the bigger picture it will generally pick up again as well.

Nie trzeba się również martwić o to, co stanie się ze stroną, jeśli jednak będzie ponownie dostępna – po prostu może minąć trochę więcej czasu, aż zostanie ponownie zaindeksowana.

Kolejne rozwiązanie jest stosowane głównie pod kątem SEO, aby przekierować na odpowiednie adresy jak najwięcej tzw. link juice. Chodzi oczywiście o 301, za pomocą której można przekierować nieistniejącą podstronę na inną.

301 (Moved Permanently) – Trwale przeniesiony – żądany zasób zmienił swój URI i w przyszłości zasób powinien być szukany pod wskazanym nowym adresem.

Pytanie tylko – na co ją przekierować?

  1. na stronę główną – w tym przypadku korzyści pod kątem SEO są niewielkie, ponieważ podstrona była zapewne zoptymalizowana pod kątem dość szczegółowej frazy, a strona główna w najmniejszym stopniu potrzebuje przejęcia jej pozycji na nią;
  2. na podstronę (pod)kategorii, do której była ona przypisana – w tym przypadku jeśli np. mówimy o podstronie produktu jakim jest komplet pościeli satynowej, przekierowanie jej na kategorię „pościel satynowa” nie tylko przekaże jej moc linków, ale także zatrzyma użytkowników na stronie i być może zachęci do zakupu nieco innego modelu;
  3. na podstronę o jak najbardziej zbliżonej zawartości (np. produkt o zbliżonych parametrach) – tutaj głównym problemem może być określenie, na jakiej podstawie podobieństwo ma być ustalane;
  4. na podstronę z profilem użytkownika, który stworzył daną podstronę – jeśli rozważamy tu przypadek serwisu ogłoszeniowego (np. serwisu dla tłumaczy), w którym ogłoszenia mogą być usuwane na pewien okres, ale te ponownie dodane nadal dotyczą tej samej oferty (np. tłumaczenia z angielskiego na polski), wtedy możemy przekierować usuwaną podstronę na profil użytkownika.

Serwis jest chwilowo niedostępny

503 (Service Unavailable) – Usługa niedostępna – serwer nie jest w stanie w danej chwili zrealizować zapytania klienta ze względu na przeciążenie.

Tutaj posłużę się fragmentem wspomnianego wcześniej artykułu na blogu Google:

Zamiast zwracania błędu HTTP 404 (nie znaleziono) lub informacji o braku treści wraz z rezultatem HTTP 200 (OK), należy ustawić zwracanie kodu HTTP 503 (serwis chwilowo niedostępny), który informuje boty wyszukiwarek o tymczasowym błędzie. (…) Nie raz spotykamy się z witrynami które zwracają kod HTTP 200 (OK) mimo przekroczonego limitu transferu, dla niepoprawnie lub wcale nie funkcjonujących serwerów lub dla stron w budowie. Ustawienie HTTP 503 jest idealnym rozwiązaniem dla tych wszystkich sytuacji.

Zastosowanie kodu HTTP 503 wstrzymuje roboty przed indeksacją błędnej zawartości strony. Problem może się pojawić dopiero wtedy, kiedy 503 zwracana jest przed długi okres – wtedy może zostać potraktowana jako awaria serwera, a strona w związku z tym może zostać wyindeksowana.

Inne sytuacje

Zapraszam do zapoznania się z komentarzami do tego posta, w których rozwinęła się ciekawa dyskusja m.in. na temat przekierowania 302, które tu pominęłam.

302 (Found) – Znaleziono – żądany zasób jest chwilowo dostępny pod innym adresem a przyszłe odwołania do zasobu powinny być kierowane pod adres pierwotny

Podsumowanie

Przy podejmowaniu decyzji na temat zwracanych nagłówków należy zwrócić uwagę na to:

  • jak zastosowane rozwiązanie wpłynie na użytkowników;
  • co na dany temat uważa programista – w niektórych przypadkach może się okazać, że korzyści pod kątem SEO są zbyt małe w porównaniu do tego, jak dane rozwiązanie odbije się na wydajności strony. Nie zawsze więc dane rozwiązanie, np. przekierowania 301 w tę i z powrotem (przy kilkukrotnych zmianach adresów), będzie mogło zostać wprowadzone na stronie. W końcu nie zawsze SEO jest najważniejsze 😉
KATEGORIE: Pozycjonowanie stron
Comments (15)

Jak na razie z 302 miałam same problemy 😉 Miałam taką sytuację, w której kilka domen miało kierować na jedną docelową. Były to domeny z różnymi TLD i w planie było ich późniejsze wykorzystanie, tyle że „późniejsze” oznaczało „w ciągu kilku lat” 😉 Uznano więc, że powinno być tutaj zastosowane przekierowanie tymczasowe 302 ze wszystkich domen na docelową. Efekt był taki, że docelowa się wyindeksowała, a jedna z tych, które przekierowywały na nią za pomocą 302, pojawiła się w indeksie 😉 Przez tamte problemy unikam 302 i dotychczas nie miałam powodów do tego, aby używać takiego przekierowania.

„Widzę, że wczorajszy artykuł z Googlowego bloga Cię pozytywnie natchnął.”
Ten temat (w szczególności jeśli chodzi o to, co zrobić z tymczasowo lub stale usuniętymi podstronami) interesował mnie już dość dawno, w szczególności kiedy powstał ten temat – http://forum.maxroy.com/optymalizacja-stron/puste-strony-co-robic-400/

A czy w którejś z opisanych tu sytuacji zastosowałbyś 302?

Widzę, że wczorajszy artykuł z Googlowego bloga Cię pozytywnie natchnął. Bardzo się cieszę, że poświęciłaś Swój czas na ten skondensowany i wartościowy tekst. Ze swojej strony chciałbym rozwinąć trochę temat różnicy między kodami 301 a 302, o którym nie napisałaś. Dla mnie to różnica dość znacząca z punktu widzenia SEO i tworzenia stron internetowych zwłaszcza z subdomenami z przekierowaniem. Zachęcam do lektury: http://www.bigoakinc.com/blog/when-to-use-a-301-vs-302-redirect/ – artykuł choć stary, ciągle jest aktualny.

Odnośnie sekcji „Podstrona jest chwilowo niedostępna”. Moim zdaniem najlepsza jest wersja z kodem 200. Odnosząc się do przykładu z produktami zrealizowałbym to tak. W bazie danych produkty mają flagi typu is_deleted (brak produktu w magazynie) oraz is_archived (produkt wycofany ze sprzedaży). W zależności od specyfiki sklepu produkty oznaczone is_deleted mogą być wyświetlane na listach produktów, ale z od razu widoczną informacją o ich chwilowej niedostępności. Jeśli zaś usunięcie produktu oznacza jego długotrwałą nieobecność (np. oczekiwanie na kolejne wydanie książki), to usunąłbym z listy produktów pozycję, pozostawiając jednak dostępną stronę produktu, którą użytkownicy mogą osiągnąć z wyników wyszukiwania / odnośników zewnętrznych. To samo zrobiłbym z produktami archiwalnymi, których strony byłyby dostępne, ale z wyraźnym komunikatem, że produkt został wycofany. W obu przypadkach na stronach dodałbym sekcję podobnych produktów na podstawie (pod)kategorii, czy tagów.

Czy 302 nie miałoby zastosowania w sklepie w sytuacji, gdy produkt jest chwilowo/na pewien czas wycofywany z oferty? Wtedy można 302 na kategorie do czasy ponownego wprowadzenia produktu.

Brakuje jeszcze w opisie 302 🙂

Wiem, tylko brakuje mi tu do niego zastosowania w podanych przykładach 😉

Przykład, który ostatnio przerabiałem: gazeta ma działy w subdomenach (sport.serwis.pl), ale ruch jest przekierowywany na podstrony w domenie (serwis.pl/sport/). Subdomeny zostały stworzone na potrzeby kampanii ATL/BTL, a właściciele nie chcieli pozostać na silniku który obsługiwał ich serwis internetowy.

Na subdomenach zostały uruchomione częściowo kody 301 i 302. Tam gdzie było 302 na SERPach widać było subdomenę oraz domenę z działem, zazwyczaj w sąsiedztwie. 301 pokazywało w SERPach tylko stronę docelową.

Nie korzystałem z opisanego w przywołanym przeze mnie artykule 302 off-domain bo kiedy zgłębiłem temat to istotnie, w wielu przypadkach Google może to uznać za nieuczciwe przejęcie atrakcyjnej domeny z przekierowaniem ruchu na inną. Ale nie mam pojęcia (ani nie znalazłem nigdzie informacji) jak Google ocenia, że takie przekierowanie jest wiarygodne.

Wyobraźmy sobie sytuację: przejmujemy wszystkie domeny jakie pojawiają się na top10 na słowo „książki” i robimy na nich 301 na naszą nieznaną nikomu księgarnię. Efekt będzie taki (prawdopodobnie), że na top10 zobaczymy tylko naszą domenę, a nie te przejęte. Gdyby jednak zrobić przekierowanie 302 wątpię, aby pojawiły się wszystkie na stronie SERP i przekierowały w ten sposób ruch. Ale kilka pojawi się w ten sposób na pewno. Jak Google to ocenia? Nie mam pojęcia. Ale wiem jedno. Lepiej mieć miejsca od 2-10, niż tylko 1. Bo wówczas pozostałych 9 to nasza konkurencja. Dlatego 302 ma sens.

301używam do przekierowania „starych” linków na nowe np. kiedy zmieniamy klientowi stronę na nową, albo kiedy używam wtyczek ze slideshow w WP (slajdy tworzone są ze zdjęć dodanych w postach, te zaś są same w sobie puste – tu przekierowuje na stronę z treścią).

Często używam też tego przekierowania po to, aby zaszyć w nim tagi GA – czyli mam brzydki url ze zmiennymi GA i robię z niego ładny i krótki np. http://wykorzystajto.pl/m/. Ta technika umożliwia moim klientom to, że mogą używać bezpłatnego programu do budowania listy mailowej lub mailingów, a zaszywając takie linki wiedzą jednocześnie jaki jest CTR z konkretnych maili i kampanii (niestety OpenRate tym nie zbadam ale wskaźnik ten ma coraz mniejsze znaczenie przy dzisiejszych programach pocztowych).

Ufff.. się rozgadałem. Ale to dlatego że temat ciekawy 🙂

Skoro mowa tutaj o programie Firebug to polecam również dodatek SpeedTest dzięki, któremu wykryjemy na naszej witrynie rzeczy, które można poprawić aby była ona lepiej widziana przez google 🙂

Lexy:
Bardzo dobry artykuł. Ja bym jeszcze dodał informację o błędzie 304.
Sporo mi tego wyświetla Firebugu 😉

304 Not Modified jest odpowiedzią serwera HTTP informującą o tym, że zasób nie uległ zmianie patrząc pod kątem danych, które przekazano w żądaniu o ten zasób. Odpowiedź 304 nie może zawierać treści wiadomości – zawsze kończy się pustą linią po ostatniej linii nagłówka odpowiedzi serwera.

Marian:
Niestety wtyczka Speed Test nie współpracuje z FF 3.6.13 :/

@pierwsza pozycja – poza tym, że użyłeś sobie komentarza jako pozycjonującego (ale zonk bo nofollow :)) to jak wykorzystujesz 304? Bo definicja skopiowana z leksykonuseo a nie za bardzo widzę związek tego kodu z optymalizacją… Wyjaśnisz coś bardziej?

A mam też pytanie do was i do Marty w związku z tym tematem i… aktualnymi wydarzeniami na północy Afryki. Wiemy wszyscy, że najczęściej pozycjonowaną frazą wakacyjną jest (poza last minute) wczasy egipt, wczasy tunezja itp. Jakoże mamy tam zamieszki (a może i wojnę domową) to wielu turystów raczej myśli o spokojniejszych zakątkach.
Teraz zadanie dla SEOwców: biuro dotychczas pozycjonowało się tylko na Tunezję i Egipt – jak wykorzystać optymalizację (być może kody HTTP), żeby choć trochę ruchu odzyskać, i „przenieść” go na oferty wakacyjne z Hiszpanii czy Grecji? Jakieś sugestie? Włącznie z „chłytami marketingowymi” i psychologicznymi na SERP?

Sporo tego, przyda się 😉

Witam.

Widzę, minęło sporo czasu (ba, 3 lata) od tego wpisu, ale akurat do niego mam pytanie…

Będę przebudowywał stronę tak, aby była oparta o CMSa. W międzyczasie muszę postawić tymczasową stronę (dosłownie, tylko jedna, główna), bo w aktualnym stanie nawet nie pod względem SEO,a pod względem estetyki jest niedobrze.

W google’u są zaindeksowane podstrony. Nie chciałbym ich wyindeksowywać, ale też nie wiem, czy będę tworzył linki w takiej postaci, w jakiej były. Jakiego typu przekierowania powinienem użyć, jeśli mają one teraz kierować do strony głównej?

Pozdrawiam

[…] że polecam Ci zapoznać się z artykułem Marty Gryczko na temat kodów odpowiedzi stron pt.: „Kody odpowiedzi HTTP i SEO”. Jest to naprawdę bardzo wartościowy artykuł dotyczący tego jakie przekierowania powinniśmy […]

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Copyright 2005-2023 SEO blog Lexy. All Right Reserved.