Узнайте, как правильно создать и настроить собственную страницу ошибки 404 для сайта на Joomla 3 и Joomla 4, отображаемую в интерфейсе шаблона.
Что такое ошибка 404?
Веб-сервер должен отправлять ответ 404 Not Found в случае, если соответствующего запрашиваемому URL-адресу ресурса не существует.
Что такое страница ошибки 404?
При этом сервер должен отдавать именно ответ 404 Not Found, а не перенаправлять пользователей на страницу со статусом 200 OK. Это очень важно, т. к. роботы поисковых систем принимают во внимание ответы сервера, и считают существующими все страницы со статусом 200 OK, который не запрещает индексировать такие страницы в поисковой системе, а это может способствовать появлению дублей страниц в поисковой выдаче и затруднит продвижение сайта в целом.
Страница ошибки 404 в шаблонах Joomla
Профессиональные шаблоны Joomla всегда имеют в своём арсенале настроенную рабочую страницу 404-й ошибки, отображаемую при вводе несуществующих адресов.
Как правило, внешний интерфейс данных страниц сильно отличается от общего интерфейса шаблона, что может негативно сказаться на поведенческих факторах: некоторые пользователи могут «испугаться» и покинуть сайт. Во избежание таких потерь посетителей сайта на ровном месте мы рекомендуем создавать настраиваемую страницу для 404-ошибки, отображаемую в интерфейсе шаблона Joomla.
Создание страницы 404 в интерфейсе шаблона
Разберем по пунктам, как правильно создать и настроить собственную страницу ошибки 404 в теле стандартного шаблона Protostar для Joomla 3 с отображением контента в области компонента.
- Создать и опубликовать материал, который будет отображаться при запросе несуществующей страницы. Примеры опций:
- Заголовок: «Страница не найдена».
- Алиас: «error-404».
- Cодержание: «Указанной страницы не существует. Вероятно, она была удалена или перенесена на другой адрес.»
- Категория: «Uncategorised».
- Создать и опубликовать скрытый пункт меню данного материала с алиасом error-404:
- Во вкладке Параметры материала необходимо отключить показ всей лишней информации (Автор, Хиты, Дата публикации и т. д.).
- Во вкладке Параметры ссылки необходимо установить опцию Показать в меню на Нет, чтобы скрыть пункт меню.
- Во вкладке Параметры страницы можно прописать тег
<title>
, который будет отображаться вместо названия материала. Например: «Ошибка 404 - страница не найдена». - Во вкладке Метаданные выбрать значение метатега Robots
noindex, nofollow
.
- В папке шаблона (/templates/шаблон) создать или заменить существующий файл error.php, который должен содержать только следующий код:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); if($this->error->getCode() == '404'){ header("HTTP/1.1 404 Not Found"); echo file_get_contents(JURI::root().'error-404'); exit; }
- Проверяем функционирование страницы. По запросу несуществующего документа должен отображаться созданный материал.
- Проверяем ответ сервера для несуществующей страницы. Для этого можно воспользоваться панелью разработчика в браузере или сторонним веб-сервисом.
- Чтобы сделать страницу ошибки 404 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.
Плагин Custom 404 Error Page
Описанный выше способ является рабочим, однако у него есть один значительный недостаток: при обновлении шаблона Joomla код файла error.php также обновится до состояния по умолчанию, поэтому придётся снова вручную менять его код. С одной стороны в этом нет ничего сложного, с другой стороны вы можете просто забыть это сделать, и вместо пользовательской страницы 404 будет отображаться страница ошибки шаблона Joomla. Плагин Custom 404 Error Page позволяет сделать так, чтобы пользовательская страница ошибки не изменялась при обновлениях шаблона. Для этого необходимо:
- оплатить, скачать и установить плагин Custom 404 Error Page;
- создать материал с нужным контентом, который будет отображаться на странице 404;
- создать пункт меню для этого материала;
- перейти в настройки плагина Custom 404 Error Page и выбрать пункт меню, который будет задействован в качестве страницы ошибки.