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 „/”.
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ć?
- 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ą;
- 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;
- 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;
- 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 😉