Код 304 Not Modified означает, что запрошенная страница не менялась с прошлого визита и клиент может использовать копию из своего кэша. Тело ответа при этом не передаётся. Для браузера это нормальная экономия трафика. Но 304 в качестве финального ответа на свежий запрос — тревожный признак: сервер говорит «возьмите из кэша» посетителю, у которого никакого кэша нет.
Что означает код 304
304 относится к группе 3xx и описан в стандарте RFC 9110. Механизм такой: браузер, который уже загружал страницу, присылает условные заголовки If-Modified-Since или If-None-Match со «слепком» сохранённой версии. Если ресурс не менялся, сервер отвечает коротким 304 без тела — и браузер показывает копию из кэша. Страница открывается быстрее, канал не тратится на передачу неизменившихся данных.
Несмотря на группу 3xx, 304 — не редирект. У 301 Moved Permanently и 302 Found есть заголовок Location с новым адресом, куда нужно перейти. У 304 заголовка Location нет: он отправляет не на другой адрес, а к локальному кэшу клиента. Место 304 среди соседних кодов — в полном списке кодов ответа HTTP.
Ключевое правило стандарта: 304 допустим только в ответ на условный запрос. Если клиент не присылал If-Modified-Since или If-None-Match, сервер обязан вернуть обычный 200 OK с полным телом.
Считает ли Tracker.ru 304 падением
Да. Успешной Tracker.ru считает только проверку с кодом 2xx. Ответ 304 помечает сайт недоступным с типом ошибки «HTTP-ошибка», и вы получаете уведомление на email, в Telegram или по webhook. Редиректы проверка проходит автоматически (до 10 переходов), но у 304 нет заголовка Location — переходить некуда, и проверка фиксирует именно этот код.
Это осознанное поведение. Проверка мониторинга — свежий запрос без кэша и условных заголовков, как первый визит нового посетителя. Корректно настроенный сервер обязан ответить ей полным 200. Если вместо этого приходит 304 — сервер отдаёт его безусловно, и новые посетители рискуют увидеть пустую страницу. Периоды таких сбоев отражаются в статистике аптайма.
Типичные причины
- Кэширующий плагин CMS. Плагины кэширования для WordPress и других CMS иногда отвечают 304 без проверки условных заголовков — из-за бага или слишком агрессивных настроек.
- Ошибка в коде приложения. Приложение само управляет заголовками ETag и Last-Modified и отвечает 304, не проверяя, присылал ли клиент валидаторы.
- Кэширующий прокси перед сервером. Varnish или nginx в роли прокси неверно обрабатывает ревалидацию и транслирует 304 наружу вместо полного ответа из своего кэша.
- Настройка CDN. Правило кэширования на CDN начало отдавать 304 вместо содержимого — например, после неудачного обновления конфигурации.
- Балансировщик или модуль безопасности между посетителем и приложением вмешивается в заголовки и ломает логику условных запросов.
Что проверить владельцу сайта
- Откройте онлайн-проверку кода ответа своего сайта — она запрашивает страницу «с чистого листа», без кэша, и показывает финальный код.
- Если проверка возвращает 304 — временно отключите кэширующие плагины CMS по одному и повторяйте проверку после каждого.
- Проверьте настройки кэширования на CDN и прокси: нет ли правила, которое отдаёт 304 принудительно.
- Посмотрите заголовки ответа: корректный сервер на запрос без условных заголовков отдаёт 200 с телом, а ETag и Last-Modified лишь прикладывает.
- Если своих кэширующих слоёв нет — уточните у хостинг-провайдера, не кэширует ли ответы его инфраструктура.
Как часто встречается 304 на практике
Код 304 зафиксирован в проверках Tracker.ru 31 раз из десяти с лишним миллионов (по данным на июль 2026). Это ожидаемо: корректный 304 возникает только в ответ на условный запрос из кэша, а проверки мониторинга всегда приходят «начисто». Финальный 304 почти всегда означает ошибку конфигурации кэширования.
Частые вопросы
Почему мониторинг показывает 304, а в браузере сайт открывается?
Ваш браузер уже сохранил страницу и присылает условные заголовки — для него 304 корректен, и он показывает копию из кэша. Проверка мониторинга приходит без кэша, как новый посетитель. Если и ей сервер отвечает 304, код отдаётся безусловно — посетители без сохранённой копии получат пустой ответ.
304 — это редирект?
Нет. Код входит в группу 3xx, но никуда не перенаправляет: заголовка Location в ответе нет. Смысл 304 — «содержимое не менялось, используйте сохранённую копию». Настоящие редиректы — 307 Temporary Redirect и 308 Permanent Redirect, а также 301 и 302.
Вредит ли 304 сайту?
Сам по себе — нет, наоборот. Корректный 304 экономит трафик и ускоряет повторные загрузки, поисковые роботы тоже им пользуются при переобходе. Проблема возникает, только когда сервер отвечает 304 на запросы без условных заголовков — тогда часть посетителей не получает содержимое вовсе.