Ошибка 404 Not Found: что значит и как исправить
404 Not Found — по этому адресу сервер ничего не нашёл. Обычно страницу удалили или переместили без перенаправления, либо в ссылке опечатка. Сам по себе код не говорит, навсегда ли пропала страница: для удалённого насовсем есть отдельный код 410.
Содержание 10
Что означает код 404
По стандарту HTTP код 404 значит: сервер не нашёл ничего по запрошенному адресу — или не хочет признаваться, что ресурс существует. Поэтому 404 иногда отвечают вместо 403, чтобы скрыть закрытый раздел.
404 не говорит, временно это или навсегда. Если сервер точно знает, что страница удалена насовсем, стандарт предпочитает код 410 Gone.
Если вы посетитель
- Проверьте адрес: опечатки, лишняя точка или скобка в конце, обрезанная ссылка. На серверах с Linux имеет значение регистр букв: /Page и /page — разные адреса.
- Уберите из адреса последнюю часть и откройте раздел уровнем выше или главную — возможно, страница переехала.
- Поищите страницу поиском по сайту или в поисковике по её названию.
- Если ссылка вела с этого же сайта — сообщите владельцу: это битая ссылка.
Почему на сайте появляются 404
- Страницу удалили или переименовали, а старые ссылки остались — на других сайтах, в закладках, в поиске.
- Сменили адреса страниц (например, структуру ссылок в WordPress) и не поставили перенаправления.
- Перенесли сайт на другой сервер, а правила перезаписи адресов не переехали.
- Опечатка в ссылке в меню, тексте или файле sitemap.
- Роботы и сканеры перебирают типовые адреса вроде /wp-login.php или /.env. Такие 404 — норма, исправлять их не нужно.
Как найти причину
Если nginx не нашёл файл, который должен был отдать сам, в журнале ошибок появится строка такого вида (в Ubuntu и Debian журнал лежит в /var/log/nginx/error.log):
open() "/var/www/site/old-page.html" failed (2: No such file or directory)По пути видно, где nginx искал файл. Если путь неожиданный — неверно указан root сайта или адрес не попал в нужный блок location. Такие записи пишутся, пока включена директива log_not_found (по умолчанию включена).
Но если адрес проверяет директива try_files — а в стандартной настройке сайта в Ubuntu так и есть, — отсутствующий файл в журнал ошибок не попадает. Тогда смотрите журнал доступа. Двадцать самых частых адресов с ответом 404 покажет команда:
awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20Она рассчитана на стандартный формат журнала nginx: девятое поле — код ответа, седьмое — адрес.
Как исправить
Страница переехала — поставьте постоянное перенаправление со старого адреса на новый, код 301. В nginx:
location = /old-page/ {
return 301 /new-page/;
}Страницу удалили насовсем и замены нет — оставьте 404 или отдайте 410.
WordPress: открывается только главная, остальные страницы — 404. Так бывает после переезда, когда постоянные ссылки WordPress не работают. На nginx все адреса, которых нет среди файлов, нужно отдавать в index.php — так советует документация WordPress:
location / {
try_files $uri $uri/ /index.php?$args;
}На хостинге с Apache за то же отвечает файл .htaccess. Может помочь открыть в админке «Настройки → Постоянные ссылки» и сохранить их ещё раз без изменений: WordPress попробует переписать правила.
Сайт-приложение (React, Vue и подобные) отдаёт 404 при обновлении страницы. Адреса таких сайтов существуют только внутри приложения, поэтому сервер должен отдавать на них index.html:
location / {
try_files $uri $uri/ /index.html;
}Учтите: при такой настройке сервер отвечает кодом 200 на любой адрес, и для поиска несуществующие страницы выглядят обычными.
Своя страница 404
Страница «не найдено» в оформлении сайта помогает посетителю не уйти: дайте на ней ссылки на главную и основные разделы. В nginx её подключают так:
error_page 404 /404.html;Главное — такая страница должна отдавать код 404, а не 200. Если «не найдено» приходит с кодом 200, для поиска это обычная страница: по каждому несуществующему адресу в индекс может попасть её копия. Проверьте код командой curl -I на заведомо несуществующий адрес.
404 и поиск Яндекса
- Чтобы убрать удалённую страницу из поиска, достаточно ответа 404, 403 или 410: по справке Яндекса, такая страница выпадает из поисковой базы в течение недели после того, как робот её обойдёт. Там же Яндекс советует для удобства посетителей поставить перенаправление 301.
- Ускорить удаление можно в Вебмастере: инструмент «Удаление страниц из поиска» принимает до 500 адресов одного сайта в сутки. Заявку отклонят, если страница отвечает не 404, 403 или 410 и не закрыта от индексирования.
- Если в Вебмастере видны 404 на адреса, которых на сайте никогда не было, Яндекс советует не обращать на них внимания: возможно, кто-то поставил на ваш сайт ошибочную ссылку.
- Если удалили целый раздел, его можно закрыть в robots.txt директивой Disallow.
Чем 404 отличается от соседних кодов
| Код | Когда возникает |
|---|---|
| 403 | Ресурс есть, но доступ запрещён |
| 404 | Ничего не найдено — временно или навсегда, неизвестно |
| 410 | Ресурс удалён насовсем |
| 301 | Ресурс переехал на новый адрес |
Источники
- RFC 9110, раздел 15.5.5 — определение кода 404.
- Документация nginx: try_files, error_page и log_not_found.
- Документация WordPress: настройка nginx.
- Яндекс Вебмастер: коды ответа HTTP и как удалить страницы из поиска.
Сверено 6 октября 2026 года.
Что почитать дальше
- Ошибка 410 Gone — как сказать поиску, что страница удалена насовсем.
- Редирект 301 — как переехать на новый адрес без потерь.
- Как перенести сайт на другой хостинг — чтобы после переезда не появились 404.
- Как установить WordPress — с правильными настройками постоянных ссылок.
Проверено и обновлено: 07.10.2026