Все для CMS » Вебмастеру » Оптимизация сайта на 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
  • 6 317
Вернуться назад
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.