Настройка индексации страниц DLE метатегом robots.txt

Раздел: DataLife Engine » Советы по DLE
Настройка индексации страниц DLE метатегом robots.txt
На сайте http://www.dle9.com/ предлагаем полезную статью Как запретить дубликаты страниц сайта дле или Настройка индексации страниц при помощью метатега robots.txt использую новые возможности DataLife Engine с помощью метатега "robots", т.к. это самый оптимальный и удобный инструментом, который важно правильно использовать.

В недавно выпущенной версии разработчик DLE движка, вновь подключил данный метатег в дистрибутив скрипта, тем самым автор данного вариант воспользовавшись этим, вернулся к разработке управления работы с метатегом этим, используя уже существующий функционал и переменные в скрипте версии 9.7.

Как запретить дубликаты страниц сайта дле


Это настройка индексации страниц DLE метатегом robots.txt
Довольно простая установка:

1. Реализуем вывод метатега в определенных разделах сайта:

Открываем файл /engine/engine.php

Найти:
else $disable_index = "";


Заменить на(приведённый ниже массив рекомендован мной и его состав, может быть подобран и изменён под свои цели*):
elseif (
    $do == 'addnews' OR /* Страница добавления новости с сайта */
    $do == 'alltags' OR /* Страница вывода списка всех тегов */
    $do == 'feedback' OR /* Страница формы обратной связи */
    $do == 'favorites' OR /* Страницы закладок пользователей */
    $do == 'lastcomments' OR /* Вывод всех последних комментариев на сайте, в т.ч. комментариев отдельного пользователя */
    $do == 'lastnews' OR /* Вывод всех последних новостей сайта */
    $do == 'lostpassword' OR /* Страница восстановления пароля */
    $do == 'pm' OR /* Страницы личных сообщений пользователей */
    $do == 'register' OR /* Страница регистрации нового пользователя */
    $do == 'rules' OR /* Страница правил сайта */
    $do == 'stats' OR /* Страница статистики сайта */
    $do == 'search' OR /* Страница поиска и результатов поиска */
    $do == 'tags' OR /* Вывод новостей по тегу */
    $do == 'xfsearch' OR /* Вывод новостей новостей по доп. полям */
    $subaction == 'allnews' OR /* Вывод всех новостей пользователя */
    $subaction == 'newposts' OR /* Вывод непрочитанных новостей для пользователя */
    $subaction == 'userinfo' OR /* Просмотр профиля пользователя */
    $dle_module == 'date' OR /* Вывод архива новостей за год/месяц/день */
       (intval($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */
    $catalog != '' /* Просмотр каталога по буквенному идентификатору */
    ) $disable_index = "\n<meta name=\"robots\" content=\"noindex\" />"; else $disable_index = "";


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

*Возможные варианты значений в массиве

Чтобы запретить индексацию какого-либо модуля, необходимо использовать следующую конструкцию:

$do == 'module'


где module – это префикс модуля, который можно взять из url без ЧПУ, к примеру из url: site ru/?do=feedback берём feedback.


P.S. Список вариантов самому составлять было лень, взял его у Алича(alaev info)

2. Реализуем вывод метатега РОБОТс на несуществующих и удалённых страницах:
(тут есть нюанс для роботов при ответе 404, а не 200, но всё же, есть причины, для работы с сервисами)

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


3. Реализуем вывод метатега РОБОТс с его строгим значением на страницах печати:

Открываем файлы шаблона версии для печати /templates/имя вашего шаблона/print.tpl и /templates/имя вашего шаблона/static_print.tpl

Найти:

<head>


Добавить ниже:

<meta name="robots" content="noindex" />


3. Реализуем вывод метатега robots с его строгим значением на страницах админки:

Открываем файл /engine/skins/default.skin.php

Найти:

<head>


Добавить ниже:

<meta name="robots" content="noindex,nofollow" />


(i) Внимание! При продаже ссылок с вашего ресурса, в частности в автоматическом режиме через ссылочные биржи, то прежде чем следующие настройки необходимо модификации, чтобы проверьте не закрыли ли вы от индексирования те страницы, с которых планируете продавать ссылки. Кстати, на dle9.com вы можете найти другие интересные материалы по этой теме.

Кроме того, манипулируя метатегом ROBOTS не забывайте, что возможно у вас имеется robots.txt и в нём тоже созданы правила, а робот поисковой системы при нахождении противоречий между метатегом и файлом выполнить наиболее строгое правило(запрет). Правильней будет удалить в файле robots.txt дублирующие правила, в итоге вы получите практически аналогичный правила вида:

User-agent: *
Disallow: /engine/go.php
Disallow: /engine/download.php
Disallow: /*?*
Sitemap: http://site.ru/sitemap.xml
Host: site ru


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

Данная статья актуальна для v.9.7
Автор статьи: webseolife ru

Веб-портал «все для DataLife Engine» предлагает настройка индексации страниц на DLE с помощью метатега robots.txt
  • 60
Рубрика: Все для DLE » Советы по ДЛЕ
Ранее » Полный и простой режим комментариев переключения dle новости« Далее CHMOD
Добавление комментарияОставить комментарий
  • № :12
  • 28 марта 2015 19:48
Цитата: nykoriak
Цитата: dle9
Цитата: nykoriak
Как можно, через noindex, запретить индексации rss страниц?

Мне rss вообще не нужен, поэтому отключил ее и даже удалил файл rrs.php. Теперь при переходе, на rss страницу перенаправляет, на обычную, что меня вполне устраивает.

Так RSS можно отключить
Настройка параметров скрипта (используйте навигацию для доступа к разделам)

Настройка RSS экспорта новостей
Включить RSS экспорт новостей

Цитата: nykoriak
А вот за статью - спасибо! Первый сайт, который попался в поиске - первый помог в моих проблемах.

Не за что.
  • № :11
  • 28 марта 2015 18:13
А вот за статью - спасибо! Первый сайт, который попался в поиске - первый помог в моих проблемах.
  • № :10
  • 28 марта 2015 18:10
Цитата: dle9
Цитата: nykoriak
Как можно, через noindex, запретить индексации rss страниц?

Мне rss вообще не нужен, поэтому отключил ее и даже удалил файл rrs.php. Теперь при переходе, на rss страницу перенаправляет, на обычную, что меня вполне устраивает.
  • № :9
  • 28 марта 2015 18:03
Цитата: nykoriak
Как можно, через noindex, запретить индексации rss страниц?

а версий дле какая ? Напрмер в дле 10.4 там отдельный файл для RSS
  • № :8
  • 28 марта 2015 17:26
Как можно, через noindex, запретить индексации rss страниц?
  • № :7
  • 15 августа 2014 18:35
Ок, спасибо!
  • № :6
  • 15 августа 2014 16:30
Цитата: feory
В сети нашёл только такой способ, но он похоже не рабочий:

Для вашей версии может быть. код ниже для 9.7
Посмотрите здесь или спросите, он разработчик большинства оптимизаций для дле alaev info
  • № :5
  • 15 августа 2014 15:57
Понятно, а чтобы закрыть статические страницы метатегом <meta name="robots" content="noindex" /> ?

В сети нашёл только такой способ, но он похоже не рабочий:

Открываем /engine/modules/static.php
Перед этой строкой
$db->query( "UPDATE " . PREFIX . "_static set views=views+1 where id='{$static_result['id']}'" );

добавляем
if ($static_result['name'] == "пишем_по_англ_название_своей_страницы" ) $robots_noindex = "<meta name=\"robots\" content=\"noindex\" />";
  • № :4
  • 15 августа 2014 15:46
<noindex><a rel="nofollow" href="/ссылка">Название сраницы</a></noindex>

добавлено в ссылку
rel="nofollow"
если ссылка закрыта от индексации, то страница будет выкинута из поиска
ещё если страниц не много в
robots.txt можно добавить
Disallow: /название страницы.html
  • № :3
  • 15 августа 2014 14:29
Цитата: dle9
Цитата: feory
Подскажите, пожалуйста, как можно закрыть от индексации определенные статические страницы, а не все?

если созданные в дле, то там есть функция в конце ставите галочку и все

ну или ссылку на статическую закройте как здесь Обратная связь, нажмите в браузере U+Ctrl в сам конце увидите пример


Забыл написать, Dle 8.5 и тут этой функции нет вроде.
Можно подробнее второй вариант, который написали.
  • № :2
  • 15 августа 2014 14:21
Цитата: feory
Подскажите, пожалуйста, как можно закрыть от индексации определенные статические страницы, а не все?

если созданные в дле, то там есть функция в конце ставите галочку и все

ну или ссылку на статическую закройте как здесь Обратная связь, нажмите в браузере U+Ctrl в сам конце увидите пример
  • № :1
  • 15 августа 2014 13:49
Подскажите, пожалуйста, как можно закрыть от индексации определенные статические страницы, а не все?