Ошибка 404 на сайте joomla

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.

404discovery.png

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.

Analyticsalerts.png

Analyticsalerts2.png

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!

Analyticsalertsemail.png

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.

Dataintegrity.png

Узнайте, как правильно создать и настроить собственную страницу ошибки 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.

  1. Создать и опубликовать материал, который будет отображаться при запросе несуществующей страницы. Примеры опций:
    • Заголовок: «Страница не найдена».
    • Алиас: «error-404».
    • Cодержание: «Указанной страницы не существует. Вероятно, она была удалена или перенесена на другой адрес.»
    • Категория: «Uncategorised».
  2. Создать и опубликовать скрытый пункт меню данного материала с алиасом error-404:
    • Во вкладке Параметры материала необходимо отключить показ всей лишней информации (Автор, Хиты, Дата публикации и т. д.).
    • Во вкладке Параметры ссылки необходимо установить опцию Показать в меню на Нет, чтобы скрыть пункт меню.
    • Во вкладке Параметры страницы можно прописать тег <title>, который будет отображаться вместо названия материала. Например: «Ошибка 404 — страница не найдена».
    • Во вкладке Метаданные выбрать значение метатега Robots noindex, nofollow.
  3. В папке шаблона (/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;
    }
  4. Проверяем функционирование страницы. По запросу несуществующего документа должен отображаться созданный материал.
  5. Проверяем ответ сервера для несуществующей страницы. Для этого можно воспользоваться панелью разработчика в браузере или сторонним веб-сервисом.
  6. Чтобы сделать страницу ошибки 404 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.

Видеоинструкция

Время на прочтение
2 мин

Количество просмотров 14K

image

Известно, что для того, чтобы удержать посетителя на сайте, нужно правильно обрабатывать HTTP/1.0 404 и другие подобные коды. На просторах интернета можно найти массу занимательных примеров страниц 404, а также руководств – что и как сделать, чтобы ошибка 404 правильно обрабатывалась сайтом как для посетителя, так и для поисковых систем.

Хочу с вами обсудить проблему 404 для сайтов Joomla.

Общие рекомендации по настройке Joomla для обработки HTTP/1.0 404

Не буду повторять здесь все причины тех или иных шагов и настроек, буду перечислять кратко то, что можно найти в Интернете.

  1. Создаем в нашей Joomla «красивую страничку 404». Можно несколько — при реализации вашей особенной логики и способа их выбора для
    посетителя;
  2. В свой шаблон, который используется на сайте в качестве основного шаблона frontend, из системного шаблона system переписываем файл error.php;
  3. Далее редактируем этот файл для того, чтобы следовать следующей логике – если мы отловили ошибку 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 — смотрим заголовки:

  1. Сначала HTTP/1.0 302 Found
  2. Затем наша красивая страница отдается браузеру с кодом HTTP/1.0 200 OK

image

Чем это плохо?

— Но, ведь, работает? — Скажете вы. Да, работает. А как на это смотрит поисковая система?

Был у меня переезд страниц сайта с одного раздела (папки) сайта на другой. Но переехать должны были не все страницы. Страницы старого раздела сайта были в индексе. Те, что переехали – выдавались с кодом 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.

Вступление

Страница ошибок, которую сервера HTTP обозначают, как 404 Not found, означает, что сервер работает исправно, однако по сделанному запросу ничего не найдено. Для сайта Joomla, это значит, что страницы, которую пользователь пытается открыть, не существует. Для CMS Joomla причин появления страниц 404 много. Основные причины редактирование статей, изменение SEO настроек сайта, перенос статей из одной категории в другую, удаление модулей и т.п.

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

Примечание: С течением времени, должен сделать добавление. Удручать должен не внешний вид старницы 404 Joomla сайта, а статус страницы ошибок, который возвращает HTTP сервис при её запросе. Правильно, если сервер отдает на ошибочном URL, код статуса HTTP — 404 Not Found, а не 303,302, и т.д. Обязательно! До и после создания страницы 404, проверьте, что отдает сервер на несуществующем URL. Удобно это сделать в Яндекс.Вебмастер на вкладке Инструменты. (дополение 20-03-2017).      

404 Notfound Joomla 08

Алгоритм работ таков:

  • Создать и оформить страницу 404;
  • Создать пункт меню 404, опубликовать его, но скрыть от показа в меню;
  • Поменять и отредактировать файл error.php рабочего шаблона;
  • Проверить статус кода созданной страницы ошибок;
  • Всё. 

Создаем страницу 404 в менеджере материалов

На первом шаге, создадим страницу 404 в менеджере материалов сайта в рубрике «Uncategorized». Название может быть произвольное, но для удобства, назовем страницу «404». Оформление страницы 404 делаем «как душе угодно».

  • Чтобы выделить страницу 404 из других страниц сайта, уберем с нее все информационные «обвесы»: показ категорий, автором, показов, дат публикации и т.д. Делаем это на странице добавления материалов, на вкладке: Отображение.

404 Notfound Joomla 10

  • Убираем со страницы все модули. Это делаем на странице Расширения→Менеджер модулей, на вкладке «Привязка модулей».

