Оптимизируем сайт на DLE (lite версия статьи)

Оптимизируем сайт на DLE (lite версия статьи)

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

Это статья не полная инструкция по оптимизации сайта, небольшие рекомендации!

1. Начнём с всем известного файла - robots.txt


хочется заметить что это наша точка зрения по правильности создания robots.txt

User-agent: *
Disallow: /backup/
Disallow: /catalog/
Disallow: /engine/
Disallow: /favorites/
Disallow: /language/
Disallow: /lastnews/
Disallow: /newposts/
Disallow: /2011/$
Disallow: /tags/$
Disallow: /templates/
Disallow: /uploads/
Disallow: /user/
Disallow: /*print
Disallow: /*do=pm
Disallow: /*subaction=userinfo
Disallow: /*subaction=newposts
Disallow: /*do=addnews
Disallow: /*do=lastnews
Disallow: /*do=lastcomments
Disallow: /*do=lostpassword
Disallow: /*do=register
Disallow: /*do=search
Disallow: /addnews.html
Disallow: /statistics.html
Disallow: /search.html
Disallow: /rules.html
Host: example.com
Sitemap: http://example.com/sitemap.xml


незабываем в двух местах заменить example.com на свой домен, а в Директиве Sitemap укажите главное зеркало сайта определившись каким оно будет: с www или нет, кстати данную директиву использует не только Яндекс, но Mail.ru.

Мы не приводим полную рекомендацию, потому что многие владельцы сайтов продают ссылки и кол-во страниц - это их заработок, а можно было бы полностью закрыть: 2011(год), tags и закрыть page.
Чтобы их закрыть меняем в приведённом выше коде примера:
Disallow: /2011/$
Disallow: /tags/$

на (добавив кроме 2011 ещё и другие архивные года по аналогии с кодом примера ниже):
Disallow: /2011/
Disallow: /tags/
Disallow: /page/
Disallow: /*/page/

Но красивее закрыт индексацию архивов Метатегом robots, как это сделать читает в пункте 5 этой статьи.
А для ещё большего числа продажных страниц можно открыть print. Для тех кто работает с Google AdSense и Яндекс.Директ не мешает открыть показ рекламы на всех страницах сайта, даже тех которые мы закрыли от индексирования, для этого добавим в robots.txt:
User-agent: MediaPartners-Google
Allow: /

и соответственно:
User-agent: YandexDirect
Allow: /


Чтобы узнать больше о robots.txt рекомендуем прочитать:
robotstxt.org.ru
help.yandex.ru
google.com/support/webmasters
go.mail.ru

2. Убираем дубли главной страницы сайта, типа index.php, index.html


Редактируем файл .htaccess в корне сайта:

Открываем файл и заменяем(при наличии апачи и mod_rewrite):
RewriteEngine On


на:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule (.*) http://example.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://example.com/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://example.com/ [R=301,L]

не забыв заменить example.com на свой домен

Внимание! Данные варианты предусматривают главное зеркало домена без www, если вам нужен вариант с www поменяйте аналогичным способом адрес домена в коде.

3. Убираем дубли внутренних страниц сайта при выборе ЧПУ типа 1 и 2

(В версии DataLife Engine 9.3 и выше данная проблема с дублями и редиректе при смене ЧПУ решена.)
Находим (проверяем правильность чпу и alt_name в url, кстати это поможет вам если вы решили сменить один тип чпу на другой с правильным редиректом 301):
$tpl->set( '{full-link}', $full_link );


* Ниже добавляем:
$full_link_ = !isset ($_GET['cstart']) ? $full_link : $link_page . intval ($_GET['cstart']) . ',' . $news_name . '.html';
if ($config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1) != $full_link_) {
    header ('HTTP/1.1 301 Moved Permanently');
    header ('Location: ' . $full_link_);
    die ();
}


Автор: Игорь Тимошенко (timoshenko.livejournal.com)

4. Приводим в порядок метатеги title


Тут парадокс с категориями в DLE 9.2, вроде бы заполнение мегатега title категорий должно пойти на пользу, но нет, тут бага..(Разработчик исправит в следующей версии скрипта этот баг)
И она проявляется, если у вас не закрыты от индексации страницы Пагинации (page) по категории и ! ЗАПОЛНЕН метатег title(только на 9.2).

