Перейти к содержимому
Попробовать

Страница 404: как сделать правильную и полезную страницу ошибки

Страница 404 есть на любом сайте, даже если о ней никто не думал. Товары снимают с продажи, статьи переносят, люди ошибаются в адресе, а чужие сайты годами ссылаются на URL, которых давно нет. Представьте: человек переходит по старой ссылке из соцсети на снятую с продажи модель кофемашины и видит белый экран с надписью «Not Found». Он закрывает вкладку. На другом сайте в той же ситуации он видит привычную шапку, поиск и ссылку на новую модель той же линейки, поэтому остаётся.

У страницы ошибки два слоя. Первый — код ответа сервера, его читают браузер и поисковый робот. Второй — содержимое, его видит человек. Ниже разобраны оба: какой код отдавать, что такое ложная ошибка 404, что разместить на странице, как настроить её на сервере и в CMS и как проверить результат за пару минут.

Что такое страница 404 и откуда она берётся

Страница 404 — это ответ сервера на запрос адреса, которого на сайте нет. Код 404 сообщает браузеру и поисковому роботу, что такой страницы не существует, а сама страница объясняет это человеку и помогает найти нужное.

Код ответа и страница — разные вещи, и их полезно не смешивать. Код передаётся в заголовках ответа, его не видно на экране. Робот смотрит именно на него: увидел 404 — понял, что адрес пустой. Человек кода не видит, ему важно, что нарисовано в окне браузера. Можно получить правильный код с бесполезной страницей, а можно красивую страницу с неправильным кодом. Обе ситуации встречаются часто.

Откуда берутся адреса с ошибкой 404:

  • страницу удалили или сменили ей адрес, не поставив редирект;
  • во внутренней ссылке опечатка, лишний символ или старый путь;
  • внешний сайт, форум или соцсеть ссылается на URL, которого больше нет;
  • человек ошибся, набирая адрес вручную;
  • сайт переехал на другую CMS, и структура URL поменялась.

Если ничего не настраивать, сервер или хостинг покажет стандартную страницу: пара строк текста на белом фоне, иногда с названием веб-сервера. Код при этом обычно правильный, но человеку такая страница ничего не предлагает. Своя (кастомная) страница 404 сохраняет оформление сайта, меню и поиск, и человек понимает, что он всё ещё у вас и может пойти дальше.

Вредят ли ошибки 404 SEO

Сами по себе ошибки 404 не понижают сайт. Удалённые страницы — обычное дело, и поисковики это учитывают. Проблемы начинаются, когда на 404 ведут ваши же внутренние ссылки, когда на несуществующие адреса приходят внешние ссылки и посетители или когда сервер вместо 404 отдаёт код 200.

Страница, которая отдаёт 404, со временем выпадает из индекса. Если её действительно больше нет, это нормальный и ожидаемый исход.

Реальный ущерб выглядит иначе. Посетители, пришедшие на удалённую страницу из закладок или с другого сайта, уходят. Внешние ссылки, которые вели на удалённый материал, перестают работать на сайт. Если ссылка на несуществующую страницу стоит в меню или в сотне карточек каталога, робот раз за разом ходит по ней впустую, а люди упираются в тупик. Такие внутренние битые ссылки стоит исправлять в первую очередь: это ваша собственная ошибка, и починить её проще всего.

СитуацияНорма или проблемаЧто делать
Удалён неактуальный товар, замены нет, ссылок на него нетНормаОставить 404
На 404 ведёт ссылка из меню или из шаблона страницПроблемаИсправить ссылку
На удалённую статью ссылаются внешние сайтыУпущенная возможностьПоставить 301 на близкую по смыслу страницу
Несуществующий адрес отдаёт код 200ПроблемаНастроить сервер на отдачу 404

Правильный код ответа: 404, 410 и почему не 200

Для несуществующей страницы сервер должен отдавать код 404 или 410, если страница удалена навсегда, но не 200. Код 200 говорит роботу, что страница в порядке. Тогда в индекс может попасть пустая страница «Не найдено», причём в отдельном экземпляре на каждый ошибочный адрес.

404 Not Found означает «страницы нет» без уточнения, временно это или навсегда. Подходит для большинства случаев.

410 Gone означает «страница удалена навсегда». Его ставят, когда материал убран сознательно и замены не будет: закрытая акция, снятая с производства линейка, раздел, который больше не нужен. В справке Google сказано, что поисковик обрабатывает 410 так же, как 404, поэтому выбирать между ними можно по смыслу, без расчёта на заметную разницу в скорости удаления из индекса.

200 на несуществующем адресе — главная техническая ошибка этой темы. Её легко не заметить: страница выглядит как ошибка, на ней написано «не найдено», но сервер сообщает роботу обратное. Если сайт отвечает кодом 200 на любой выдуманный адрес, поисковик может найти тысячи одинаковых пустых страниц.

СитуацияКакой код
Страница удалена, есть близкая по смыслу замена301 на замену
Страница удалена, замены нет404 или 410
Товар временно отсутствуетОставить страницу с кодом 200 и пометкой «нет в наличии»
Адрес никогда не существовал404

Отдельно про перенос: если страница просто переехала на новый адрес, ей нужен постоянный редирект. Чем он отличается от временного, разобрано в статье 301 или 302 редирект.

Ложная ошибка 404 (soft 404): как её распознать

Ложная ошибка 404 (soft 404) — это ситуация, когда страница по смыслу пустая или говорит «не найдено», а сервер отдаёт код 200. Google отмечает такие адреса отдельным статусом «Ложная ошибка 404» в отчёте об индексировании страниц в Search Console.

Типичные причины:

  • CMS показывает шаблон «ничего не найдено», но с кодом 200;
  • пустые категории и страницы фильтров без товаров;
  • страницы поиска по сайту без результатов открыты для индексации;
  • все несуществующие адреса перенаправляются на главную;
  • одностраничный сайт на JavaScript (SPA): сервер на любой адрес отвечает 200, а надпись «не найдено» рисует скрипт уже в браузере.

Где смотреть. В Google Search Console откройте раздел «Индексирование» → «Страницы» и найдите в списке причин статус «Ложная ошибка 404». В Яндекс Вебмастере загляните в «Индексирование» → «Страницы в поиске», вкладку исключённых страниц: там видно, какие адреса выпали из поиска и почему. Отдельный адрес удобно проверить там же, инструментом «Проверка ответа сервера» в разделе «Инструменты».

Что делать, зависит от того, нужна ли страница. Если её действительно нет, сервер должен отдавать 404 или 410. Если страница нужна, но пустая, например категория, в которой временно нет товаров, её стоит наполнить: добавить описание, ссылки на соседние категории, похожие товары. Если наполнить нечем и страница никому не нужна в поиске, её закрывают от индексации.

Редирект на главную вместо 404: почему это плохая идея

Массовый редирект всех несуществующих адресов на главную кажется удобным решением, но мешает и людям, и поисковикам. Человек не понимает, почему оказался на главной, а Google в своей справке пишет, что может считать такие редиректы ложными 404.

Посмотрите на это глазами посетителя. Он искал конкретный товар или статью и кликнул по ссылке. Вместо сообщения «такой страницы нет» его без объяснений выбрасывает на главную, где нужного нет. Он начинает сомневаться, туда ли попал, и чаще всего уходит.

Есть и неочевидный минус для владельца. Когда все ошибочные адреса тихо уводят на главную, ошибки в ссылках перестают быть видны. Сломанная ссылка в меню, опечатка в рассылке, неверный адрес в рекламном объявлении — всё это продолжает работать вхолостую, а вы об этом не узнаёте.

Редирект уместен в одном случае: у удалённой страницы есть конкретная близкая по смыслу замена. Старая статья → её обновлённая версия. Снятая модель → новая модель той же линейки. Закрытая услуга → похожая услуга. Если такой замены нет, честный 404 лучше редиректа куда-нибудь.

Проверьте код ответа любого адреса
Вставьте адрес и посмотрите, что сервер отвечает на самом деле: 404, 200 или цепочку редиректов.
Проверить код ответа

Что разместить на странице 404

Полезная страница 404 оставляет человека на сайте. Она коротко объясняет, что страницы нет, сохраняет привычную шапку и меню и даёт два-три понятных пути дальше: поиск, популярные разделы, главную.

Начните с оформления. Шапка, меню и подвал должны быть такими же, как на остальных страницах. Это главный сигнал для человека, что он не попал на чужой сайт и не сломал браузер. Многие стандартные страницы ошибок теряют посетителя именно здесь: дизайн пропал, и непонятно, где находишься.

Текст нужен короткий и без технических слов. Хватит одного-двух предложений: «Такой страницы нет. Возможно, адрес изменился или в ссылке опечатка». Номер ошибки можно оставить крупно, его многие узнают, но объяснять HTTP-коды посетителю не нужно.

Дальше — выходы. Поисковая строка выручает человека, который точно знает, что ищет. Тому, кто пришёл без чёткой цели, помогут ссылки на три-пять ключевых разделов. Для магазина это популярные категории, для блога — свежие или самые читаемые статьи, для сайта услуг — список услуг и контакты. По сути это та же внутренняя перелинковка, только на странице, куда люди попадают случайно. Если хотите знать о битых ссылках, добавьте строку «Сообщите нам, откуда вы пришли» с почтой или формой.

