На эту страницу попадают по опечатке в адресе, по старой ссылке из чужого поста и после того, как страницу переименовали. Человек пришёл за чем-то конкретным и получил пустоту — задача страницы 404 не извиниться, а вернуть его в сайт.
Главное — не текст, а код ответа
Вместе со страницей сервер отправляет число — код ответа. Двести означает «всё в порядке, вот страница», четыреста четыре — «такой страницы нет». Человек этого числа не видит, а поисковый робот смотрит только на него.
Отсюда главная беда, которую называют мягкой четыреста четвёртой: страница красиво говорит «не найдено», а код при этом двести. Робот верит коду и заносит несуществующий адрес в поиск как обычную страницу. Через месяц в выдаче десятки одинаковых «Страница не найдена».
Как проверить за десять секунд
Откройте любой несуществующий адрес своего сайта, нажмите F12, вкладка «Сеть», обновите страницу и посмотрите на код у первой строки. Должно быть 404. Если 200 — страница ошибки настроена неправильно.
Как её включают
На обычном хостинге с Apache — одной строкой в файле
.htaccess в корне сайта.
ErrorDocument 404 /404.html
Путь обязан начинаться со слэша: это адрес на сайте, а не путь к файлу на диске. И ведёт он на страницу внутри того же сайта — чужой адрес сюда писать нельзя, иначе код ответа станет другим.
Что на ней разместить
Шапка и подвал остаются те же, что на всём сайте: человек должен видеть, что он не выпал в пустоту. Дальше — четыре вещи, и больше ничего.
| Что | Зачем |
|---|---|
| Заголовок обычными словами | «Такой страницы нет» понятнее, чем «Ошибка 404» |
| Одно предложение почему | Опечатка в адресе или страницу перенесли |
| Поиск по сайту | Человек знает, что искал, — дайте ему это ввести |
| Три-четыре ссылки на главные разделы | Прямой путь туда, куда он, скорее всего, шёл |
Не перебрасывать на главную
Автоматический переход через пять секунд — плохая идея сразу по трём причинам: человек не успевает прочитать, что случилось; он теряет адрес, по которому пришёл; а поисковик считает такую переадресацию попыткой подменить страницу.
Ещё одна мелочь: страницу 404 нужно закрыть от индексации
метатегом noindex и не включать
в sitemap.xml. Человеку она нужна, в поиске —
нет.
Что попросить у нейросети
Свёрстай страницу 404 для сайта-справочника о вёрстке. Шапка и подвал у меня уже есть, нужно только содержимое между ними.
На странице: заголовок обычными словами, одно предложение
с объяснением, поле поиска по сайту и четыре ссылки
на главные разделы. Никаких больших картинок и шуток
про роботов. В head — метатег
noindex.
Дай заодно строку для .htaccess и объясни,
как проверить, что сервер отдаёт именно код 404,
а не 200. Разметка семантическая, один
h1, классы по БЭМ.
Про путь к файлу. В
ErrorDocument указывайте адрес от корня
сайта, со слэша. Путь вида
404.html без слэша Apache понимает
по-своему, и вместо страницы иногда выдаётся её
исходный текст.
Про относительные ссылки. Страница 404 показывается по любому адресу, в том числе глубоко вложенному. Все пути на ней — к стилям, шрифтам, иконкам, ссылкам — должны быть от корня, начиная со слэша. Относительные сломаются, и человек увидит страницу без оформления.
Про проверку. Вкладка «Сеть»
в инструментах разработчика или команда
curl -I с адресом несуществующей страницы:
в первой строке ответа должно стоять 404.
В Evolution CMS страница 404 — обычный ресурс
Отдельный файл в CMS не нужен: страница ошибки создаётся как обычный ресурс на том же шаблоне, а её номер указывается в системной настройке «Страница ошибки 404». Дальше движок сам подставляет её и сам отдаёт правильный код ответа.
Проверять всё равно нужно: настройка есть, а работает она только при включённых человекопонятных адресах. Первым делом после переноса сайта откройте несуществующий адрес и посмотрите на код ответа.
Частые ошибки
| Ошибка | Чем плохо | Как правильно |
|---|---|---|
| Код ответа 200 вместо 404 | Поисковик заносит несуществующие адреса в выдачу | Настроить ErrorDocument и проверить во вкладке «Сеть» |
| Переадресация на главную | Человек не понимает, что произошло, и теряет адрес | Показать страницу ошибки и дать ссылки |
| Относительные пути к стилям | По вложенному адресу страница открывается без оформления | Все пути от корня, со слэша |
| Страница без шапки и меню | Похоже, что сайт сломался целиком | Те же шапка и подвал, что везде |
Страница 404 в sitemap.xml |
Робот получает противоречивые указания | В карту не включать, поставить noindex |
Что должно получиться
- Несуществующий адрес открывает вашу страницу, а не страницу хостинга
- Во вкладке «Сеть» код ответа 404, а не 200
- На странице есть поиск и ссылки на главные разделы
- Оформление не ломается при открытии по вложенному адресу
- Никакой автоматической переадресации