Błąd 304 Not Modified – co oznacza i jak go naprawić

Growth HubGrowth Hub
03/03/2026
Przeczytasz w 4 min

Kod HTTP 304 Not Modified informuje przeglądarkę, że żądany zasób nie zmienił się od ostatniego pobrania, co pozwala na użycie lokalnej kopii z pamięci podręcznej. Mimo że nie jest to błąd, jego nieprawidłowe działanie może wymagać interwencji użytkownika (np. czyszczenie cache) lub administratora serwera. Prawidłowe zarządzanie tym kodem pozytywnie wpływa na optymalizację strony i SEO.

Czym jest kod HTTP 304 Not Modified

Kod HTTP 304 Not Modified należy do grupy 3xx, czyli odpowiedzi związanych z przekierowaniami. W praktyce oznacza to, że serwer informuje przeglądarkę, iż żądany zasób nie zmienił się od ostatniego pobrania, polecając klientowi skorzystanie z lokalnej kopii z pamięci podręcznej (cache).

Odpowiedź z kodem 304 pojawia się jako reakcja na warunkowe żądanie GET lub HEAD. Nie zawiera ciała odpowiedzi, czyli właściwej treści zasobu, ponieważ nie ma potrzeby przesyłania pliku, który pozostaje identyczny jak wcześniej.

Mechanizm ten służy przede wszystkim optymalizacji buforowania zasobów, oszczędzaniu przepustowości łącza i przyspieszaniu ładowania strony.

Jak działa mechanizm cache a odpowiedź 304

Aby zrozumieć działanie odpowiedzi 304, przyjrzyjmy się mechanizmowi krok po kroku, zarówno po stronie przeglądarki, jak i serwera:

  1. Przeglądarka zapisuje pobrane zasoby, takie jak obrazy czy pliki CSS, w lokalnej pamięci podręcznej.
  2. Przy kolejnym żądaniu tego samego zasobu wysyła do serwera warunkowe żądanie HTTP.
  3. W nagłówkach przekazuje informacje walidacyjne – If-Modified-Since z datą ostatniego pobrania albo If-None-Match z identyfikatorem ETag.
  4. Serwer porównuje wartość If-Modified-Since z datą ostatniej modyfikacji zasobu zapisaną w nagłówku Last-Modified.
  5. Alternatywnie sprawdza zgodność If-None-Match z aktualnym identyfikatorem ETag.
  6. Jeśli plik nie uległ zmianie, serwer odsyła pustą odpowiedź z kodem 304 Not Modified.
  7. Przeglądarka, otrzymując 304, korzysta z kopii zapisanej w cache.
  8. Jeżeli zasób został zmodyfikowany, serwer zwraca 200 OK wraz z pełną, aktualną treścią.

Taki schemat pozwala ograniczyć transfer danych i zmniejszyć obciążenie serwera, co przekłada się na szybsze ładowanie strony dla użytkownika.

Dlaczego kod 304 wyświetla się w przeglądarce jako błąd

Skoro 304 Not Modified ma usprawniać komunikację i działać w tle, jego pojawienie się jako „błąd” może budzić zdziwienie. W rzeczywistości nie jest to faktyczny błąd, lecz informacyjny kod statusu. Jeśli jednak przeglądarka pokazuje go wprost użytkownikowi, zwykle oznacza to problem z komunikacją albo z konfiguracją po jednej ze stron.

Najczęściej źródło kłopotów leży w jednym z tych obszarów:

  • błędna konfiguracja serwera – nieprawidłowe nagłówki lub odpowiedzi mogą zaburzyć mechanizm walidacji zasobu,
  • uszkodzona pamięć podręczna przeglądarki – niespójny cache utrudnia poprawne wykorzystanie lokalnej kopii pliku,
  • nieobsługiwane przez klienta nagłówki cache – przeglądarka nie potrafi prawidłowo zinterpretować informacji przesłanych przez serwer.

Do tego dochodzą czynniki bardziej przyziemne, ale równie problematyczne:

  • przestarzała wersja przeglądarki,
  • problemy sieciowe zakłócające wymianę nagłówków HTTP,
  • ingerencja rozszerzeń przeglądarki, które zaburzają mechanizmy buforowania.

W narzędziach deweloperskich (F12) takie żądanie bywa widoczne jako czerwony wpis z pustym ciałem odpowiedzi. To sygnał, że przeglądarka nie skorzystała skutecznie z pamięci cache, mimo że odpowiedź 304 powinna jedynie potwierdzić brak zmian w zasobie.

Jak naprawić błąd 304 po stronie użytkownika

Jeśli kod 304 pojawia się w przeglądarce w nieoczekiwanym momencie, warto zacząć od najprostszych działań po stronie użytkownika. Najczęściej problem wynika z lokalnych ustawień, pamięci podręcznej albo konfliktu w samej przeglądarce, a nie

Jak naprawić błąd 304 po stronie serwera

Jeśli po wyeliminowaniu problemów po stronie użytkownika komunikat 304 nadal wraca, warto przyjrzeć się konfiguracji serwera. Najczęściej źródłem zamieszania jest nieprawidłowo ustawione buforowanie, które zaburza mechanizm walidacji zasobów i prowadzi do nieoczekiwanych odpowiedzi.

Na początek sprawdź nagłówki HTTP odpowiedzialne za kontrolę cache:

  • Cache-Control,
  • ETag,
  • Last-Modified.

Następnie zweryfikuj konfigurację w zależności od używanego serwera:

  • na Apache lub LiteSpeed sprawdź i w razie potrzeby edytuj plik .htaccess,
  • na Apache skontroluj konfigurację modułu mod_cache,
  • na Nginx przeanalizuj ustawienia buforowania w pliku nginx.conf.

Jeżeli chcesz wymusić ponowną walidację zasobów, możesz dodać nagłówek Cache-Control: max-age=0. Po każdej zmianie konfiguracji pamiętaj o restarcie serwera, inaczej nowe ustawienia nie zaczną działać.

Na koniec sprawdź, jak serwer faktycznie odpowiada na żądania. Pomogą w tym narzędzia takie jak Screaming Frog lub httpstatus.io. Jeśli mimo korekt problem nie znika, przeanalizuj logi serwera – często to właśnie tam znajduje się wyjaśnienie, dlaczego mechanizm cache nie działa tak, jak powinien.

Wpływ kodu 304 na SEO i indeksowanie strony

Prawidłowo wdrożony kod 304 działa na korzyść SEO, ponieważ dla robotów wyszukiwarek, takich jak Googlebot, jest jasnym sygnałem, że treść nie uległa zmianie. Pozwala to oszczędzać budżet na indeksowanie (crawl budget).

Problem zaczyna się wtedy, gdy 304 jest zwracany nie tam, gdzie trzeba. Jeśli serwer informuje o braku zmian mimo faktycznej aktualizacji pliku, robot może zrezygnować z ponownego indeksowania albo znacząco je opóźnić. Efekt jest prosty – nowe treści nie trafiają do wyników wyszukiwania, a widoczność strony spada.

Dlatego po każdej zmianie w konfiguracji cache warto monitorować sposób indeksowania witryny.

Growth Hub
Growth Hub

Growth w praktyce zaczyna się od jednego kliknięcia

Porozmawiajmy

Oni już nam zaufali – teraz kolej na Ciebie

moderno-meble