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 odpowiedziOpis słownyKomentarzWpływ na SEO
200OKSerwer 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.
301Moved PermanentlyTrwale 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.
302FoundZnaleziono. 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.
310Too many redirectsZa 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.
401UnauthorizedNieautoryzowany dostęp. Klient przesłał żądanie o zasób, które wymaga uwierzytelnieniaStrona nie zostanie zaindeksowana, a jeżeli znajdowała się w indeksie zostanie z niego usunięta
403ForbiddenZabronione. 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
404Not FoundNie 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.
410GoneZniknął/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.
429To many requestsZa 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
500Internal Server ErrorWewnę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
502Bad GatewayBłą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 klientaStrona nie zostanie zaindeksowana. Często powtarzający się błąd serwera spowoduje ograniczenie Crawl Budget’u
503Service UnavailableUsł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
504Gateway TimeoutPrzekroczony czas bramy. Serwer, który jest bramą lub pośrednikiem, nie otrzymał w ustalonym czasie odpowiedzi od innego serweraStrona 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).

Redirect Checker

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.

Funkcja własna w Google Sheets

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.

Daniel Jędrysik

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.