Ошибка 404 на сайте: что значит, как найти битые ссылки и что делать
Ошибка 404 на сайте означает, что сервер работает и ответил на запрос, но страницы по этому адресу нет. Код ответа 404 Not Found браузер показывает как «Страница не найдена». Чаще всего так бывает, когда страницу удалили или переименовали без редиректа, когда в ссылке опечатка или когда после переезда на новую CMS поменялись адреса. Сама по себе 404 не беда: это нормальный ответ для несуществующего адреса. Проблемы начинаются, когда на такие адреса ведут ссылки с вашего же сайта, из рекламы или с чужих сайтов. Ниже о том, что делать с ошибкой 404, как найти битые ссылки и как сделать правильную страницу 404.
Что значит ошибка 404 и чем она отличается от других кодов
Когда браузер или поисковый робот запрашивает адрес, сервер первым делом отвечает трёхзначным кодом. Коды на 4 означают, что проблема в запросе, на 5 что сломался сам сервер.
| Код | Что значит | Типичная причина |
|---|---|---|
| 200 OK | страница есть и отдана | всё в порядке |
| 301 | страница переехала навсегда | смена адреса, домена, протокола |
| 403 Forbidden | доступ запрещён | права на файлы, закрытая папка, блокировка по IP |
| 404 Not Found | по адресу ничего нет | удалили, переименовали, опечатка |
| 410 Gone | страница удалена навсегда | осознанное удаление без замены |
| 500, 502, 503 | ошибка сервера | упал PHP, база, перегрузка, обновление |
Отдельный зверь называется soft 404, «мягкая» ошибка. Страница пишет «Товар не найден» или вообще пустая, но сервер отдаёт код 200. Для поисковика это нормальная страница, он её индексирует, и в поиске появляются десятки одинаковых пустышек. Такое часто встречается на сайтах, где 404 настроена на уровне шаблона CMS, а не сервера.
Почему появляется ошибка 404
Причины почти всегда одни и те же:
- Удалили товар или услугу. Карточка закончилась, её сняли с публикации, а ссылки на неё остались в категориях, статьях блога, рассылках и в индексе Яндекса.
- Поменяли адрес страницы. Переименовали раздел, поправили ЧПУ, убрали год из адреса статьи. Старый адрес стал отдавать 404, потому что про редирект никто не подумал.
- Переезд на другую CMS. Самая массовая причина. На старом сайте товар жил по адресу
/catalog/item.php?id=154, на новом по/catalog/kofemashiny/delonghi-magnifica/. Без карты редиректов весь накопленный трафик со старых адресов уходит в 404. - Опечатки в ссылках. Лишняя буква, кириллическая «с» вместо латинской, пробел в конце адреса, вставленный из мессенджера.
- Регистр и слеш в конце. Для многих серверов
/Contacts/и/contacts/это разные адреса, как и/priceи/price/. - Ссылки с внешних сайтов. Кто-то сослался на вас с ошибкой или на страницу, которой давно нет. Повлиять на чужой сайт сложно, но можно поставить редирект у себя.
Что делать посетителю, если он увидел 404
Если вы не владелец сайта, а просто попали на ошибку, вариантов немного: проверьте адрес на опечатки, удалите из адреса всё после последнего слеша и поднимитесь на уровень выше, зайдите на главную и воспользуйтесь поиском по сайту. Если нужна именно старая версия страницы, её иногда можно найти в кеше поисковика или в веб-архиве.
Дальше статья для тех, кто отвечает за сайт.
Вредит ли 404 продвижению
Короткий ответ: несколько 404 на удалённые страницы продвижению не вредят. Поисковые роботы знают, что сайты меняются. Получив 404, Яндекс через какое-то время исключит страницу из поиска, обычно после нескольких повторных обходов.
Вредят другие вещи:
- Битые внутренние ссылки. Робот тратит обход на мёртвые адреса, посетитель кликает по ссылке в меню или в тексте и упирается в ошибку. Это прямая потеря и людей, и доверия.
- Потеря внешних ссылок. Если на удалённую страницу вели хорошие ссылки с других сайтов, их ценность пропадает. Редирект на близкую по смыслу страницу сохраняет хотя бы часть.
- Трафик в никуда. Реклама в Директе, QR-код на листовке, ссылка в рассылке ведут на адрес, которого больше нет. Деньги потрачены, заявок ноль.
- Soft 404 и страница 404 с кодом 200. Мусор попадает в индекс, сайт выглядит для поисковика набором пустых страниц.
Как найти битые ссылки на сайте
Битые ссылки ищут с двух сторон: что видит поисковик и что находится при обходе сайта краулером.
Яндекс Вебмастер
В разделе «Индексирование» есть «Статистика обхода»: там видно, какие адреса робот запрашивал и какой код получил. Отфильтруйте ответы 4xx, и вы увидите список адресов, на которые Яндекс натыкается. В разделе «Ссылки» есть отчёты по внутренним и внешним ссылкам, в том числе по неработающим: с каких страниц стоит ссылка и куда она ведёт.
Отдельно полезен инструмент «Проверка ответа сервера»: вставляете любой адрес и видите код, который получит робот Яндекса. Если сайт ещё не добавлен в Вебмастер, начните с этого: часть отчётов наполняется не сразу после подтверждения прав.
Screaming Frog SEO Spider
Программа обходит сайт как робот и собирает все адреса с кодами ответа. Бесплатной версии хватает на 500 адресов, для небольшого сайта этого достаточно. Порядок такой:
- Вставьте адрес сайта и запустите обход.
- На вкладке Response Codes выберите фильтр Client Error (4xx).
- Выделите битый адрес и внизу откройте вкладку Inlinks: там список страниц, где стоит ссылка на него.
- Выгрузите отчёт в таблицу и раздайте правки.
Похожие краулеры есть и в облачных SEO-сервисах, а для разовой проверки подойдёт любой бесплатный онлайн-чекер битых ссылок. Подробнее о полном техническом осмотре в статье как проверить сайт на ошибки.
Яндекс Метрика
Метрика показывает реальных людей, которые попали на 404. Самый простой способ: в отчёте «Содержание» посмотрите «Заголовки страниц» и найдите заголовок вашей страницы 404, например «Страница не найдена». Рядом будут адреса и источники переходов. Если в шаблон 404 добавить отправку цели или параметра визита с адресом, откуда пришёл человек, анализировать станет ещё проще.
Логи сервера
Самый полный источник. В access.log видны все запросы с кодом 404, включая те, которые не попадают в Метрику: роботы, старые ссылки, запросы к картинкам и файлам. На сайтах после переезда разбор логов за первые две недели находит адреса, о которых никто не вспомнил при составлении карты редиректов.
Что делать с каждой найденной 404
Не все ошибки исправляются одинаково. Решение зависит от того, почему страница пропала и есть ли ей замена.
| Ситуация | Что делать |
|---|---|
| Страница переехала на новый адрес | 301-редирект со старого адреса на новый |
| Товар снят, есть аналог или категория | 301 на аналог или в категорию |
| Товар временно нет в наличии | не удалять карточку, показать «нет в наличии» и похожие товары |
| Страница удалена навсегда, замены нет | оставить 404 или отдавать 410 |
| Внутренняя ссылка с опечаткой | исправить саму ссылку, редирект не нужен |
| Внешняя ссылка с опечаткой на ваш сайт | 301 с ошибочного адреса на правильный |
| Мусорные адреса, сканеры уязвимостей | ничего, 404 для них правильный ответ |
Как настраивать переадресацию в .htaccess, nginx и популярных CMS, разобрано в отдельной статье про 301 редирект.
Главная ошибка, которую мы встречаем при аудитах: все 404 одним правилом перенаправляют на главную. Посетитель искал конкретную модель, а попал на главную и не понимает, что произошло. Поисковик тоже не обманывается: массовый редирект на главную он часто считает той же soft 404. Перенаправляйте только туда, где человек найдёт то, что искал, или что-то очень близкое.
Как сделать правильную страницу 404
Страница 404 нужна, чтобы посетитель, попавший на ошибку, не закрыл вкладку. Требования к ней простые.
Технические требования
- Код ответа 404. Не 200 и не редирект на отдельную страницу
/404.htmlс кодом 200. Проверить можно в Вебмастере через «Проверку ответа сервера», в браузере на вкладке Network в DevTools или командойcurl -I https://site.ru/nesushchestvuyushchij-adres/. - Без автоматического перехода на главную через пять секунд. Человек не успевает прочитать, что произошло.
- Тот же дизайн, шапка и меню, что на остальном сайте. Тогда навигация продолжает работать.
- Закрыта от индексации кодом ответа. Отдельно прописывать noindex не нужно, страница с кодом 404 в индекс не попадает.
Настроить свою страницу 404 обычно можно в одну строку:
# nginx
error_page 404 /404.html;
# Apache, файл .htaccess
ErrorDocument 404 /404.html
В WordPress за ошибку отвечает файл 404.php в теме, в 1С-Битрикс файл 404.php в корне сайта, на Tilda свою страницу 404 назначают в настройках сайта. Во всех случаях после настройки проверьте код ответа: CMS иногда отдают красивую страницу с кодом 200.
Что разместить на странице
- Понятное сообщение: «Такой страницы нет. Возможно, её удалили или в адресе опечатка».
- Поиск по сайту.
- Ссылки на главные разделы: каталог, услуги, цены, контакты.
- Для магазина: популярные категории или товары.
- Контакты или кнопку связи, если человек искал что-то конкретное.
Шутки и картинки на 404 допустимы, но не вместо навигации. Смешная иллюстрация без единой ссылки дальше остаётся тупиком.
Как не допускать новых 404
Найти и исправить ошибки один раз мало, они появляются снова с каждым удалённым товаром и переименованным разделом. Помогают несколько привычек:
- перед удалением страницы проверять, есть ли на неё ссылки внутри сайта и трафик в Метрике;
- при смене адреса сразу ставить 301, а не «потом»;
- в магазине не удалять закончившиеся товары, а снимать с продажи с блоком похожих;
- перед переездом на новую CMS составлять полную карту соответствия адресов, подробно в статье как переехать без потери позиций;
- раз в месяц прогонять сайт краулером и смотреть «Статистику обхода» в Вебмастере.
Частые вопросы
Сколько времени Яндекс будет держать страницу с ошибкой 404 в поиске?
Обычно от нескольких дней до нескольких недель: робот должен повторно зайти на адрес и убедиться, что ошибка постоянная. Ускорить можно через инструмент удаления страниц из поиска в Вебмастере.
Что лучше отдавать для удалённой страницы: 404 или 410?
Оба кода приводят к исключению из индекса. 410 прямо говорит «удалено навсегда», и некоторые поисковики реагируют на него быстрее. На практике разница небольшая, достаточно правильного 404.
Почему моя страница 404 отдаёт код 200?
Чаще всего CMS ловит несуществующий адрес на уровне шаблона и рисует страницу ошибки, не меняя код ответа. Либо сервер делает редирект на /404/, а уже эта страница отвечает 200. Лечится настройкой в CMS или на сервере, после правки код нужно проверить.
Нужно ли исправлять все 404 из отчёта Вебмастера?
Нет. Смотрите, есть ли на адрес ссылки с вашего сайта или с хороших внешних сайтов, был ли по нему трафик. Мусорные адреса от сканеров и давно удалённые страницы без ссылок можно оставить с ошибкой 404.
Если битых ссылок много и непонятно, с чего начать, мы проведём SEO-аудит с таблицей ошибок и редиректов, а постоянный контроль 404 можно взять в рамках техподдержки сайта.