Главная » Оптимизация » SEO оптимизация DataLife Engine 9.8

SEO оптимизация DataLife Engine 9.8

  • Оптимизация

SEO оптимизация DataLife Engine 9.8

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



Сразу хочу расставить все точки над i и остановить крики зазнавшихся seo-специалистов: - это статья не копирование чьих то умозаключений, а продолжение наших публикаций, которые мы начали ещё на нашем бывшем проекте DLEPro в разделе "Оптимизация DLE", задолго до того, как многие вообще занялись этой темой в DLE. Данная статья строится на собственном опыте, ошибках и успехах и информации полученной в процессе дискуссий на профильных форумах, сайтах и блогах.

Как и ранее на DLEPro, здесь мы будем рассматривать в каждой статье вопросы внутренней SEO оптимизации только под определённую и актуальную на момент написания статьи версию DLE.

Ещё сразу хочется объяснить, чтобы вы не пытали илюзий, внутренняя оптимизация в наше время это только малая толика всего, что сделает ваш ресурс популярным, посещаемым и выведет его в топ-ы, потребуются серьёзные затраты на его продвижение...

SEO оптимизация DataLife Engine 9.8
И так на дворе у нас февраль 2013 года и DataLife Engine 9.8 на сервере


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




1. Правильный скрипт DataLife Engine:
Сразу начнём с неприятного, - всё что будет написано ниже относится только к DataLife Engine 9.8 - так называется только то, дистрибутив чего вы скачали из СВОЕГО профиля на dle-news.ru. Всякого рода сборки и дистрибутивы с сюрпризами вообще не имеет смысла развивать, так как если вы решили осознано строить свой проект в сети и получить в итоге серьёзный ресурс, то и подойдите к этому серьёзно, запланировав в бюджете покупку лицензии, а если у вас и на неё нет средств, то вам стоит задуматься: - а может использовать бесплатный скрипт или сервисы создания блогов и социальные сети для своей странички в сети.

2. Настраиваем DataLife Engine
a) Общие настройки
Заходим Настройка системы ->Название сайта: заполняем;
Заходим Настройка системы ->Домашняя страница сайта: вводим домен не забыв определиться с основным зеркалом: с www или без www;
Заходим Настройка системы ->Описание (Description) сайта: заполняем;
Заходим Настройка системы ->Ключевые слова (Keywords) для сайта: заполняем;
Заходим Настройка системы ->Тип ЧПУ: рекомендую первый или второй тип;
Заходим Настройка системы -> Обрабатывать неверные URL ЧПУ: да

b) Пытаемся бороться со спамом стандартными средствами:
Заходим Список всех разделов -> Настройки скрипта -> Вопросы и ответы для защиты от спама: придумываем и создаём уникальные вопросы и ответы;
Заходим Настройка системы -> Настройки пользователей -> Способ регистрации на сайте: Расширенный;
Заходим Настройка системы -> Настройки пользователей -> Выводить правила сайта при регистрации: да;
Заходим Настройка системы -> Настройки пользователей -> Код безопасности: да;
Заходим Настройка системы -> Настройки пользователей -> Включить систему Вопрос - Ответ: да;

c) Настраиваем группы пользователей, продолжая бороться с возможным спамом:
Гостям запрещаем комментировать, Пользователям добавляем системы капчи и вопросов

