» » Оптимизация сайта на DLE

Оптимизация сайта на DLE

0
Оптимизация сайта на DLE

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

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

[b]1. Начнём с файла - robots.txt[/b]
хочется заметить что это наша точка зрения по правильности создания 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 укажите главное зеркало сайта определившись каким оно будет: с [b]www[/b] или нет, кстати данную директиву использует не только Яндекс, но 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: /

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

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

Редактируем файл [b].htaccess[/b] в корне сайта:
Открываем файл и заменяем(при наличии апачи и 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]

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

[b]3. Убираем дубли внутренних страниц сайта при выборе ЧПУ типа 1 и 2
(В версии DataLife Engine 9.3 и выше данная проблема с дублями и редиректе при смене ЧПУ решена.)[/b]
Находим (проверяем правильность чпу и 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 ();
}

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

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

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

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

Оптимизация сайта на DLE

незаполнены title категории

Оптимизация сайта на DLE

и вот результат - в title мы видим добавление - Страница 2(только на 9.2)

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

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

заполняем метатег title категории

Оптимизация сайта на DLE

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

Оптимизация сайта на DLE

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

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

[b]Написано выше много по метатегу title Категорий, подведём итоги (только на 9.2): метатег title Категории при её создании заполнять не нужно.[/b]
Далее метатеги Title новостей заполнять нужно вручную, стараясь избегать их дублей с похожими публикациями.

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

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

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

Открыть [b]engine.php[/b]:
ищем:
$metatags = <<<HTML

и[b] внимание! ВЫШЕ[/b] добавляем:
[b]if ($subaction == 'showfull' or $newsid ) $metatags['title'] = $metatags['title'] . ' | '. $cat_info[$category_id]['name'] . ' | ' . $config['home_title'];[/b]
и для красоты переводим на разделение метатегов прямыми слешами везде:

ищем(этот код несколько выше, над тем что меняли ранее):
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 их не забыв добавить Название вашего проекта(бренда).
[b]Полезно почитать:[/b]
devaka.ru

[b]5. Используем метатег robots с пользой...[/b]
Убираем из индексации удалённые страницы и страницы которых не было, те которые скрипт отдаёт с ошибкой 404

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

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

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

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

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

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

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

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

Автор хака: [b]MSW[/b](0-web.ru), пока мы делали свою реализацию, он сделал это быстрее и проще, а дальше мы развили его применение(правда у нас он управляется из Панели управления, а тут предлагаем упрощённое использование):
Далее, используя этот же хак убираем ненужные для индексации страницы(выбор страниц мы только рекомендуем):
Открыть файлы:
- [b]/engine/modules/addnews.php[/b]
- [b]/engine/modules/feedback.php[/b]
- [b]/engine/modules/fullsearch.php[/b]
- [b]/engine/modules/lostpassword.php[/b]
-[b] /engine/modules/register.php[/b]
- [b]/engine/modules/search.php[/b]
-[b] /engine/modules/stats.php[/b]
и например если у вас установлен Модуль Репутации:
- [b]/engine/modules/repa.php[/b]
в них примерно после:
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Статья написана применительно к актуальной на момент написания версии DLE 9.2, поэтому рекомендации в метатеге title на станицах пагинации работать не будут на более ранних версиях скрипта.
[b]Полезно почитать:[/b]
forum.searchengines.ru
dlepro.com/sovet/
Эту и следующие части ответов по SEO от Seo2z
[b]Источник:[/b] dlepro.com
Внимание!
Для просмотра скрытого текста, Вам необходимо Войти или Зарегистрироваться.
  • Вебмастеру, Полезные статьи
  • 17-11-2011, 19:47
  • 3418
Вернуться назад
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.