Регистрация Войти
Вход на сайт

Внутренняя SEO оптимизация DataLife Engine v.10.1

Внутренняя SEO оптимизация DataLife Engine v.10.1

Популярность CMS DataLife Engine не уменьшается среди веб-мастеров выбирающих движок для создания своего проекта, но существует множество негативных высказываний в адрес seo-оптимизированности DLE. Разработчик с выходом каждой новой версии скрипта постепенно устраняет seo-недоработки и замечания, но не всё сразу...
В этой статье мы коснёмся вопроса, как провести внутреннюю SEO оптимизацию DLE уже сейчас и без особых проблем и знаний.

Работаем с файлом robots.txt:
User-agent: *
Disallow: /2013/
Disallow: /tags/
Disallow: /user/
Disallow: /favorites/
Disallow: /lastnews/
Disallow: /newposts/
Disallow: /catalog/
Disallow: /*page/
Disallow: /*print
Disallow: /addnews.html
Disallow: /statistics.html
Disallow: /rules.html
Disallow: /dle-rules-page.html
Disallow: /engine/
Disallow: /*?*
Sitemap: http://site.ru/sitemap.xml
Host: site.ru


Внимание! Данный вид robots.txt применим для тех сайтов, где не используется модули MetaRobots, DonBot или модификации файла engine.php для управления мета-тегом robots.

Настраиваем скрипт:
Заполняем мета-данные сайта.
В Панели управления в настройках системы включаем функцию: Обрабатывать неверные URL ЧПУ
Для получения хорошего результата оптимизации, мета-данные на вкладке дополнительно при публикации и редактировании новостей, мета-данные категорий и статических страниц необходимо заполнять вручную, стараясь избегать их дублей и используя принципы seo.

Также не поленитесь вручную заполнять или редактировать на вкладке дополнительно поле: ЧПУ URL статьи, чем оно короче тем лучше(это адрес вашей страницы при включенном ЧПУ). Делайте его ёмким и коротким. Раньше использовали транслит, но теперь по определённым данным даже лучше использовать перевод, ПС его понимают и в выдаче подсвечивают. То что генерирует автоматически скрипт может иметь очень большую длину при длинном заголовке новости, поэтому не поленитесь сделайте красивый адрес новости. Не бойтесь редактировать url новостей, система обработки неверных url в dle привязана к ID новости и при изменении ЧПУ создаст 301 редирект на её новый адрес, так как ID вы не меняете.

Дополнительно обезопасим от случайного попадания в индекс админку:
Добавим мета-тег robots. Открыть файл /engine/skins/default.skin.php:
Найти:
<head>


Добавить ниже:
<meta name="robots" content="noindex,nofollow" />


Закроем от индексации дубли - страницы печати:
добавив такой же мета-тег в шаблоны страниц печати: print.tpl и static_print.tpl

Найти:
<head>


Добавить ниже:
<meta name="robots" content="noindex,nofollow" />


Указываем главное зеркало(с www или без и склеиваем), первых страниц навигации и несуществующий раздел - catalog, также являющийся дублем главной страницы сайта:

Открываем файл .htaccess в корне сайта:
Найти:
RewriteEngine On


a) Для главного зеркала БЕЗ www ниже добавить:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http:\/\/%1/$1 [R=301,QSA,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ / [R=301,L]
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]


b1) Для главного зеркала С www ниже добавить:
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ / [R=301,L]
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]

где site.ru - замените на свой домен

b1) или для него же универсальный от противного ниже добавить:
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ / [R=301,L]
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]


И с дублем первой страницы дописываем решение взятое у Алаева:
Далее открываем файл /engine/engine.php (взято у Алаева тут):
Найти:
if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {


Внимание ВЫШЕ добавить:
if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {
$first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
header("HTTP/1.0 301 Moved Permanently");
header("Location: $first_page_url");
die("Redirect");
}


Убирать дубль главной по адресу /index.php в 10-ой версии уже не нужно, разработчик добавил canonical для указания главной страницы.

Если у вас открыты для индексирования страницы пагинации, решим вопрос с с несуществующими страницами пагинации, например, сделали вы вывод не по 5 новостей, а по 10 на страницу или удалили часть новостей и общее число страниц пагинации изменилось в меньшую сторону:
Способ решения взят у Алаева(alaev.info)
Работаем с страницами сайта:
Открываем файл /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 указана страница больше чем максимально существующая


Работаем с страницами комментариев:
Открываем файл /engine/classes/comments.class.php и в самом низу находим:
}

}
?>


ВЫШЕ добавляем:
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая
if ( $this->cstart > $enpages_count ) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $url);
die();
}
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая


Закрываем разделы со страницами дублирующими контент и служебные страницы посредством мета-тега robots:
Покупаем у Алаева модуль DonBot выгружаем его файлы на сервер и настраиваем его, например так:
вставляем в ваш шаблон main.tpl после:
{headers}


вставить:
{include file='engine/modules/donbot.php?tag=follow&pages=newposts,lastnews,date,allnews,alltags,tags,xfsearch,catalog,pages'}
{include file='engine/modules/donbot.php?tag=nofollow&pages=addnews,feedback,lostpassword,register,rules,stats,search,pm,favorites,lastcomments,userinfo'}


вы можете выбрать другую настройку.

Данный модуль проработаннее нашего первого, поэтому и рекомендую его, тем более ставится он один раз и при обновлении движка не требует правок файлов.

При такой настройке модуля или использовании способа приведённого ниже можно сократить файл robots.txt до:
User-agent: *
Disallow: /engine/
Disallow: /*?*
Sitemap: http://site.ru/sitemap.xml
Host: site.ru


Почему я рекомендую управлять индексацией сайта с помощью именно мета-тега robots?

Потому что файл robots.txt уже давно для Google носит рекомендательный характер, а мета-тег он выполняет.



Устанавливаем бесплатные модули:
Два модуля от Алаева:
Модуль LinkEnso
LinkEnso - SEO модуль кольцевой внутренней перелинковки для движка DLE и вывода ненумерованного списка ссылок на страницах публикаций сайта.
Бесплатно версии вполне достаточно, от платной она отличается только наличием в последней излишеств, которые в плане оптимизации пользы не принесут а могут наоборот при неправильном использовании навредить. Данный модуль должен заминить вывод похожих новостей и организовать кольцевую переликовку. Устанавливается один раз и при обновлении скрипта переустановка не требуется.

Модуль CatFace
Уникальный модуль для SEO оптимизации главной страницы и категорий сайта построенного на движке DLE (Datalife Engine). Устанавливается один раз и при обновлении скрипта переустановка не требуется.

Далее устанавливаем модуль от seodude ака phpdude, который он уже забросил давно, но модуль полностью рабочий, промо уже неактуальное из мы из него выкинули, а устанавливается он правкой одного вхождения в один файл.

Модуль dude Smart Leech
Модуль dude Smart Leech позволяет скрывать внешние ссылки обрабатывая их согласно созданным в настройках модуля правилам.
В функционале модуля: url rewrite и img url rewrite(url=site.ru/go?a%3AaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8%2FMjMwMDM1Nw%3D%3D), поддержка черного и белого списков, страница редиректа, тег noindex и атрибут nofollow.


Далее обновлённый мной модуль:

Модуль Карта сайта YaSiteMap
Модуль Карта сайта YaSiteMap - это HTML карта сайта.
HTML карта сайта нужна для быстрой индексации поисковыми системами и удобства поиска публикаций посетителями вашего сайта. Кроме того модуль позволяет улучшить для страниц сайта такой показатель как вложенность. В данном модуле реализованы постраничный вывод ссылок на статьи и кеширование.


Полезный модуль на практике ускоряющий индексации сайта Яндексом:

Модуль Пингатор Яндекс Поиска
Модуль Пингатор Яндекс Поиска - отправляет в пинг Яндекс.Поиска новые или отредактированные публикации.
Модуль Пингатор ЯНДЕКС ПОИСКА позволяет отправлять в пинг Яндекс.Поиска новые или отредактированные публикации, что позволяет ускорить индексацию сайта в Яндексе.


Ещё один неприятный момент зачастую в индекс попадают оставленные на внешних ресурсах ссылки на аттачи, и robots.txt нас от этого не защитит, поэтому закрываем их от индексирования атрибутом nofollow:

Устанавливаем хак Закрываем от индексирования ссылки на attachment в DLE
Используем из хака только то, что касается attachment.

И последний спорный вопрос что делать с удалёнными страницами и разделами?
Многие используют 301 редирект с них на главную. Если вы его сторонник, можете прочитать как это сделать у Алаева.

Я считаю данный способ неправильным, это обман пользователя и ПС. Раз страницы нет, значит должна выводится ошибка и не вводить пользователя в заблуждение.

Поэтому я рекомендую сделать следующее. Скрипт сам отдаёт ошибку 404, но этого как бы недостаточно для удаления страницы из сервисов ПС особенно когда на неё ещё где-то висят ссылки, поэтому добавим вывод мета-тега robots на страницы ошибок.

Открываем файл /engine/modules/show.full.php
Найти:
@header( "HTTP/1.0 404 Not Found" );


Добавить ниже:
$disable_index = 1;


Открываем файл /engine/modules/static.php
Найти:
@header( "HTTP/1.0 404 Not Found" );


Добавить ниже:
$disable_index = 1;


Открываем файл /engine/modules/show.short.php
Найти, Внимание! (3 раза):
msgbox( $lang['all_err_1'], $lang['news_err_27'] );


И Внимание! ВЫШЕ добавить:

$disable_index = 1;


Ну вот пока и всё.

Автор статьи: Yeti

источник: myseogid.ru
Категория: Скрипты
Актуальные версии, стоимость и возможности сервисов и программ уточняйте на сайтах их авторов.
comments powered by Disqus
» » Внутренняя SEO оптимизация DataLife Engine v.10.1