Чтобы понять о чём речь смотрим скрины:

Ничего не делаем, да и не знаем что такое метатеги и зачем они )), вообщем незапоняем:

Оптимизируем сайт на DLE (lite версия статьи)
незаполнены title категории


Оптимизируем сайт на DLE (lite версия статьи)
и вот результат - в title мы видим добавление - Страница 2(только на 9.2)


это хорошо и Google нам говорить тут у вас нет дублей Title.

А теперь мы хотели сделать как лучше, и решили заполнить метатег title категории, ожидая естественно лучший результат чем тот если оставить метатеги незаполнеными:

Оптимизируем сайт на DLE (lite версия статьи)
заполняем метатег title категории


Оптимизируем сайт на DLE (lite версия статьи)
и... в результате на второй странице категории дубль title первой страницы - Google ругается...


Оптимизируем сайт на DLE (lite версия статьи)
следующая страница категории и таже беда - дубль title, а ведь заполнив его мы хотели получить лучший результат


Не будем морочится с кодом файла engine.php для решения этой задачи и так как Имя категории, заполненое при её создании в Админ Панели, автоматом становится метатегом title этой категории, а меню и категории в нём в DLE выводятся добавлением ссылок в шаблон вручную, как и имя категории в шаблоне задаётся так же вручную, то ничего нам не мешает не заполнять метатег категории, а просто присвоим имя категории которое станет её метатегом title.

Написано выше много по метатегу title Категорий, подведём итоги (только на 9.2): метатег title Категории при её создании заполнять не нужно.

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

Тут каждый вполне может найти свою тактику написания Title, которую посчитает наиболее целесообразной.
А ключевое по Title и не только публикаций, а вообще выделим:
- не должно быть одинаковых Title на разных страницах сайта;
- Title должен отражать суть, тематику и содержание страницы;
- старайтесь делать длину Title не более 8 слов(отображается 70знаков) для продвижении в Google и 15слов(отображается 80знаков) для Яндекса(естественно лучше использовать 8);
- Title должен содержать в себе 1-2 ключевые слова, но не более иначе ПС посчитает это спамом;
- Title должен содержать название вашего проекта или ваш бренд

Попробуем это применить в Title полной новости автоматически(Title новости должен быть обязательно заполнен на вкладке Дополнительно):

добавляем сам Title новости + категория + Название проекта(бренда) и разделяем их прямым слешем |:

Открыть engine.php:

ищем:
$metatags = <<<HTML


и внимание! ВЫШЕ добавляем:
if ($subaction == 'showfull' or $newsid ) $metatags['title'] = $metatags['title'] . ' | '. $cat_info[$category_id]['name'] . ' | ' . $config['home_title'];


и для красоты переводим на разделение метатегов прямыми слешами везде:

ищем(этот код несколько выше, над тем что меняли ранее):

if (intval($_GET['cstart']) > 1 ){

    $page_extra = ' &raquo; '.$lang['news_site'].' '.intval($_GET['cstart']);

} else $page_extra = '';

if ($nam_e) {

    $metatags['title'] = $nam_e . $page_extra . ' &raquo; ' . $metatags['title'];
    $rss_title = $metatags['title'];

} elseif ($titl_e) {

    $metatags['title'] = $titl_e . $page_extra . ' &raquo; ' . $config['home_title'];


и меняем на:
if (intval($_GET['cstart']) > 1 ){

    $page_extra = ' | '.$lang['news_site'].' '.intval($_GET['cstart']);

} else $page_extra = '';

if ($nam_e) {

    $metatags['title'] = $nam_e . $page_extra . ' | ' . $metatags['title'];
    $rss_title = $metatags['title'];

} elseif ($titl_e) {

    $metatags['title'] = $titl_e . $page_extra . ' | ' . $config['home_title'];


Заполните метатеги статических страниц в title их не забыв добавить Название вашего проекта(бренда).

Полезно почитать:
devaka.ru

5. Используем метатег robots с пользой...


Убираем из индексации удалённые страницы и страницы которых не было, те которые скрипт отдаёт с ошибкой 404

Установка:
a. Открыть файлы:
- /engine/modules/show.full.php
- /engine/modules/static.php
Найти:
@header( "HTTP/1.0 404 Not Found" );


Добавить ниже:
$robots_noindex = "<meta name=\"robots\" content=\"noindex\" />";


b. Открыть файл: /engine/modules/show.short.php
Найти: (2 раза)
msgbox( $lang['all_err_1'], $lang['news_err_27'] );


Добавить выше:
$robots_noindex = "<meta name=\"robots\" content=\"noindex\" />";


c. Открыть файл: /engine/engine.php
Найти:
$metatags = <<<HTML


Добавить ВЫШЕ:
if(!$robots_noindex) $robots_noindex = "<meta name=\"robots\" content=\"index,follow\" />";


Найти:
<meta name="robots" content="all" />


Заменить на:
{$robots_noindex}


Автор хака: MSW(0-web.ru), пока мы делали свою реализацию, он сделал это быстрее и проще, а дальше мы развили его применение(правда у нас он управляется из Панели управления, а тут предлагаем упрощённое использование):

Далее, используя этот же хак убираем ненужные для индексации страницы(выбор страниц мы только рекомендуем):
Открыть файлы:
- /engine/modules/addnews.php
- /engine/modules/feedback.php
- /engine/modules/fullsearch.php
- /engine/modules/lostpassword.php
- /engine/modules/register.php
- /engine/modules/search.php
- /engine/modules/stats.php

и например если у вас установлен Модуль Репутации:
- /engine/modules/repa.php

в них примерно после:
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}


добавить:
$robots_noindex = "<meta name=\"robots\" content=\"noindex\" />";


Далее если не закрыли индексацию архивов, а вы хотите убрать дубли:

Открыть файл: /engine/engine.php
Найти комментарий к коду и в блоке кода под ним строку:
// ################ Новости за год #################
......
$newsmodule = true;

Над строкой:
$newsmodule = true;

вставить:
$robots_noindex = "<meta name=\"robots\" content=\"noindex\" />";

или(неиндексируем, но следуем по ссылкам)
$robots_noindex = "<meta name=\"robots\" content=\"noindex,follow\" />";

это мы закрыли дубли в выводе архивов по годам, а теперь переходим к закрытию дублей по месяцам, ищем такую же строку и вставляем такой же код в блоке под комментарием к коду:
// ################ Новости за месяц #################

и в окончании закрываем тем же способом дубли по дням найдя блок под комментарием к коду:
// ################ Новости за день #################

Всё, смотрим исходный код страницы архива на сайте и видим:
Оптимизируем сайт на DLE (lite версия статьи)


Полезно почитать:
googlewebmastercentral.blogspot.com
help.yandex.ru/webmaster/

6. Закрываем от индексирования Инфо сообщения скрипта


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

Открыть /templates/Ваш шаблон/info.tpl
и всё его содержимое закрыть в теги noindex.

7. Другое, но не всё...


Очень важны и ключевые слова, но о них нужно писать отдельную статью как и составлении сематнического ядра и других тонкостях.
А на первое время выделить ключевые слова в своих публикациях веб-мастер сможет хотя бы близко к цели.
При написании статей, если берёте информацию с сторонних источников, используйте рерайт, не используйте одно и тоже описание у схожих публикаций, например новых версий программ. Используйте перелинковку.

И ещё, если между параметрами файла robots.txt и метатегами есть противоречия, то бот последует наиболее строгим из них.

Добавляйте страницы через Аддуриловки ведущих ПС Яндекс и Google и пользуйтесь их сервисами для веб-мастером для диагностики сайтов.
Удаляйте несуществующие страницы через Яндекс.Вебмастер

Грамотно используйте тег nоindех и атрибут nоfоllоw и ещё многое, многое и многое...

Статья написана применительно к актуальной на момент написания версии DLE 9.2, поэтому рекомендации в метатеге title на станицах пагинации работать не будут на более ранних версиях скрипта.

Полезно почитать:
forum.searchengines.ru
dlepro.com/sovet/
Эту и следующие части ответов по SEO от Seo2z


Ключевые слова по теме Оптимизируем сайт на DLE (lite версия статьи): оптимизируем сайт, оптимизируем DLE, seo-оптимизация, метатеги


Социальные сети и закладки:




Комментарии к новости Оптимизируем сайт на DLE (lite версия статьи):


#1 | Пользователь: aper(Offline) | 1 июня 2011 01:59
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 7 | Репутация: 0
Dumayu chto v punkte 4 yest malenkaya neladka, vot tut:
$metatags['title'] = $titl_e . $page_extra . ' | ' . $config['home_title'];

nado snyat vot eto:
. ' | ' . $config['home_title']
a to kagda esho i stavim kak vi skazali
if ($subaction == 'showfull' or $newsid ) $metatags['title'] = $metatags['title'] . ' | '. $cat_info[$category_id]['name'] . ' | ' . $config['home_title'];

to paluchaetsa 2 raza imya sita. I vaabshe mojno tolko zdes
$metatags['title'] = $titl_e . $page_extra . ' | ' . $config['home_title'];
dabavit categoriu i vsyo. Chto vi dumaete po etomu povodu?


#2 | Администратор: Admin(Offline) | 1 июня 2011 09:37
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6
aper,
1. это оригинальный код версии 9.2, а не придуманный нами, там только замена на слеш

2. дубля там бы не было так как ранее писалось что не должны заполнятся title категории и описывалось почему, статья писалась под 9.2, в 9.3 баг разработчик убрал, да и сейчас его нет в 9.3 как видите в этой новости.

Ps под 9.3 в ближайшее время статью обновим...

----------------------

#3 | Пользователь: karim(Offline) | 11 июня 2011 17:27
ICQ: 533324 | Skype: не указано
Публикаций: 0 | Комментариев: 12 | Репутация: 2
Когда под дле 9.3 выложите уже?


#4 | Администратор: Admin(Offline) | 11 июня 2011 17:39
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6
karim,
после праздников России завтра(Питер) и траурного 22 июня(командировки: Брест, Хатынь для цикла статей на одном из новостных наших ресурсов), точнее сказать не могу, отпуска, лето, дачи и эти командировки. Команда на это время поредела на 70%.
Yeti сейчас для этого и других сайтов пишет в дороге, а мы отписываемся здесь и на других ресурсах в наших аккаунтах.
... но возможно и раньше, много полезных изменений в DLE 9.3, которые улучшили оптимизацию.

----------------------

#5 | Пользователь: karim(Offline) | 12 июня 2011 13:09
ICQ: 533324 | Skype: не указано
Публикаций: 0 | Комментариев: 12 | Репутация: 2
Спасибо,буду обезательно ждать.Побольше-бы таких статей feel


#6 | Посетитель: ssaid(Offline) | 19 июня 2011 12:12
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 1 | Репутация: 0
Ну супер!!!!
Статья просто отличная. Жду с нетерпением. новых подобных публикаций. СПАСИБО


#7 | Администратор: Admin(Offline) | 19 июня 2011 13:45
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6

#8 | Пользователь: karim(Offline) | 19 июня 2011 22:13
ICQ: 533324 | Skype: не указано
Публикаций: 0 | Комментариев: 12 | Репутация: 2
Thanks


#9 | Посетитель: shadow6630(Offline) | 31 июля 2011 00:20
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 7 | Репутация: 0
Нашел баг: когда выполняеш действия по пункуту 2. Убираем дубли главной страницы сайта, типа index.php, index.html , если при регистрации включены правила , то при нажатии на кнопку "Принять" страница просто перегружается, тоесть не переходит к самой регистрации , а так и остается на странице правил


#10 | Администратор: Admin(Offline) | 31 июля 2011 00:25
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6
shadow6630,
нет такого бага, можете на данном сайте проверить. У вас проблемы скорее всего с .htaccess

----------------------

#11 | Пользователь: Axel(Offline) | 20 сентября 2011 16:51
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 39 | Репутация: 0
Вопрос по разделу 5. Используем метатег robots с пользой...

Почему не скрыли страницы и от Гугла? Где-то видел, что у гугла тоже есть тег, который запрещает индексировать страницу.
Дело в том, что у меня, например, страницы календаря закрыты в роботс.тхт, но в гугле все равно ежедневно пролязят ошибки в Заблокирован файлом robots.txt
Я отправляю ссылку вида сайт/2011/ на удаление всего каталога в Доступ для сканера - Удалить УРЛ, но ничего не удаляется и ежедневно количество ошибок растет. Посоветуйте, как быть...

P.S. Отключите функцию, запрещающую публиковать ссылку.. луше комменты на модерацию отправлять. ССылку не вставляю, а коммента все равно не пропускает. recourse


#12 | Администратор: Admin(Offline) | 20 сентября 2011 17:32
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6
Axel,
Почему не скрыли страницы и от Гугла? Где-то видел, что у гугла тоже есть тег, который запрещает индексировать страницу.

1. О чём вы? Индексация страницы запрещена.

2. Далее, Вы в своём комментарии переходите от метатега до robots.txt а это разные вещи.

3. По поводу ошибки Гугла скорее всего смотрите sitemap который отправляете в Гугл, такая ошибка возможна, если каталог архива отправляется в sitemap, а в robots.txt он закрыт.

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

----------------------

#13 | Пользователь: Axel(Offline) | 20 сентября 2011 19:24
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 39 | Репутация: 0
Цитата: Admin
3. По поводу ошибки Гугла скорее всего смотрите sitemap который отправляете в Гугл, такая ошибка возможна, если каталог архива отправляется в sitemap, а в robots.txt он закрыт.

А как проверить это? использую sitemap от DLE.
Цитата: Admin
1. О чём вы? Индексация страницы запрещена.

И правда, почитал блог гула и понял... :)