404 Notfound Joomla 12

404 страницу незачем индексировать у поисковиков, поэтому на странице добавления материалов, закрываем 404 страницу тегами Noindex, Nofollow. Это делаем на вкладке: Создать материал — Публикация, пункт: Мета-тег Robots.

404 Notfound Joomla 14

Сохраняем и публикуем страницу 404.

Создаем меню для страницы 404

Чтобы вывести страницу ошибок на сайт, нужно создать пункт меню с материалом «404». Для этого в любом меню сайта создаем пункт меню с понятным названием, например «404». Тип пункта меню выбираем, как «Материал», а материал выбираем созданную страницу «404».

Сохраняемся и копируем в поле «Ссылка», ссылку созданного пункта меню. Она нужна для дальнейшей прописки 404 страницы.

404 Notfound Joomla 01

Ищем или создаем файл error.php

Системный файл ошибок Joomla лежит в каталоге: /templates/system. Копируем этот файл ошибок error.php, то копируем его и переносим (заменяем) из /templates/system в /templates/ваша-тема.

404 Notfound Joomla 02

Проверяем «прописку» файла error.php в файле templateDetailis.xml. Если прописки нет, прописываем.

straniza 404 joomla 5

Редактируем файл error.php

В рабочем шаблоне ищем файл error.php или используем перенесенный файл error.php. Открываем это файл в текстовом редакторе и поиском ищем слово «404».

После строки:

defined('_JEXEC') or die;

добавляем, удаляя старое:

if (($this->error->getCode()) == '404')
{
header('Location: index.php?option=com_content&view=article&id=1');
exit;
}

, где после Location, вписываем скопированную ссылку пункта меню: «404».

было:

404 Notfound Joomla 03

стало:

2017 03 20 13 20 35

Сохраняемся и переносим отредактированный файл error.php в каталог рабочего шаблона, по FTPв режиме перезаписи.

Смотрим результат

Идем в панель сайта и в общих настройках «Система» чистим кэш. Теперь можно проверить отражение 404 страницы на сайте. Для этого в браузере после домена сайта, через слэш пишем любые буквы, жмем поиск и видим созданную 404 страницу. Если не видим свою страницу 404, чистим кэш браузера (ctrl+F5).

404 Notfound Joomla 13

SEO Проверка страницы 404 на Joomla

Важно, чтобы на запрос созданной страницы ошибок 404, которая имеет бесконечное количество URL, сервер отдавал ответ 200 OK, а не 404 NotFound.

Проверить ответ сервера можно на своей странице Яндекс.Вебмастер, на вкладке Инструменты>>Проверка ответа сервера. Пишете свой домен, через слэш любой набор букв, жмете «Проверить». Ответ сервера должен быть 200 OK, Содержание страницы должно быть.        

©Joomla3-x.ru

Другие статьи разделов: CMS Joomla и оптимизация

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

Создаем новый материал для показа 404 ошибки.

Если не усердствовать над оформлением страницы, то можно сделать простенький текстовый контент с кнопкой для возврата на предыдущую страницу.

Код этой страницы такой:

<div style="text-align:center;">
<h1 class="error-title">404</h1>
<h2>Ой... Мы не можем найти эту страницу!</h2>
<p class="lead">Мы сожалеем, но страница на которую Вы пытались перейти не существует.<br />Пожалуйста вернитесь на предыдущую страницу или воспользуйтесь меню сайта.</p>
<a href="javascript: history.go(-1)" ><button>Предыдущая страница</button></a>
</div>

Прикрепляем материал к пункту меню joomla, чтобы ссылка страницы с ошибкой имела человекопонятный url, например 404-error.

Не забываем ссылку меню сделать скрытой

Создаем файл error.php в папке шаблона сайта /templates/ваш_шаблон, который будет возврашать код ошибки и показывать нашу кастомную страницу.

Код содержимого error.php

<?php
defined('_JEXEC') or die;

if (!isset($this->error))
{
	$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
	$this->debug = false;
}

if($this->error->getCode()=='404') {
	header("HTTP/1.0 404 Not Found");
        $url=JURI::root()."index.php/404-error";
        $data = file_get_contents($url) or die("Cannot open URL");
        echo $data;
        break;
}
?> 

Проверяем открывается ли страница с ошибкой. Вводим несуществующий url, примерно так http://soft-setup.ru/iuensg

Если открылась наша кастомная страница по адресу /404-error, то все сделано правильно.

Проверяем возращает ли наш сайт 404 ошибку роботу.

Проверить ответ сервера можно в webmaster.yandex.ru. переходим в Инструменты/Проверка ответа сервера. Вводим несуществующий url и жмем проверить.

Получили код статуса HTTP: 404 Not Found. Что и требовалось получить.

Возможно, вам также будет интересно:

  • Ошибка 404 на английском языке
  • Ошибка 404 на пс3 как исправить
  • Ошибка 404 на англ
  • Ошибка 404 на портале госуслуг фсс
  • Ошибка 404 на алиэкспресс что значит

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии