Kody odpowiedzi HTTP
Aby przeglądarka wyświetliła pożądaną stronę, wpierw do serwera kierowane jest zapytanie. W odpowiedzi uzyskuje m.in. numeryczny kod, w którym zawarta jest informacja o tym, czy zapytanie zostanie obsłużone i jaki będzie jego efekt. W tym wpisie przeczytasz o najpopularniejszych kodach odpowiedzi HTTP oraz o ich znaczeniu dla SEO. Na koniec przedstawię Ci kilka sposobów, jak sprawdzić, jaki rodzaj odpowiedzi wysyła serwer na zapytanie o konkretny adres URL.
- Autor:
- Daniel Jędrysik
- Czas czytania:
- Publikacja:
- 27 grudnia 2020
- Aktualizacja:
- 3 kwietnia 2022
- Kategorie:
Każde zapytanie wysyłane przez przeglądarkę do serwera otrzymuje odpowiedź. Jedną z pierwszych informacji, jaka zostaje zwrócona, jest numeryczny kod odpowiedzi serwera. Za jego pomocą serwer informuje klienta (przeglądarkę) czy jego żądanie zostanie obsłużone i czego można się spodziewać.
W tym artykule przedstawię Ci kody odpowiedzi HTTP, z którymi najczęściej się spotykam w pracy SEOwca, wraz z ich znaczeniem. Dowiesz się także, jak samodzielnie sprawdzić, jaką odpowiedź zwraca serwer na zapytanie o adres URL.
Każde zapytanie wysyłane przez przeglądarkę do serwera otrzymuje odpowiedź. Jedną z pierwszych informacji, jaka zostaje zwrócona, jest numeryczny kod odpowiedzi serwera. Za jego pomocą serwer informuje klienta (przeglądarkę) czy jego żądanie zostanie obsłużone i czego można się spodziewać.
W tym artykule przedstawię Ci kody odpowiedzi HTTP, z którymi najczęściej się spotykam w pracy SEOwca, wraz z ich znaczeniem. Dowiesz się także, jak samodzielnie sprawdzić, jaką odpowiedź zwraca serwer na zapytanie o adres URL.
Co to jest kod odpowiedzi HTTP?
Kod odpowiedzi HTTP jest to informacja zwrotna od serwera na przesłane przez klienta (przeglądarkę) zapytanie. Pojawia się on zaraz po wersji protokołu HTTP, a przed opisem słownym kodu.
Kod HTTP występuje w postaci trzech cyfr, z których pierwsza informuje o grupie, do jakiej należy kod. Dzięki temu wstępnie możemy się rozeznać, z jakiego rodzaju odpowiedzią mamy do czynienia.
Grupy kodów odpowiedzi serwera
1xx – kody informacyjne
2xx – kody powodzenia
3xx – kody przekierowania
4xx – kody błędu klienta
5xx – kody błędu serwera
Najważniejsze kody odpowiedzi HTTP
W poniższej tabeli przedstawiłem kilkanaście kodów, z którymi najczęściej mam do czynienia wraz z informacją jak wpływają one na SEO.
Kod odpowiedzi | Opis słowny | Komentarz | Wpływ na SEO |
---|---|---|---|
200 | OK | Serwer zwraca kod 200 w przypadku, gdy żądanie zostało poprawnie przesłane, zrozumiane i wykonane. | Strony z kodem odpowiedzi 200 są indeksowane przez roboty wyszukiwania. |
301 | Moved Permanently | Trwale przeniesiony. Tzw. przekierowanie trwałe. Przeglądarka otrzymuje informację, że zasobu, o który prosi, nie jest dostępny pod wskazanym adresem, ale serwer posiada informację o jego obecnej lokalizacji. Wykonywane jest także przekierowanie użytkownika do nowej lokalizacji. | Przekierowanie 301 jest wykorzystywane w przypadku zmiany adresu URL na nowy. Pozwala zachować dotychczasowe pozycje i przenosi niemal całą moc na nowy adres. Z czasem przekierowany adres znika z indeksu. |
302 | Found | Znaleziono. Tzw. przekierownie tymczasowe. Zasób chwilowo obecny jest pod innym adresem, a kolejne odwołania do niego powinny być kierowane pod adres pierwotny. | Przekierowany adres nie znika z indeksu i nie traci swojej mocy. |
310 | Too many redirects | Za dużo przekierowań. Żądanie nie może zostać zrealizowane, ponieważ występuje zbyt długi łańcuch przekierowań. | Negatywnie wpływa na SEO i może prowadzić do spowolnienia pracy crawlerów na stronie. Adres URL z wadliwym przekierowaniem zniknie z wyników wyszukiwania. |
401 | Unauthorized | Nieautoryzowany dostęp. Klient przesłał żądanie o zasób, które wymaga uwierzytelnienia | Strona nie zostanie zaindeksowana, a jeżeli znajdowała się w indeksie zostanie z niego usunięta |
403 | Forbidden | Zabronione. Serwer zrozumiał zapytanie, ale dostęp do zasobu jest zablokowany, przez co nie może on zrealizować żądania. | Strona nie zostanie zaindeksowana, a jeżeli znajdowała się w indeksie zostanie z niego usunięta |
404 | Not Found | Nie znaleziono. Nie znaleziono zasobu na serwerze. Kod ten wykorzystywany jest do wyświetlania strony 404 w przypadku, gdy użytkownik niepoprawnie wpisze adres URL lub zostanie błędnie przekierowany z innego adresu. | Strona nie zostanie zaindeksowana, a jeżeli znajdowała się w indeksie, zostanie z niego usunięta. |
410 | Gone | Zniknął/Usunięto. Żądany zasób nie jest już dłużej dostępny. Nie jest również znany alternatywny adres, na który można przekierować użytkownika. Klient nie powinien już więcej odwoływać się do tego adresu. | Strona nie zostanie zaindeksowana, a jeżeli znajdowała się w indeksie, zostanie z niego usunięta. |
429 | To many requests | Za dużo żądań. Klient wysłał zbyt wiele żądań w określonym czasie. Błąd ten można zaobserwować np. przy wysłaniu prośby o indeksowanie dużej liczby adresów URL za pomocą Google Indexing API. | Strona nie zostanie zaindeksowana |
500 | Internal Server Error | Wewnętrzny błąd serwera. Żądanie nie może zostać przetworzone wyniku wewnętrznego błędu serwera. | Strona nie zostanie zaindeksowana. Często powtarzający się błąd serwera spowoduje ograniczenie Crawl Budget’u |
502 | Bad Gateway | Błąd bramy. Serwer, spełniający rolę bramy lub pośrednika, otrzymał niepoprawną odpowiedź od serwera nadrzędnego (np. zbyt długi czas oczekiwania) i nie jest w stanie zrealizować żądania klienta | Strona nie zostanie zaindeksowana. Często powtarzający się błąd serwera spowoduje ograniczenie Crawl Budget’u |
503 | Service Unavailable | Usługa niedostępna. W tej chwili serwer nie jest w stanie zrealizować żądania klienta ze względu na problemy z hostem. | Strona nie zostanie zaindeksowana. Często powtarzający się błąd serwera spowoduje ograniczenie Crawl Budget’u |
504 | Gateway Timeout | Przekroczony czas bramy. Serwer, który jest bramą lub pośrednikiem, nie otrzymał w ustalonym czasie odpowiedzi od innego serwera | Strona nie zostanie zaindeksowana. Często powtarzający się błąd serwera spowoduje ograniczenie Crawl Budget’u |
Powyższa tabela stanowi jedynie wycinek tego, w jaki sposób serwery i klienci użytkownika komunikują się między sobą. Znajomość podstawowych kodów odpowiedzi pozwala odkryć błędy techniczne i obszary, które wymagają interwencji programisty. Naprawa błędów 404, ustawienie przekierowań 301 czy też rozwiązanie problemów z serwerem ułatwia pracę robotom indeksującym, a tym samym podnosi nasze szanse na zaistnienie w wynikach wyszukiwania.
Sprawdzenie kodu odpowiedzi serwera
Skoro wiemy już, czym są kody odpowiedzi HTTP i znamy przykładowe komunikaty, poznajmy narzędzia, które umożliwią nam szybkie sprawdzenie, czy zasób pod podanym adresem URL jest dostępny, czy nie.
Redirect Checker
Narzędzie, które dość często wykorzystuję w swojej pracy. Pozwala ono nie tylko sprawdzić kod odpowiedzi adresu URL, ale także „podszyć” się pod innego klienta i sprawdzić, czy np. Googlebot nie dostaje innej informacji niż użytkownik. Poza tym otrzymujemy informację o innych nagłówkach HTTP, rodzaju serwera czy rodzaju treści (Content Type).
Link do narzędzia: https://www.redirect-checker.org/
httpstatus.io
Kolejne bardzo przydatne narzędzie. Umożliwia on sprawdzenie do 100 adresów URL jednocześnie, ale zwraca mniejszą ilość informacji. Ciekawą opcją jest możliwość weryfikacji 4 podstawowych wariantów domeny – z www i bez oraz w wersji z protokołem http i https. Pozwala to szybko sprawdzić, czy wszystkie adresy wskazują na wersję kanoniczną. Tak jak w poprzednim narzędziu możemy wybrać klienta użytkownika.
Link do narzędzia: https://httpstatus.io/
Screaming Frog
Crawler, bez którego nie wyobrażam sobie pracy. Zwraca on mnóstwo ciekawych informacji, a sam opis tego narzędzia to temat na solidny artykuł. W gąszczu danych Screaming Frog podaje także kody odpowiedzi serwera wraz z opisem słownym. Wersja darmowa umożliwia jedynie skan 500 zasobów i nie daje możliwości zmiany klienta użytkownika.
Arkusze Google
Arkusze Google dają świetną możliwość sprawdzenia dużej ilości adresów URL niemal jednocześnie. Wystarczy utworzyć prostą funkcję w edytorze skryptów.
Teraz wystarczy w kolumnie A umieścić interesujące nas adresy URL a w kolumnie B dodać formułę:
=urlStatusCode(A1)
Po kilku sekundach w komórkach kolumny B otrzymamy kod odpowiedzi HTTP.
curl (terminal w Mac)
Na urządzeniach z systemem iOS również możemy szybko sprawdzić, jaki kod otrzymamy przy próbie połączenia się z wybranym adresem URL. Służy do tego narzędzie wiersza poleceń curl. Jest ono często wykorzystywane przez programistów do wysyłania żądań do i z serwera. Nam wystarczy jedynie jedno polecenie.
curl -I https://daniel-jedrysik.pl
W informacji zwrotnej otrzymamy wszystkie dane, które serwer przesyła w nagłówku HTTP
Własny skrypt
Możemy także wykonać własny skrypt, który cyklicznie będzie sprawdzał, czy strona działa i czy nie wystąpił jakiś problem z serwerem. Ja wykorzystam do tego oczywiście Pythona oraz systemowego Crona. Całość będę zapisywał w arkuszach Google (za pomocą API), a dane prezentował w przystępnej formie dzięki dynamicznym raportom Google Data Studio. W kolejnym wpisie przedstawię – krok po kroku – jak przygotować taki skrypt, który ułatwi pracę nad wieloma projektami.
Od 2018 roku związany jestem z marketingiem internetowym. Specjalizuję się w optymalizacji stron internetowych i sklepów. Obecnie pełnię funkcję Marketing Managera w Agencji KS. Prywatnie jestem miłośnikiem fantastyki oraz zapalonym czytelnikiem.