Сразу предупреждаю, статья не моя, взял на одном из форумов. Но, так как здесь у многих возникают вопросы по этому файлу, решил её выложить. Имея сайты на DLE, сталкиваешься с одинаковыми проблемами: к примеру, Яндекс проиндексировал печатные версии страниц (url вида print:…), конечно же, Сапа не видит их. А Яндексу они приятнее, так как всякого мусора на них меньше: только контент. Или же Яндекс индексирует ссылки вида ”my-dle-site/user/ya-spamer”, на которых куча внешних ссылок в профилях и никакого контента.
Вообще, причины вспомнить о robots.txt могут быть разными, к примеру, в этом заветном файле можно передать Sitemap Google’у и Яндексу не заходя в панель вебмастера.
Как сделать правильно?
Почитав и интернете форумы и официальные мануалы поисковиков и сравнивая прочитанное, можно сказать, что люди часто не читают руководств и ошибаются, к примеру, в robots.txt нет директивы”Allow” есть только”Disallow”
Для начала давайте выясним, чего мы хотим от нашего файла:
Хорошая индексируемость нужных страниц ПС
Отсутствие ненужных страниц в индексе ПС (всё равно вылетят из индекса)
Задание заркала для Яндекса
Если хотите разобраться, тогда давайте по порядку. Это запретит индексировать всем поисковым роботам страницы для печати:
User-agent: *
Disallow: /*print
Уберём из индекса страницы без контента (они рано или поздно всё выпадут):
Disallow: /autobackup.php
Disallow: /admin.php
Disallow: /user/
Disallow: /favorites/
Disallow: /index.php?do=register
Disallow: /?do=lastcomments
Disallow: /statistics.html
По вкусу, и в зависимости от уровня Вашей паранои можно добавить также
Disallow: /index.php?do=pm
Disallow: /index.php?do=stats
Disallow: /index.php?do=search
Disallow: /index.php?do=addnews
Disallow: /index.php?do=register
Disallow: /index.php?do=feedback
Disallow: /index.php?do=lostpassword
Disallow: /index.php?subaction=newposts
Теперь любезно добавляем Sitemap для Поисковых систем. Вы наверняка прекрасно знаете, насколько он полезен для индексации Вашего сайта.
Идём в админку -> другие разделы -> в самом низу заходим в «Google Sitemap». Оставляем все настройки по умолчанию и жмём «создать/обновить». Сверху должна появиться надпись вида «25.01.2009 10:37 файл индекса для Google Sitemap был создан и доступен по адресу: http://my-dle-site.ru/sitemap.xml». Теперь даём знать о нём поисковикам:
Sitemap: http://my-dle-site.ru/sitemap.xml
И добавляем основное зеркало для Яндекса, чтобы не было недоразумений с его стороны) Идём по адресу: http://yandex.ru/yandsearch?serverurl=my-dle-site.ru
и смотрим, как проиндексирован Ваш сайт с www или без. Добавляем в robots.txt директиву вида:
User-agent: Yandex
Host: my-dle-site.ru
my-dle-site.ru, если сайт в индексе без www, и наоборот. Если сайт ещё не проиндексирован Яшей, то указывайте так, как Вам больше нравится видеть Ваш сайт.
Вот и всё. Правильный robots.txt для ДЛЕ будет выглядеть примерно так:
User-agent: *
Disallow: /*print
Disallow: /autobackup.php
Disallow: /admin.php
Disallow: /user/
Disallow: /favorites/
Disallow: /index.php?do=register
Disallow: /?do=lastcomments
Disallow: /statistics.html
Sitemap: http://my-dle-site.ru/sitemap.xml
User-agent: Yandex
Host: my-dle-site.ru
Потратив 5 минут на создание такого файла можно значительно облегчить себе/поисковикам жизнь/работу в дальнейшем.
И ещё пара моментов:
Disallow: /autobackup.php
Disallow: /admin.php
файл autobackup.php не обязательный. и если он не используется вами (для бекапа по крону) то удаляем его, а если используется то его надо переименовать и тем более не показывать всем через робот. Почему? Потому что вот короткий способ слива БД сайта на ДЛЕ если в роботе указан путь до автобекап-файла:
1) заходим на этот файл через браузер и инициируем автобекап
2) определяем часовой пояс на серваке (на ДЛЕ)
3) вгоняем в чекер 404 ошибок пачку урлов вида
сайт/backup/(подумаем над тем как называется БД)_дата_время +\- 5-10 минут.bz (либо .sql, либо tar.gz)
4) немного удачи + немного логики = 99% того что мы имеем свежий бекап с целевого сайта.
Ну и теперь думаем: а надо ли нам оно? По моему не нужно совершенно
Далее, файл admin.php. Защищать его через робот как минимум глупо. Не дай бог появиться сплоит под взлом админки или кто то скоммуниздит ваши куки админа… Считаем что сайт взломан. Что делать? А сделать можно то, что опять таки рекомендуют доки по ДЛЕ, то есть
1) переименовываем файл как угодно, хоть vsnsty5otbhvnosrtehmfg.php и в конфиге указываем что файл админки теперь называется так.
2) идем в админку и в настройках выбираем расширенный способ авторизации.
Он использует .htaccess и ДАЖЕ ЕСЛИ ВДРУГ какой то поисковый паук узнает этот адрес то он просто получит от сервака ошибку 3** и пойдет нафик и никогда больше не вернеться. Это намного эффективнее запрета в роботе, это намного безопеснее запрета в роботе и это ломается намного сложнее запрета в роботе.
Источник: http://www.nulled.ws/
И в заключение стандартный robots.txt для DLE:
User-agent: *
Disallow: /*print
Disallow: /user/
Disallow: /favorites/
Disallow: /index.php?do=register
Disallow: /?do=lastcomments
Disallow: /statistics.html
Sitemap: http://my-site.ru/sitemap.xml
User-agent: Yandex
Host: my-site.ru