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

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

  • 0
Данный материал предоставлен сайтом All4Cms.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Оптимизация сайта на DLE.
Оптимизация сайта на DLE

Популярность скрипта 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
google.com/support/webmasters

[b]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).

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

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


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


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

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

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

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


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


следующая страница категории и таже беда - дубль 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" />";

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

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

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

Полезно почитать:
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
Источник: dlepro.com
  • Вебмастеру / Полезные статьи
  • 17-11-2011, 19:47
  • 4 599
Вернуться назад
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.