Несколько примеров текста под разные сайты:

  • Интернет-магазин: «Этого товара больше нет по этому адресу. Посмотрите похожие модели в каталоге или найдите нужное через поиск».
  • Блог: «Статья переехала или была удалена. Вот что читают чаще всего» — и список из трёх-пяти материалов.
  • Сайт услуг: «Такой страницы нет. Все услуги собраны в каталоге, а если вопрос срочный — позвоните или напишите нам».

Чего лучше избегать:

  • только шутки или картинки без единой ссылки;
  • автоматического перехода на главную через несколько секунд;
  • тяжёлой анимации, которая грузится дольше обычной страницы;
  • всплывающих окон и подписок.

Юмор допустим, если он дополняет навигацию, а не заменяет её. И ещё одно: закрывать саму страницу ошибки от индексации отдельно не нужно. При правильном коде 404 поисковики и так не добавляют её в индекс.

Как настроить страницу 404 на сервере и в CMS

Свою страницу 404 подключают на уровне сервера (Nginx, Apache) или в настройках CMS и конструктора. Главное после подключения — убедиться, что сервер по-прежнему отдаёт код 404, а не 200 и не редирект.

Nginx

В блоке server достаточно одной строки:

error_page 404 /404.html;

Осторожнее с вариантом со знаком равенства: error_page 404 = /404.html;. По документации Nginx в таком случае клиенту уходит код ответа той страницы, на которую идёт перенаправление. Если это обычный статический файл, код может превратиться в 200. Знак = нужен для особых случаев, для обычной страницы ошибки он лишний.

Apache

В файле .htaccess или конфигурации сайта:

ErrorDocument 404 /404.html

Путь указывайте относительный, от корня сайта. Если написать полный адрес вида https://site.ru/404.html, Apache отправит браузер на этот адрес редиректом, и вместо 404 робот увидит 302, а затем 200.

WordPress

За страницу ошибки отвечает файл шаблона 404.php в папке темы. Во многих темах он уже есть, и его достаточно отредактировать: поменять текст, добавить поиск и ссылки на рубрики. Если файла нет, WordPress покажет страницу по общему шаблону темы.

1С-Битрикс и конструкторы

В 1С-Битрикс страница ошибки обычно лежит в корне сайта в файле 404.php, а для отдачи правильного кода используется константа ERROR_404 и установка статуса 404 в коде страницы. Конкретные шаги зависят от версии и шаблона, их стоит сверить со справкой 1С-Битрикс.

В Tilda страницу 404 создают как обычную страницу, публикуют, а затем выбирают в «Настройках сайта» → «Дополнительно» → «Страница ошибки 404». Справка конструктора отдельно предупреждает: не используйте для неё адрес /404, иначе стандартная страница перекроет вашу. В других конструкторах похожая настройка обычно находится в параметрах сайта.

Сайты на JavaScript (SPA)

У одностраничных приложений на React, Vue и подобных фреймворках частая проблема: сервер на любой адрес отдаёт один и тот же HTML-файл с кодом 200, а маршрутизатор в браузере уже потом рисует «Страница не найдена». Для робота все такие адреса существуют. Решение на стороне сервера или серверного рендеринга: для неизвестных маршрутов он должен отвечать кодом 404. Эту задачу стоит прямо поставить разработчику.

Как проверить, что страница 404 работает правильно

Проверка занимает пару минут. Откройте заведомо несуществующий адрес вроде /proverka-404-abc, посмотрите, как выглядит страница, и проверьте код ответа: он должен быть 404 или 410, без редиректов.

Сначала посмотрите глазами посетителя. На месте ли шапка, меню, поиск и ссылки на разделы? Страница открывается быстро? Как она выглядит на телефоне? Если страница ошибки сделана отдельным HTML-файлом, на ней часто ломаются стили и пути к картинкам, особенно на адресах с несколькими уровнями вложенности.

Потом проверьте код. Удобнее всего — бесплатная проверка кода ответа и редиректов: вставляете адрес и видите всю цепочку ответов. Тот же результат даёт вкладка «Сеть» в инструментах разработчика браузера (F12) или команда в терминале:

curl -I https://site.ru/proverka-404-abc

В первой строке ответа должно быть 404. В Яндекс Вебмастере для этого есть инструмент «Проверка ответа сервера».

Проверьте несколько вариантов, а не один:

  • адрес с опечаткой внутри раздела каталога, например /catalog/kofemashiny/nesushchestvuyushchij-tovar;
  • адрес со слешем на конце и без;
  • адрес с параметром, например ?page=999;
  • адрес с несуществующим расширением, например .html или .php.

Разные части сайта часто обрабатывает разный код, поэтому один раздел может отвечать честным 404, а другой — пустой страницей с кодом 200.

Что делать с ошибками 404, которые уже есть

