Kod błędu 404 jest częścią standardowego zestawu odpowiedzi protokołu HTTP, który informuje przeglądarkę o statusie żądania. Błąd ten znacza, że serwer nie może znaleźć żądanego zasobu - najczęściej strony internetowej, ale też pliku graficznego, arkusza stylów, skryptu itd. W tym artykule dowiesz się o najczęstszych przyczynach tego błędu oraz o trzech sprawdzonych sposobach na jego diagnozę.

Przyczyny występowania błędu 404

Błąd 404 może być spowodowany wieloma czynnikami. Za część z nich może być odpowiedzialny sam odwiedzający stronę, ale równie czesto źródłem problemu jest konfiguracja serwera lub błąd na stronie. Do najczęstszych przyczyn błędu 404 można zaliczyć:

Niepoprawny adres URL
Najprostsza i najczęstsza przyczyna to literówka w adresie wpisanym w przeglądarce przez odwiedzającego. Nawet drobny błąd w nazwie domeny lub ścieżce do strony może spowodować wyświetlenie błędu.

Usunięcie lub przeniesienie zasobu
Jeśli właściciel strony usunął daną podstronę lub zmienił jej adres bez odpowiedniego przekierowania (np. za pomocą kodu 301), odwiedzający trafią na błąd 404.

Boty skanujące strony
W internecie nieustannie działają boty skanujące strony internetowe i serwery w poszukiwaniu podatności na ataki. Zazwyczaj ich aktywność ogranicza się do prób odnalezienia plików, do których potencjalnie niepowołane osoby nie powinny mieć dostępu, takich jak https://moja-strona.pl/admin.php czy https://moja-strona.pl/config.php. W większości przypadków próba dostępu do takich adresów kończy się błędem 404 Not Found, ponieważ plik nie istnieje na serwerze. Tego rodzaju błędami nie musisz się nadmiernie przejmować, o ile nie występują w dużej ilości.

Problemy z konfiguracją serwera
Niektóre błędy w konfiguracji serwera, np. nieprawidłowa zawartość pliku .htaccess, mogą prowadzić do nieprawidłowego działania adresów URL.

Zablokowanie dostępu do zasobu
Zdarza się, że dostęp do niektórych zasobów jest zablokowany. W takim przypadku serwer zazwyczaj odpowie błędem 401 Forbidden, ale w zależności od źródła problemu może również odpowiedzieć 404 Not Found.

Uruchomienie testu strony w poszukiwaniu błędnych linków

Jeżeli podejrzewasz, że Twoja strona ma problem z nadmiernie występującymi błędami 404 Not Found zacznij od użycia narzędzia typu dead link checker (np. https://www.deadlinkchecker.com/). Przeskanuje ono całą stronę internetową wraz z jej wszystkimi podstronami w poszukiwaniu niedziałających linków. Narzędzia tego typu są bardzo proste i szybkie w użyciu.

Wynik skanu uszkodzonych linków

Sprawdzenie błędów indeksacji w Google Search Console

Informacje o błędach 404 znajdziesz również w Google Search Console. Jeżeli jeszcze nie używasz tego narzędzia to zdecydowanie powinieneś bo dostarcza ono wiele bardzo cennych informacji, które mają bezpośredni wpływ na pozycję Twojej strony w wynikach wyszukiwarki Google.

Błędy indeksacji

Z lewego menu wybierz pozycję Strony znajdującej się w grupie Indeksowanie. Zobaczysz listę wszystkich stron, które zostały przetworzone przez robota parsującego strony

Google Search Console

Poniżej wykresu podsumowującego indeksację znajdziesz listę stron, które zostały zaindeksowane, oraz tych, które z różnych powodów nie mogły zostać zaindeksowane, na przykład z powodu błędów lub ograniczeń wynikających z konfiguracji w pliku robots.txt. Nie powinieneś dopuścić do częstego występowania błędów, ponieważ mogą one negatywnie wpłynąć na ranking Twojej strony w Google. Stronami niezindeksowanymi (oznaczonymi szarym kafelkiem) nie musisz się zbytnio przejmować, jednak warto je regularnie przeglądać, aby upewnić się, że na tej liście nie ma adresów, które powinny być zaindeksowane.

Po naprawieniu błędu możesz poprosić Google o weryfikację poprawki wybierając opcję Sprawdź poprawkę.

Pamiętaj jednak, że ten sposób identyfikacji niedziałających adresów działa tylko w przypadku stron HTML. Nie znajdziesz tutaj informacji, na przykład o brakujących obrazkach czy innych zasobach.

Analiza access logów serwera

Access logi to pliki serwera zawierające informacje o każdym odebranym żądaniu, niezależnie od tego, czy zostało poprawnie obsłużone, czy zakończyło się błędem. Zawierają dane takie jak adres IP użytkownika, czas żądania, metodę HTTP, żądany zasób (URL), status odpowiedzi HTTP i czas odpowiedzi serwera. Są przydatne do monitorowania ruchu na stronie, analizy zachowań użytkowników, wykrywania błędów (np. właśnie 404) oraz ochrony przed podejrzanymi aktywnościami, takimi jak próby ataków.

W zależności od używanego oprogramowania serwera jak i systemu operacyjnego, lokalizacja oraz sposób dostępu do logów może się różnić.

Access logi w Apache (Linux)

Domyślnie pliki access logów znajdują się w:

  • /var/log/apache2/access.log w systemach Debian/Ubuntu
  • /var/log/httpd/access_log w systemach CentOS/Red Hat

Jeżeli Twoja strona internetowa jest skonfigurowana jako Virtual Host logi mogą być dostępne w innym pliku, domyślnie będzie to plik other_vhosts_access.log w tym samym folderze, chyba że w konfiguracji strony została wskazana inna lokalizacja.

Logi możesz albo pobrać na swój komputer i tam je przeglądać w wybranym przez Ciebie programie lub zrobić to bezpośrednio na serwerze, np. poleceniem less /var/log/apache2/access.log. Możesz również wygodnie wyszukać w logach wpisy tylko takie, które zawierają interesującą Ciebie frazę:

less /var/log/apache2/access.log | grep " 404 "

W ten sposób zobaczysz logi żądań, które zakończyły się odpowiedzią serwera 404 Not Found:

Zrzut ekranu access logów

Access logi w Nginx (Linux)

Domyślnie pliki access logów serwera Nginx znajdziesz w /var/log/nginx/access.log. Logi przejrzysz w taki sam sposób jak w przypadku serwera Apache - np. za pomocą polecenia less lub less ... | grep " 404 " jeżeli chcesz ograniczyć wyniki tylko do błędów 404.

Access logi w IIS (Windows)

Lokalizację logów oraz ich konfigurację dla swojej strony sprawdzisz w Menedżerze IIS:

  • Otwórz Menedżera IIS
  • Wybierz stronę, dla której chcesz sprawdzić logi
  • W zakładce Logging znajdziesz informacje o lokalizacji logów oraz możliwość ich konfiguracji

Logi w IIS

Logi możesz przejrzeć w dowolnym edytorze tekstowym (np. notatniku).