Skip to content
← Все статьи

Ошибка 404 Not Found: 7 причин и как исправить

Ошибка 404 Not Found — один из самых частых HTTP-кодов, с которым сталкиваются владельцы сайтов и пользователи. Она означает, что сервер получил запрос, но запрошенный ресурс не найден. Несмотря на кажущуюся простоту, за 404 может стоять множество причин: от банальной опечатки в URL до сложных проблем с конфигурацией веб-сервера.

В этом гайде разберём, что именно означает 404, какие 7 частых причин её вызывают, как диагностировать проблему через DevTools и логи, и какие решения работают в 2026 году для nginx, Apache, Next.js, WordPress и React-приложений.

Что означает код 404 Not Found

Согласно RFC 9110 §15.5.5, код 404 указывает, что сервер не смог найти текущее представление целевого ресурса или не желает раскрывать факт его существования. Это клиентская ошибка (класс 4xx), но она часто связана с серверной конфигурацией.

Важно отличать 404 от родственных кодов: 410 Gone (ресурс удалён навсегда), 301 Moved Permanently (ресурс переехал) и 403 Forbidden (доступ запрещён). Путаница между ними приводит к SEO-проблемам — подробнее в нашем справочнике HTTP кодов.

7 частых причин появления 404 ошибки

  1. Опечатка в URL. Самая частая причина. Пользователь или внешний сайт указали неправильный путь.
  2. Удалённая или перемещённая страница. Контент был удалён, но редирект не настроен.
  3. Сломанный rewrite rule. В nginx или Apache неправильно настроена директива try_files или .htaccess.
  4. Проблемы с правами доступа к файлам. Веб-сервер не может прочитать файл из-за неправильных прав (chmod/chown).
  5. Ошибка в routing (SPA). React/Vue/Angular приложения без fallback на index.html возвращают 404 при прямом переходе.
  6. Battle CDN-кэша. CDN отдаёт устаревший 404 после развёртывания новой страницы.
  7. Неправильная конфигурация DNS или nginx upstream. Запрос уходит на неправильный сервер.

Как диагностировать 404 через DevTools и логи

Первым делом откройте DevTools (F12 → вкладка Network), воспроизведите ошибку и изучите полный запрос: URL, метод, заголовки. Обратите внимание на заголовок Referer — он покажет, откуда пришёл битый линк.

Для быстрой проверки заголовков используйте HTTP Header Checker от Enterno.io — введите URL и получите полный список заголовков ответа, включая коды редиректов в цепочке.

Из командной строки:

curl -I https://example.com/broken-page
curl -v https://example.com/broken-page 2>&1 | head -50

Проверьте логи веб-сервера:

# nginx
tail -f /var/log/nginx/access.log | grep " 404 "
tail -f /var/log/nginx/error.log

# Apache
tail -f /var/log/apache2/access.log | grep " 404 "
tail -f /var/log/apache2/error.log

Решения для разных платформ

nginx: настройка try_files и кастомная страница

server {
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
}

Apache (.htaccess)

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
ErrorDocument 404 /404.html

WordPress

Перейдите в Настройки → Постоянные ссылки и нажмите «Сохранить» — это перезапишет правила .htaccess. Если не помогает, проверьте права файла: chmod 644 .htaccess.

React / Vue / Next.js SPA

Для static-хостинга настройте fallback на index.html:

# nginx
location / {
    try_files $uri $uri/ /index.html;
}

301 редиректы для удалённых страниц

Вместо 404 возвращайте 301, если страница переехала — это сохранит SEO-вес:

location = /old-url {
    return 301 https://example.com/new-url;
}

Профилактика 404 ошибок

Часто задаваемые вопросы (FAQ)

В: Влияет ли 404 на SEO?
О: Одиночные 404 — нормально. Но массовые 404 на ранее индексируемых страницах снижают краулинговый бюджет и позиции. Google рекомендует возвращать 410 для намеренно удалённого контента.

В: Что лучше — 404 или 410?
О: 410 Gone — когда ресурс точно удалён навсегда. 404 — когда причина неизвестна или временная. Googlebot быстрее деиндексирует 410.

В: Можно ли отлавливать 404 автоматически?
О: Да, используйте мониторинг Enterno.io с expected_code=200 — любое отклонение триггерит алерт в Email/Telegram/Slack.

В: Почему после деплоя новой страницы я получаю 404?
О: 3 частые причины: (1) CDN-кэш — сделайте purge, (2) OPcache в PHP — перезапустите php-fpm, (3) rewrite rules не перечитались — reload nginx/apache.

Заключение

404 ошибка — не приговор, а сигнал. В 90% случаев она исправляется за 5 минут после правильной диагностики через DevTools, логи и HTTP Header Checker. Ключевые принципы: настройте 301 редиректы при изменениях URL, мониторьте битые ссылки, сделайте полезную 404-страницу и подключите автоматический мониторинг критичных страниц.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: HTTP
HTTP
Ошибка 503 Service Unavailable: причины и решения
15.04.2026 · 5 просм.
HTTP
HTTP-методы: GET, POST, PUT, DELETE и другие
16.03.2026 · 38 просм.
HTTP
Полный жизненный цикл HTTP-запроса: от URL до отрендеренной страницы
16.03.2026 · 59 просм.
HTTP
504 Gateway Timeout: причины и решения для админов
15.04.2026 · 20 просм.