Найденные 404 разбирают по источнику. Если на несуществующую страницу ведут ваши собственные ссылки, исправьте ссылки. Если внешние ссылки или посетители, поставьте 301 на близкую страницу. Если ссылок и трафика нет, оставьте 404.

Где искать такие адреса. В Яндекс Вебмастере и Google Search Console есть отчёты по страницам, которые робот нашёл, но получил ошибку. Внутренние битые ссылки быстрее всего находит обход сайта краулером: SEO-аудит проходит по всем ссылкам и показывает, где именно стоит ссылка на несуществующий адрес. Для отдельной страницы подойдёт бесплатный поиск битых ссылок. Ещё один источник — логи сервера. Если на странице 404 стоит счётчик Яндекс Метрики и у неё понятный title, в отчётах можно увидеть, сколько людей на неё попадает и откуда.

Порядок разбора удобно держать в виде простого дерева решений:

Откуда ведёт ссылка на 404Есть ли заменаЧто делать
С вашего сайта (меню, статьи, карточки)НеважноИсправить ссылку на правильный адрес
С внешних сайтов или есть заметный трафикЕсть близкая по смыслу страница301 на неё
С внешних сайтов или есть трафикЗамены нетОставить 404 или 410
Ссылок и трафика нет—Оставить 404

Сотня ошибок 404 в отчёте не повод для паники. Часто это мусорные адреса, которые робот нашёл на чужих сайтах или в старых версиях страниц. Важны те, на которые ведут ваши ссылки, и те, куда приходят люди.

Проверять стоит после каждого заметного изменения: переезда на новую CMS, смены структуры URL, массового удаления товаров или чистки блога. Если трафик просел как раз после такого изменения, начните с разбора, почему упал трафик на сайте: потерянные страницы без редиректов — одна из частых причин.

Итог

Ошибки 404 — нормальная часть жизни любого сайта, и бороться с ними как таковыми не нужно. Важны две вещи: чтобы сервер честно отдавал код 404 или 410 для несуществующих адресов и чтобы человек на странице ошибки видел привычный сайт и понятные пути дальше. Проверить и то и другое можно за пару минут на нескольких выдуманных адресах. А уже накопившиеся 404 разбирайте по источнику: свои ссылки исправляйте, ценные адреса перенаправляйте на близкие страницы, остальное оставляйте как есть.

Чтобы увидеть картину по всему сайту, запустите бесплатный SEO-аудит — до 100 страниц без оплаты. В отчёте будут битые ссылки, редиректы и коды ответа по каждой странице, а итоговый Health Score от 0 до 100 % покажет общее техническое состояние сайта.

Проверить инструментом

Найдите битые ссылки и ошибки 404 на всём сайте
SEO-аудит обойдёт сайт и покажет битые ссылки, редиректы и коды ответа по каждой странице, а Health Score от 0 до 100 % — общее техническое состояние. Бесплатно, до 100 страниц.
Проверить сайт

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

Нужно ли закрывать страницу 404 в robots.txt?

Нет. Если сервер отдаёт код 404, страница не попадёт в индекс сама. Запрет в файле robots.txt, наоборот, мешает: робот не заходит на адрес, не видит код и дольше не понимает, что страницы нет.

Вредят ли ошибки 404 позициям сайта?

Сами по себе нет, удаление страниц для поисковиков — обычное дело. Вредят последствия: битые внутренние ссылки, потерянные внешние ссылки на удалённые страницы и код 200 вместо 404 на несуществующих адресах.

Чем ошибка 404 отличается от 410?

Код 404 означает «страницы нет», 410 — «страница удалена навсегда». Google в справке пишет, что обрабатывает их одинаково, так что для большинства сайтов разница небольшая. 410 уместен, когда материал удалён сознательно и замены не будет.

Можно ли перенаправлять все 404 на главную?

Не стоит. Человек теряет контекст и не понимает, почему оказался на главной, а Google может считать такие редиректы ложными 404. Редирект оправдан только на конкретную близкую по смыслу страницу.

Почему Google пишет «ложная ошибка 404», если страница существует?

Обычно страница выглядит для робота пустой или похожей на сообщение «не найдено»: мало текста, категория без товаров, надпись «ничего не найдено». Если страница нужна, её стоит наполнить содержимым. Если она не нужна, пусть сервер честно отдаёт 404.

Сколько времени удалённая страница остаётся в индексе?

Точного срока нет: робот должен заново зайти на адрес и получить код 404 или 410, а частота обхода у разных страниц разная. Ускорить процесс можно инструментами удаления страниц: в Яндекс Вебмастере это «Удаление страниц из поиска», в Search Console — «Удаления».

Поделиться:
SC
Команда SEO Crawler
Пишем о техническом SEO, аудите и продвижении сайтов
Ссылка скопирована