Проверка страницы 404
Запрашиваем три заведомо несуществующих адреса и смотрим, что отвечает сервер: честный 404, код 200 вместо ошибки или переадресацию на главную. Заодно разбираем саму страницу ошибки — есть ли на ней меню, поиск и куда идти посетителю.
Почему «мягкий 404» вредит сайту
Когда страницы нет, сервер обязан сказать об этом кодом 404. Но на многих сайтах несуществующий адрес отвечает кодом 200: человек видит сообщение «страница не найдена», а поиск получает обычную страницу с кодом «всё в порядке». Это называется мягким 404, и последствия у него неприятные: в индекс набиваются сотни пустых адресов, краулинговый бюджет тратится на мусор, а нужные страницы обходятся реже.
Особенно опасен вариант, когда вместо ошибки показывается главная страница. Тогда любой выдуманный адрес становится копией главной — и поиск видит бесконечный источник дублей. Эта проверка показывает, какой из сценариев у вас, и сразу по трём разным адресам.
Как должно быть правильно
- Код 404 или 410. Сразу по запрошенному адресу, без переадресаций. 410 говорит, что страницу удалили навсегда — поиск выбросит её из индекса быстрее.
- Без редиректа на главную. Перенаправление вместо ошибки путает посетителя: он нажал на ссылку из закладок и вдруг оказался на главной, не понимая, что произошло.
- Понятный текст. Короткое объяснение вместо технического «Error 404» — люди уходят с пустых страниц мгновенно.
- Путь дальше. Меню, ссылки на основные разделы, поиск по сайту. Задача страницы ошибки — вернуть человека в каталог, а не попрощаться с ним.
- Свой заголовок title. Чтобы в истории браузера и во вкладке страница не выглядела безымянной.
- Отдельный адрес не нужен. Страница ошибки должна открываться по тому адресу, который запросили, а не по /404.html — иначе появляется лишний переход.
Где это чинится
- Apache. Директива
ErrorDocument 404 /404.phpв .htaccess. Важно, чтобы сам обработчик не отдавал код 200 — в PHP этоhttp_response_code(404). - Nginx.
error_page 404 /404.html;вместе с правильным кодом от бэкенда. - WordPress. Шаблон 404.php в теме. Мягкий 404 чаще всего появляется из-за плагинов перенаправлений, которые ловят все неизвестные адреса и ведут на главную.
- 1С-Битрикс. Настройки ЧПУ и файл 404.php в корне: нужно, чтобы он выставлял заголовок ответа, а не просто показывал текст.
- Одностраничные приложения. Если сайт на React или Vue отдаёт index.html на любой адрес, код всегда будет 200 — нужен серверный обработчик для неизвестных путей.
После проверки
Найти страницы, которые ссылаются на несуществующие адреса, поможет поиск битых ссылок: обычно мягкий 404 вскрывается именно там, где внутренняя ссылка ведёт в никуда. Посмотреть полную цепочку переходов по конкретному адресу можно в цепочках редиректов, а проверить коды ответа списком адресов — в кодах ответа.
Частые вопросы
Не нашли ответ? Напишите в Telegram
Почему проверяются три адреса, а не один?
Потому что сервер обрабатывает их по-разному. Обычный несуществующий раздел может отдавать честный 404, вложенный путь — попадать в обработчик CMS и возвращать 200, а файл с расширением .html — уходить к веб-серверу напрямую. Три пробы показывают картину целиком.
Код 200 на несуществующем адресе — это точно ошибка?
Да, если по этому адресу показывается сообщение об ошибке или главная. Поиск ориентируется на код ответа, а не на текст: при коде 200 он считает адрес нормальной страницей и добавляет его в индекс. Исключение одно — если по адресу действительно есть содержимое, но тогда это не 404.
Что лучше — 404 или 410?
404 говорит «страницы нет», 410 — «страница была и удалена навсегда». Для большинства случаев достаточно 404. Код 410 имеет смысл, когда вы сознательно убрали раздел и хотите, чтобы поиск забыл о нём быстрее.
Можно ли перенаправлять несуществующие адреса на главную?
Так делать не стоит. Для поиска это превращает любой выдуманный адрес в дубль главной, а человека сбивает с толку. Редирект уместен только для страниц, которые реально переехали, и вести он должен на замену, а не на главную.
Мы отдаём 404, но страница пустая. Это проблема?
Технически нет, для поиска всё в порядке. Но с пустой страницы посетитель уходит с сайта: ему некуда нажать. Добавьте объяснение, меню, поиск и ссылки на популярные разделы — это дешёвый способ сохранить часть трафика.
Нужен ли на странице 404 запрет индексации?
Не обязательно. Код 404 сам по себе означает, что индексировать нечего. Запрет через noindex не помешает, но и пользы почти не даст — главное, чтобы код ответа был верным.
Поиск набрал в индекс мусорных страниц?
Мягкий 404 — одна из причин, по которым в индекс попадают пустые адреса, а нужные страницы теряют позиции. Проведу технический аудит сайта и дам список правок по приоритету.