Узнайте, как правильно создать и настроить собственную страницу ошибки 404 для сайта на Joomla 3 и Joomla 4, отображаемую в интерфейсе шаблона.
Важно знать!
Ошибка 404 (Error 404) — это ответ сервера, отправляемый при запросах на несуществующие ресурсы.
Веб-сервер должен отправлять ответ 404 Not Found в случае, если соответствующего запрашиваемому URL-адресу ресурса не существует.
Что такое страница ошибки 404?
Важно знать!
Страница ошибки 404 — это веб-страница, отображаемая при прямом запросе на несуществующий документ.
При этом сервер должен отдавать именно ответ 404 Not Found, а не перенаправлять пользователей на страницу со статусом 200 OK. Это очень важно, т. к. роботы поисковых систем принимают во внимание ответы сервера, и считают существующими все страницы со статусом 200 OK, который не запрещает индексировать такие страницы в поисковой системе, а это может способствовать появлению дублей страниц в поисковой выдаче и затруднит продвижение сайта в целом.
Страница ошибки 404 в шаблонах Joomla
Профессиональные шаблоны Joomla всегда имеют в своём арсенале настроенную рабочую страницу 404-й ошибки, отображаемую при вводе несуществующих адресов.
Как правило, внешний интерфейс данных страниц сильно отличается от общего интерфейса шаблона, что может негативно сказаться на поведенческих факторах: некоторые пользователи могут «испугаться» и покинуть сайт. Во избежание таких потерь посетителей сайта на ровном месте мы рекомендуем создавать настраиваемую страницу для 404-ошибки, отображаемую в интерфейсе шаблона.
Создание страницы 404 в интерфейсе шаблона
Разберем по пунктам, как правильно создать и настроить собственную страницу ошибки 404 в теле стандартного шаблона Protostar для Joomla 3 с отображением контента в области компонента.
Важно знать!
Указанная инструкция актуальна как для Joomla 3, так и для Joomla 4.
- Создать и опубликовать материал, который будет отображаться при запросе несуществующей страницы. Примеры опций:
- Заголовок: «Страница не найдена».
- Алиас: «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 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.
Видеоинструкция
The most common problem with websites which are struggling in search engine rankings is the number of ‘not found’ errors – commonly referred to as 404 errors because that is the status code returned if the page cannot be found.
First, there are legitimate reasons to have 404 errors – if you have a page for an event which has passed, or a service which you no longer provide. In these cases, eventually the page will be removed from the index of search engines and won’t be associated with your site any more.
The problem occurs if you have a lot of 404 errors – for example if you unpublish a category which contained hundreds of articles. From the search engine’s perspective, this is not a great experience for their visitors, because they land on your site and the information that the search engine told them was there, isn’t. This is why it is not a great idea to have too many 404 errors on your site.
The first step is to find out how many you have – which can be done using Google’s Search Central. This is a free set of tools which allows you to analyse your website and pick up on problems, errors and issues quickly. It is recommended that you have every site you manage registered at Search Central to ensure you are notified in the event of any problems.
When you visit Search Central there is a section which shows you URL Errors in the search listing – this will show you a list of the 404 errors that Google has found on your site, and a graph which shows you how this has changed over time. If the graph starts to go up, look into why there are pages that were on your site and now can’t be found.
If there was a temporary problem on your site, you can mark errors as being fixed.
Fixing Problems[edit]
Discovery is only one part of the process. Once you have discovered the problematic URLs, do something about it (if it needs fixing!) by either redirecting the page to another on the site, re-instating the original page, or looking into what has caused the 404 error.
If you need to redirect a page, check out this page which explains how to create 301 (permanent) redirects: Creating 301 redirects
Monitoring Problems[edit]
If you want to monitor your 404 traffic, the best way to do this in Analytics is to look at what happens when you have a 404 error. In most cases, the page title changes to 404 – so we can create a custom segment which will filter traffic with a title of 404 and tell you what the landing page is. This should allow you to monitor and proactively manage your 404 errors and ensure that your site visitors do not end up landing on dead links.
Google also has the ability, in Analytics, to set up alerts. Alerts allow you to be emailed when certain events occur. In this case, we can set up an alert to be notified if there is more than a 5% increase in the number of 404 errors in a weekly period – which might mean we have a problem with the website which needs investigating.
This is a great way to keep on top of things even if you haven’t logged in to look at your dashboard!
Monitoring Errors with a Dashboard[edit]
There is also a dashboard you can install called the Data Integrity Dashboard which shows you information about 404 errors, along with some other metrics which might be of interest. Just search the Google Analytics Gallery for Data Integrity Dashboard and select which profile to install it under.
Путешествуя в поисках нужной вам информации по какому-либо сайту, вы наверняка не раз попадали на такую страницу: «ошибка 404. Страница не найдена». Конечно, не очень приятно видеть эту обычно некрасочную и малоинформативную страницу, тем более, если именно там совсем недавно (да-да, пару дней назад вы видели это своими глазами) находилось то, что вы ищете.
В системе управления сайтом Joomla вы можете настроить страницу 404 на своем сайте таким образом, чтобы она не пугала посетителей и по возможности направляла обратно на сайт.
Возможные варианты страницы 404:
- Настроить «несуществующую» страницу можно в соответствии с шаблоном сайта. В этом случае по умолчанию страницей ошибки будет главная или любая другая страница вашего сайта с меню, модулями и другим наполнением. Таким образом вы предоставите посетителю возможность найти интересующую его информацию другим способом, а вы не потеряете клиента.
- Следующий вариант – добавить оригинальный текст на страницу 404. Это может быть ссылка на главную страницу, предложения по сотрудничеству, форма поиска, оригинальная картинка или даже реклама. Например, если вы предлагаете POS оборудование, на «несуществующей» странице вы можете извиниться и предложить поучаствовать в акции, например, приобрести фискальный регистратор по специальной цене.
Настроить страницу 404 в joomla можно двумя способами:
- Если вы не используете компоненты для ЧПУ, необходимо:
- создать статью с содержимым для страницы ошибки, не относящейся ни к какой-либо категории;
- Запомнить id статьи
- Редактировать файл error.php в папке: templates/system. Удалите содержимое файла и вставьте код: <?php
defined(‘JPATH_BASE’) or die();
echo file_get_contents(JURI::root().’/index.php?option=com_content&view=article&id=id статьи‘);
?>
- id статьи – сюда вставьте номер вашей статьи для страницы 404.
При использовании на сайте компонентов ЧПУ, например: sh404SEF, Artio JoomSEF редактировать файл error.php вручную не требуется. В настройках компонента можно создать страницу 404. После этого наберите в браузере ваш.сайт/ошибка – где ваш.сайт – домен вашего сайта, а ошибка – это специально выдуманный текст, который приведет к ошибке. Если только что созданная вами страница ошибки отображается, значит, вы все сделали верно.
Зная способы редактирования страниц ошибки 404, вы сможете настроить ее под свои требования и желания, дав пользователю возможность вернуться и найти нужную информацию на вашем сайте.
Introduction
What is A 404 Error Page?
As you know, the HTTP 404 status code shows that visitors’ browsers can communicate with the server, but they can’t find the requested content. So, when your visitors try to open a page that doesn’t exist on your site, a 404 error page will be showcased. Some popular reasons that cause a 404 error message include:
- The URL/ its content is removed.
- The visitors typed the URL incorrectly.
- The URL/ its content is moved without customizing the internal links.
- The domain no longer exists.
- The website hosting server faces trouble.
Hence, if you want to build a 404 error, what content you should add? A good and useful 404 page should have clear navigation. That means you should display:
- Your homepage.
- Some hottest blog pages.
- Some popular or trending product or service pages.
- An HTML sitemap.
Why do you need to create A Custom 404 Error Page in Joomla 4?
If you are using Joomla 4, there are many compelling reasons you should consider creating a custom 404 error page for your site:
- Navigating visitors to the homepage or any page you want them to access.
- Helping your site become more professional.
- Decreasing the bounce rate.
- Giving the visitors a great experience when they surf your site.
After taking a look at some fundamental information about the 404 error page, it’s time for you to explore how to generate it.
Let’s create A Custom 404 Error Page in Joomla 4
In the blog, we would like to provide you with two ways to build a custom 404 page. So, you can read and select the most suitable one for your site.
Generating a custom 404 error page manually
First of all, you need to create a new menu item for your 404 page. In order to do that, you just need to go to Menus -> Main Menu Blog -> New.
Now, simply fill out the title, then click on the Select button in the Menu Item Type option.
A Menu Item Type popup will appear for you to select. Thus, let’s choose Articles -> Single Article, then close the popup.
In the Select Article option, press the Create button to generate a new article.
Next, let’s enter the title of the article. After that, in the Article Text, you need to fill out the content you want to display on the 404 error page. You can add text, images, links, and much more.
After finishing, simply click on the Save & Close button.
Now, you need to move on to the Link Type tab and disable the Display in Menu option.
Once turning off the Display in Menu option, let’s save the menu. Moreover, you need to remember the ID number of the article in the Link box.
Close the menu, you will see a menu ID. So, all you need to do is remember the ID number of the 404 error page menu.
In the next step, let’s open System -> Site Templates, then click to edit the template you are using in Joomla 4. In our example, we are using Cassiopeia, so we will open and customize it.
Now, let’s find and edit the error.php file in the /templates/cassiopeia folder.
After the code
defined('_JEXEC') or die;
in line 10, you just need to add the following code:
if (($this->error->getCode()) == '404') {
header('Location: ' . Jroute::_("index.php?option=com_content&view=article&id=XXItemid=YY", false));
exit;
}
Don’t forget to replace XX with the ID of the article, and YY with the ID of the menu item you created before.
Eventually, simply save it.
Now, you can freely check the result on your site. After the URL, simply add anything you want to view the 404 error page.
Using SP Page Builder to build a custom 404 error page
If you feel the first method is quite complicated and time-consuming, you can try the second one.
We will start the second way by downloading SP Page Builder and installing the extension on your Joomla site.
Once successful installation, you just need to go ahead Components -> SP Page Builder -> Pages -> New. After that, simply add the title for a new page and save it. It will allow you to customize from the front-end editor.
SP Page Builder will support you to edit the page with the drag-drop feature. Therefore, it’s easy and simple for you to edit the page in your own way.
You need to add the row, then choose the add-on you want to use. In the next step, simply enter the title as well as add the image you want to showcase on the 404 error page. Besides, you can edit the text and image with some useful options. If you desire to add a button link to navigate the visitors to go back to your homepage, you need to use the premium version with many outstanding add-ons.
Don’t forget to save the page after completely designing it.
Now, let’s go back to your admin dashboard and create a new menu item. Simply open Menus -> Main Menu Blog -> New.
Enter the title first, then click on the Select button in the Menu Item Type.
You need to select SP Page Builder -> Page.
In the Select Page section, let’s choose the 404 page you created in the previous steps. After that, simply save the menu item and remember the page ID in the Link box.
Next, go to the Link Type tab and turn off the Display in Menu option. Save it again.
Finally, all you need to do is open System -> Site Templates (in the Templates tab), then click to edit the template you are utilizing.
Let’s find the error.php and customize it. After that, simply add the code below:
// custom 404 redirect
$config = JFactory::getConfig();
$sef = $config->get('sef');
$sef_rewrite = $config->get('sef_rewrite');
$sef_suffix = $config->get('sef_suffix');
$redirect_url = JURI::base();
if(!$sef_rewrite) {
$redirect_url .= 'index.php/';
}
$redirect_url .= '404'; // menu alias
if($sef_suffix) {
$redirect_url .= '.html';
}
// if sef is turned off
if(!$sef) {
$redirect_url = 'index.php?option=com_sppagebuilder&view=page&id=XX';
}
if (($this->error->getCode()) == '404') {
header('Location: ' . $redirect_url, true, 301);
exit;
}
Change the XX into the ID number of the page you have already generated before and save it.
Everything is done. So, why don’t you take a look at the result on your site now?
Closing thoughts
In conclusion, we are happy to show you the way how to Create A Custom 404 Error Page in Joomla 4. Therefore, we hope that the blog will be helpful for you. If you have any relevant questions, then let’s leave your comment below. Furthermore, in case you have an intention to use another template for your site, don’t hesitate to visit our Joomla 4 Templates. Since the collection includes many templates on many different topics, you can freely select the one you love.
- Author
- Recent Posts
Welcome to LT Digital Team, we’re small team with 5 digital content marketers. We make daily blogs for Joomla! and WordPress CMS, support customers and everyone who has issues with these CMSs and solve any issues with blog instruction posts, trusted by over 1.5 million readers worldwide.
Время на прочтение
2 мин
Количество просмотров 14K
Известно, что для того, чтобы удержать посетителя на сайте, нужно правильно обрабатывать HTTP/1.0 404 и другие подобные коды. На просторах интернета можно найти массу занимательных примеров страниц 404, а также руководств – что и как сделать, чтобы ошибка 404 правильно обрабатывалась сайтом как для посетителя, так и для поисковых систем.
Хочу с вами обсудить проблему 404 для сайтов Joomla.
Общие рекомендации по настройке Joomla для обработки HTTP/1.0 404
Не буду повторять здесь все причины тех или иных шагов и настроек, буду перечислять кратко то, что можно найти в Интернете.
- Создаем в нашей Joomla «красивую страничку 404». Можно несколько — при реализации вашей особенной логики и способа их выбора для
посетителя; - В свой шаблон, который используется на сайте в качестве основного шаблона frontend, из системного шаблона system переписываем файл error.php;
- Далее редактируем этот файл для того, чтобы следовать следующей логике – если мы отловили ошибку 404 – то сначала выдать заголовок HTTP/1.0 404, а затем выдать страницу, которую мы ранее подготовили. Предположим, номер (ID) нашей «красивой страницы 404» равен 1001. Файл error.php в вашем шаблоне может выглядеть так:
defined('_JEXEC') or die;
if (!isset($this->error))
{
$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
$this->debug = false;
}
// Get language and direction
$doc = JFactory::getDocument();
$app = JFactory::getApplication();
$this->language = $doc->language;
$this->direction = $doc->direction;
if($this->error->getCode()=='404') {
header("HTTP/1.0 404 Not Found");
header('Location: index.php?option=com_content&view=article&id=1001');
}
Теперь проверяем. Вводим адрес сайта. Далее – абракадабра после символа /. Работает? Работает, чего и следовало ожидать.
В чем подвох?
Открываем отладку страниц в вашем любимом браузере (мой любимый браузер – Fitefox с Firebug-ом), вкладка «Сеть», и смотрим заголовки, которыми общается браузер с сайтом.
Вводим адрес сайта – заголовок HTTP/1.0 200 OK
Теперь абракадабра… Ожидаем HTTP/1.0 400 Not Found — смотрим заголовки:
- Сначала HTTP/1.0 302 Found
- Затем наша красивая страница отдается браузеру с кодом HTTP/1.0 200 OK
Чем это плохо?
— Но, ведь, работает? — Скажете вы. Да, работает. А как на это смотрит поисковая система?
Был у меня переезд страниц сайта с одного раздела (папки) сайта на другой. Но переехать должны были не все страницы. Страницы старого раздела сайта были в индексе. Те, что переехали – выдавались с кодом HTTP/1.0 301 Moved Permanently (классика жанра) и поисковики их правильно «переехали» на новое место. А те, что должны были «кануть в лету» – так и мелькали в индексе, хотя физически отсутствовали на сайте, а при обращении к ним выдавалась «красивая страничка 404», но не код HTTP/1.0 404 (смотрим выше).
Выход из этой ситуации
Для страниц с ошибкой 404 я решил выдавать заголовок HTTP/1.0 404 Not Found и делать не редирект через заголовок Location, а читать поток «красивой страницы 404» и перенаправлять его браузеру. Вот реализация:
if($this->error->getCode()=='404') {
header("HTTP/1.0 404 Not Found");
$url=JURI::root()."index.php?option=com_content&view=article&id=1001";
$data = file_get_contents($url) or die("Cannot open URL");
echo $data;
}
Теперь, и нужная страница посетителю отдается при ошибке 404, и поисковая машина видет действительно код 404 и считает введенный адрес таковым — Not Found.