HTTP 404 Not Found — ответ сервера, означающий, что URL-адрес существует (сервер работает и обрабатывает запросы), но ресурс по этому адресу не найден. Стандартизирован в RFC 2616 (HTTP/1.1, 1999), актуальный стандарт — RFC 9110 (2022). Первая цифра "4" указывает на ошибку клиента (неверный запрос), в отличие от "5xx" — ошибок сервера.
Как работает
Сервер возвращает 404 в нескольких случаях:
- Страница или файл не существуют на сервере.
- Страница удалена или перемещена без настройки редиректа.
- Опечатка в URL (регистрозависимость: /Page.html и /page.html — разные ресурсы на Linux-серверах).
- Неверно настроен виртуальный хост или .htaccess.
Мягкий 404 (Soft 404) — сервер возвращает 404-страницу с HTTP-кодом 200 OK. Это ошибка: поисковики индексируют такие страницы как нормальный контент. Правильная конфигурация: HTTP-статус должен соответствовать реальному состоянию ресурса.
Разграничение статусов:
- 404 Not Found — ресурс не найден, но может появиться в будущем. Сервер "не знает" о причине.
- 410 Gone — ресурс намеренно удалён и никогда не вернётся. Поисковик быстрее удаляет из индекса.
- 301 Moved Permanently — ресурс перемещён навсегда на новый URL. Используйте при реструктуризации сайта.
Кастомная страница 404 настраивается в Nginx: error_page 404 /404.html;, в Apache через .htaccess: ErrorDocument 404 /404.html.
История
Код 404 появился в HTTP/0.9 (1991) с развитием WWW в CERN. HTTP/1.0 (RFC 1945, 1996) официально закрепил статус-коды 4xx. Существует популярная легенда, что 404 означает "комната 404 в CERN, где стоял первый веб-сервер, но файлы там были потеряны" — это миф. Тим Бернерс-Ли опровергал её: номер 404 — просто часть кодирования HTTP-ответов. Знаменитая "мягкая 404" от Twitter ("Sorry, that page doesn't exist!") с кодом 200 долго была примером плохой практики до исправления.
На что обращать внимание
404-ошибки влияют на SEO: поисковые краулеры тратят crawl budget на несуществующие страницы. Анализируйте 404 в Google Search Console и Яндекс.Вебмастере, настраивайте 301-редиректы для перемещённых страниц. Массовые 404 на ресурсы (JS, CSS, images) замедляют загрузку и ухудшают Core Web Vitals. Для WordPress 404 на wp-login.php может означать, что страница входа переименована плагином безопасности — это нормально.
История кода 404 Not Found
HTTP-статус коды определены в HTTP/1.0 (RFC 1945, 1996). 404 Not Found — один из первых стандартизированных кодов ошибок. Существует городская легенда, что «404» — это номер комнаты в CERN где жил Tim Berners-Lee; на деле код следует стандартной схеме HTTP (4xx = ошибки клиента). Первая кастомная 404-страница появилась в начале 1990-х годов. Soft 404 (Google) — страница возвращает код 200 но содержит «страница не найдена» — ошибка индексации в 2000-е годы.
404 vs 410 vs 301: правильные редиректы для SEO
| Код | Значение | SEO-эффект |
|---|---|---|
| 404 | страница не найдена (временно) | нейтральный |
| 410 Gone | страница удалена навсегда | быстрее убирает из индекса |
| 301 | постоянный редирект | передаёт PageRank |
| 302 | временный редирект | не передаёт PageRank |
Настройка обработки 404 на хостинге
В Nginx: error_page 404 /404.html;. В Apache через .htaccess: ErrorDocument 404 /404.html. Для WordPress: кастомный шаблон 404.php в теме. Мониторинг 404-ошибок через Google Search Console (раздел «Покрытие») и серверные логи (grep " 404 " /var/log/nginx/access.log). Массовые 404 после миграции сайта требуют настройки 301-редиректов.
Типичные ошибки
- Soft 404: страница «не найдено» возвращает код 200 — Google долго не убирает из индекса.
- Кастомная 404-страница весит 5 MB — огромная нагрузка при DDoS перебором URL.
- Отсутствие редиректов после смены URL-структуры — потеря PageRank и позиций.