SEO оптимизация DLE 10.1 — Избавляемся от 404 ошибок.
Всем привет! Прошу прощения, что долго не писал ничего нового. Из-за большого объёма работы в последнее время просто не хватает времени. И вот, сегодня немного приболел, поэтому решил продолжить свою серию постов о оптимизации DataLife Engine.
В прошлый раз мы разобрались с дублями на сайте, а сегодня, я постараюсь показать вам, как разобрать с другими ошибками, которые могут возникать у владельцев сайтов на DLE. Как и в прошлый раз, я обновляю информацию от Алычъ’а, так что авторство присваивать себе не собираюсь 🙂
Ну что же, советую вам взять большую кружку чая, хорошенько собраться, и приготовиться к тому, что нам придется немного прооперировать наш движок.
Перед тем, как приступить, убедитесь что вы выполнили предыдущие советы:
Если да, тогда можете приступать к работе!
Редирект с несуществующих страниц пагинации на существующие.
И так, представьте, что вы решили сменить количество выводимых новостей на страницу из 10 до 20. Тогда если у вас было 100 новостей, то у вас было 10 страниц пагинации. Но вот вы стали выводить по 20 новостей, и у вас стало 5 страниц пагинации. Выходит, что все страницы с 6 по 10 стали вести на несуществующую страницу. В таком случае, стоило бы сделать редирект с несуществующей страницы на последнюю существующую.
Для этого откройте файл /engine/modules/show.short.php и найдите в конце:
} ?>
Выше добавьте:
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая $all_pages_count = @ceil( $count_all / $config['news_number'] ); if ($cstart > $all_pages_count) { if ($all_pages_count > 1) { header('HTTP/1.1 301 Moved Permanently'); header ('Location: ' . $url_page . '/page/' . $all_pages_count . '/'); die(); } else { header('HTTP/1.1 301 Moved Permanently'); header ('Location: ' . $url_page . '/'); die(); } } //редирект на последнюю страницу, если в url указана страница больше чем максимально существующая
Теперь если мы зайдем на несуществующую страницу пагинации, то будет сделан редирект на последнюю существующую страницу пагинации.
Редирект с разделов или категорий, которых больше не сущестувет, на главную страницу
Бывает вы решили удалить раздел на сайте, или просто сменить структуру, но вот кто-то на вас ссылался, и в итоге ссылки буду вести на страницу с 404 ошибкой. Чтобы не терять вес с этих страниц, можно сделать редирект с несуществующих категорий на главную.
Для этого откройте файл /engine/engine.php и найдите:
if (!$category_id) $category_id = 'not detected';
Замените на:
//решение проблемы с категориями, которых не существует if ($config['allow_alt_url'] == "yes" AND ! $category_id AND $view_template != "rss") { header("HTTP/1.0 301 Moved Permanently"); header("Location: {$config['http_home_url']}"); die("Redirect"); } //решение проблемы с категориями, которых не существует
Теперь будет выполнен редирект на главную страницу из категорий, которые не существуют.
Редирект с удаленных или несуществующих новостей на главную
И последняя на сегодня ситуация, которая возникает у каждого. Допустим, вы удалили новость, теперь вместо нее будет страница с 404 ошибкой. Если вам не нужны такие страницы, тогда есть возможность сделать редирект с удаленной новости на главную страницу.
Для этого откройте файл /engine/modules/show.full.php и найдите:
elseif( ! $news_found ) { @header( "HTTP/1.0 404 Not Found" ); msgbox( $lang['all_err_1'], $lang['news_err_12'] ); }
Замените на:
// 301 редирект на главную, если новость не найдена/не существует elseif( ! $news_found ) { header("HTTP/1.0 301 Moved Permanently"); header("Location: {$config['http_home_url']}"); die("Redirect"); } // 301 редирект на главную, если новость не найдена/не существует
Готово! Теперь, если вы удалили новость, то вес страницы будет передан на главную страницу.
Ну вот, сегодня мы немного перебороли 404 ошибки, а в следующем посте, я вам расскажу о настройке индексации сайта. Если есть ваши предложения — не стесняйтесь, пишите! Буду рад ответить на вопросы!