И почему мы указали не <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> ?
А просто <meta name=\"robots\" content=\"noindex\" />


#14 | Администратор: Admin(Offline) | 20 сентября 2011 19:46
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6
Axel,
1.Вы не дочитали про значения метатегов ROBOTS. Мы запретили индексацию. но разрешили переход по ссылкам на этих страницах.

3. нужно индивидуально разбиратся почему гугл выдаёт вам данную ошибку, о чём мы вам и сказали, начните с того, что в соответствующем разделе посмотрите какого вида sitemap передаётся в гугл там он может быть не один, перепроверьте robots.txt может там возникает конфликт инструкций для робота. Само наличие этой ошибки не критично и ни на что не повлияет, робот изберёт наиболее строгую инструкцию.

----------------------

#15 | Пользователь: Axel(Offline) | 21 сентября 2011 00:04
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 39 | Репутация: 0
Спасибо.

Еще один вопрос:
Когда следующая статья по оптимизации? wink


#16 | Администратор: Admin(Offline) | 21 сентября 2011 00:17
ICQ: не указано | Skype: не указано
Публикаций: 591 | Комментариев: 328 | Репутация: 6
Axel,
Как протестируем и изучим 9.4 напишем и статью под него.
Ещё не закончены наши тесты с дублированием title и контента, проанализируем и будем думать в верном ли направлении идём.