3. Правильный robots.txt:
Тут все просто, находится он в корне сайта и я рекомендую его такое содержание:
User-agent: *
Disallow: /2008/
Disallow: /2009/
Disallow: /2010/
Disallow: /2011/
Disallow: /2012/
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/ajax/
Disallow: /engine/go.php
Disallow: /engine/download.php
Disallow: /*?*
Disallow: /admin

Sitemap: http://сайт.ru/sitemap.xml
Host: сайт.ru


Файл админки нужно переименовывать из admin.php, например в admin-dostup.php, вообщем оставляя начало в виде admin и не забудьте сначала в настройках скрипта указать новое имя файла: Настройка системы -> Безопасность -> Файл админпанели. Таким образом мы закрываем админку от попадания в индекс и не раскрываем полного имени файла для злоумышленников.

Количество первых строк(с годами) зависят от количества лет существования вашего сайта. Если публикации начались только в этом году оставьте только одну строку с значением 2013.

И не забудьте в строках Sitemap и Host заменить сайт.ru на ваш домен.
В Sitemap укажите url к карты сайта, его можно узнать в админке в разделе "Карта сайта для Google и Yandex".
В Host укажите ваш домен, учитывая его основное зеркало, т.е. с www или без него, для этого и служит значение Host, и вводится только домен основного зеркала, а не полный url сайта.
Кроме того, так как Host понимают не все роботы, рекомендуется его добавлять в конце файла robots.txt.
На создание такой версии файла robots.txt повлияли дискуссии с asmakovec2 и fioru.

4. Указываем главное зеркало(с www или без и склеиваем), убираем дубли главных страниц сайта типа: index.php, index.html
Я использую без www, это проще...
Открываем файл .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}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [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}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [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}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]


5. Убираем(склеиваем) дубли первых страниц навигации:
Открываем файл .htaccess в корне сайта:
Найти:
RewriteRule ^page/(.*)$ index.php?cstart=$1 [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");
}


6. Удаляем несуществующие страницы
Это самый спорный пункт, например Алаич и asmakovec2 рекомендуют несуществующие страницы редиректить на главную, что именно я считаю неверным для ПС вообще и для СДЛ сайта в частности. Удалена публикация или раздел на сайте, зачем кого-то обманывать, удерживая посетителя на сайте, при таком подходе большой процент поиска станет неадекватным.
Поэтому я рекомендую вообще в данном случае ничего не делать или сделать так:

Открываем файл /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;


7. Устанавливаем HTML карту сайта
Естественно рекомендую установить наш модуль Карта сайта YaSiteMap 2.3, он имеет кеширование и пагинацию.

8. Скрываем служебную и бесполезную для ПС информацию:
Так как мы считаем страницы архива и дат дублями и они у нас закрыты в robots.txt, то зачем дразнить ссылками на них в блоках, но исходя из того что иногда пользователям удобно и нужно обращаться в архив, мы сделаем его вывод доступным только авторизованным пользователям, но не поисковым ботам. Реализуется это стандартными средствами DLE используя теги [not-group=5]скрываемый блок[/not-group].
Тоже самое можно сделать с опросами и облаком тегов в блоке, информацией о количестве комментариев, просмотрах, рейтинге в шаблонах краткой и полной новости. Это уменьшит количество внутренних ссылок на страницах, которых и так предостаточно в стандартном выводе информации DLE.
А вот вывод даты публикации и авторе, я бы для авторизованных пользователей оставил кликабельными - [not-group=5]автор: {author} дата: [day-news]{date}[/day-news][/not-group], а для не авторизованных в виде текста используя теги [group=5]автор: {login} дата: {date}[/group].

9. Добавляем вывод полезной для пользователей и индексации сайта информации:
Стандартный модуль вывода популярных новостей не совсем соответствует своему названию, да и пользы от него мало. Во-первых кто сказал, что популярными не могут быть новости опубликованные более чем месяц назад, во-вторых чтобы новость стала популярной её нужно показывать пользователям, ну конечно хотелось бы чтобы эту возможность показа имели и остальные публикации.
Поэтому я рекомендую отключить данный модуль, а в блоке выводить подобную информацию рандомно(взяв случайно несколько любых новостей из базы).
Реализовать это можно с помощью custom с кешированием или с помощью модуля Block.Pro для DLE от ПафНутиЯ.
Посредством custom реализовать можно примерно так:


10. Выводим ревелантную информацию в полной новости и на статических страницах:
Устанавливаем хак Category Related News от MSW
Хак позволяет выводить похожие новости не из всех подряд категорий зачастую отдалённой по теме, а только из основной(родительской) категории расположения просматриваемой новости.
Вывод ревелантной информации наиболее актуален для порталов публикующих новости различных тематик, согласитесь что не совсем хорошо когда в поиске появится страница рассказывающая про автомобиль, а найдут её по анкору о приготовлении торта и всё это только потому, что в блоке популярных или случайно выведенных новостей на странице этой новости случайно вывелся заголовок новости о торте из другого раздела, который и проиндексировался. Поэтому рекомендую управлять выводимой в блоке информацией с помощью тегов
[not-aviable=showfull|static]блок популярных или случайных новостей[/not-aviable]
и пусть в полной новости выводится информация только соответствующая ей.

11. Избавляемся от внешних ссылок:
Для этих целей рекомендую использовать наш модуль Nofollow v.2.0 для DLE или модуль dude Smart Leech 0.4 Beta для DLE. Оба модуля имеют возможность поддержки исключений.

12. Заполняем мета-данные:
Не ленимся и заполняем или редактируем вручную мета-данные категорий: title, описание и ключевые слова; мета-данные новостей на вкладке дополнительно, причём уделяем внимание и ЧПУ URL статьи, тут полезна и его краткость, например при репостинге; мета-данные статичных страниц.

13. Создание XML карты сайта
После добавления или удаления публикаций не забываем пересоздавать sitemap.xml в разделе "Карта сайта для Google и Yandex"

Автор: Yeti(webseolife.ru)

Ключевые слова по теме SEO оптимизация DataLife Engine 9.8: внутренняя оптимизация, SEO оптимизация DLE, убираем дубли, редирект