Метатег “robots” для DLE


Вдохновленный материалом своего коллеги, под названием «Запрет индексации на странице», решил раскрыть пошире тему относительно метатега «robots», который применяется для настройки правил индексации для поисковых ботов. Следует сказать в общем смысле относительно данного метатега. Он позволяет осуществлять все, подчеркиваю, ВСЕ процедуры относительно правил индексации, которые по-умолчанию фиксируются в текстовом файле robots.txt и лежат у вас в фтп. В чем сложность всей процедуры? В отличие от файла robots, который имеет идентичные правила относительно расположения и заполнения, одноименный метатег располагается на каждом движке в разных местах, составляется вручную или автоматическими генераторами, отличается исходными наименованиями наборов функций.

Безусловно, DLE имеет некоторые модули (например, MetaRobots), способные генерировать/настраивать данный метатег/его отдельные элементы (как правило, они уже содержат в своем название слово «robots», поэтому найти их не составит труда), однако ручному способу я доверяю больше. Чтобы правильно все организовать, нужно лишь принимать во внимания определенные правила. Начну я со значений, которые важно учитывать при заполнении метатега для DLE (описываю так, как будет понятно юзерам):

$xxxxx == 'xxxxxx' OR – общий вид операции с конкретной функцией
$do, $subaction, $dle_module – основные командные директивы
'xxxxxxx' – процесс, который необходимо перекрыть

Основные процессы и соответствующие им директивы (в скобках):
allnews — новости для пользователя ($subaction)
addnews — добавление новостей ($do)
alltags — тэги ($do)
date — архив ($dle_module)
favorites — избранное для зарегистрированных юзеров ($do)
feedback — обратная связь ($do)
newposts — новые сообщения ($subaction)
pm — личные сообщения ($do)
lastnews — последние новости ($do)
lastcomments — последние комментарии ($do)
lostpassword — восстановление пароля ($do)
register — регистрация ($do)
rules — правила регистрации ($do)
tags — публикации по тегам ($do)
search — поиск по ресурсу ($do)
stats — статистика ($do)
showfull — полная новость ($subaction)
userinfo — профиль ($subaction)

Если у вас появляется желание отключить из индексации ВСЕ страницы пангинации, тогда к основному спику потребуется добавить следующую строку:
(intval($_GET['cstart']) > 1 )
Если вы не знаете, то страницы пангинации имеют следующий вид «ваш сайт/page/…/» и им подобные.

Теперь, принимая во внимание все директивы и процессы, мы можем составлять список, закрывая от индекса то, что вам не нравится. Изначально нам необходимо зайти в фтп, посредством стандартного блокнота отредактировать файл engine.php. Открываем его, ищем строку:
if ($config['allow_rss']) $metatags .= <<<HTML

Над ней прописываем следующую строку
if (

) $metatags .= <<<HTML
\n<meta name="robots" content="noindex,nofollow" />
HTML;

Данная строчка будет являться активной рамкой нашего метатега. Теперь работаем с областью:

if ()/* в скобках мы и прописываем все правила индексации */

Последовательно дополняя директивы и процессы, у нас должно выйти что-то наподобие этого:

if ($subaction == 'userinfo' OR
	$subaction == 'allnews' OR
	$do == 'stats' OR
	$do == 'register' OR
	$do == 'favorites' OR
	$do == 'pm' OR
	$do == 'feedback' OR 
        $dle_module == 'date' OR /* и так указываем всё, что Вас интересует */
       (intval($_GET['cstart']) > 1 )) $metatags .= <<<HTML
\n<meta name="robots" content="noindex,nofollow" />
HTML;

Примечание: выше указан только пример, а не конечный вариант метатега, так как вы имеете право набирать необходимые вам функции и перекрывать их.

И еще одно замечание напоследок: если память мне не изменяет, то до версии 9.4 в коде присутствует строка:
<meta name="robots" content="all" />

Вот ее нужно обязательно удалить!

0 комментариев