----------------------

#17 | Посетитель: patap7777(Offline) | 3 ноября 2011 22:53
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 1 | Репутация: 0
Спасибо за статью. очень информативная.

Может подскажите , как можно закрыть от индексации страницы вида

Сайт.ру/page,1,nazvanie-staticheskoi-stranici.html
(это в статических страницах при вставки разрыва страницы)


#18 | Посетитель: YX(Offline) | 15 ноября 2011 18:02
ICQ: не указано | Skype: www.xwara.ru
Публикаций: 0 | Комментариев: 2 | Репутация: 0
Если на сайте более 50000 новостей то при блокировке "Disallow: /uploads/" google, yandex и т.д перестанут качать satemap.xml


#19 | Посетитель: snake2010(Offline) | 9 февраля 2012 08:41
ICQ: не указано | Skype: не указано
Публикаций: 0 | Комментариев: 3 | Репутация: 0
Отличная статья. И попутно вопрос: если сделать действия описанные в 5 пункте (метатег robots ), то не закроет ли это индексацию статей? (в PHP я полный ноль)
И одно замечание, точнее дополнение. В 3 пункте в идеале написать путь к файлу, который нужно править. Я думаю не многие понимают про, что сдесь реч.


Внимание!Информация

Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Copyright © 2009-2011 DLEPro Отзывы Annapolly.ru: chicco коляски
Работает на CMS DataLife Engine. При использовании материалов сайта ссылка на сайт обязательна. Все права защищены. Поддержка: ICQ : 8-214-200. e-mail: dleprocom[@]yandex.ru.


Яндекс.Метрика
Rambler's Top100 Каталог@Mail.ru - каталог ресурсов интернет Яндекс  цитирования