Правильный robots.txt для DLE – какой он?

Правильный robots.txt для DLE Привет, друзья. Сколько раз вы меня спрашивали, как составить правильный robots.txt для DLE – вот честно, надоели уже! Решил написать пост на эту тему, чтобы раз и навсегда исключить все подобные вопросы. Хотя, я уверен, выводы для вас будут неожиданными :)

Краткая суть поста – чем меньше файл robots.txt тем лучше и качественнее сайт, и это относится не только к DLE, но вообще к любому движку или сайту.

Я вам еще раз расскажу, почему и для чего нужен файл robots.txt и директивы в нем, а так же почему меньше директив это показатель качества.

Знаете что такое идеальный сайт? Это сайт, каждая страница которого несет пользу для посетителя и эту страницу не стыдно показать поисковику, потому что она ему понравится и будет высоко ранжироваться.

А для чего придумали robots.txt? Для того чтобы указывать поисковику какие страницы посещать и индексировать можно, а какие нельзя. Закрывая от индексации какие-то страницы (или даже разделы) вы тем самым признаете, что эти страницы некачественные или ненужные по различным причинам. Чаще всего запрет используется для исключения дублей страниц и технической информации. К сожалению, реальность такова, что сегодня 99% сайтов имеющих файл роботс закрывают с его помощью как раз такие страницы.

Обсуждение к данному посту закрыто по причине выхода более удобного и элегантного решения — модуль DonBot.
DonBot позволит без правок ядра движка добавить необходимые правила, при этом есть несколько рекомендуемых настроек для достижения наилучших результатов.
Тем не менее, описанные ниже правки остаются актуальными для всех версий DLE 9.x, 8.x и 7.x!

Так вот еще раз – идеальный сайт – это когда бесполезных страниц нет и закрывать нечего. Но CMS, какими бы классными они не были, все равно создают для нас «неожиданности» и приходится выкручиваться. Приходим к выводу – без robots.txt не обойтись…НО!

Временно переключимся — смотрите на идеальный robots.txt для DLE

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

Неожиданно? Ну да…

Предлагаю вам вспомнить мою аналитическую публикацию о сравнении robots.txt и meta robots — если не читали еще, то обязательно ознакомьтесь очень внимательно. После прочтения вывод будет следующим: лучше запрещать индексацию страниц и разделов при помощи метатега <meta name="robots" content="noindex">, а не при помощи robots.txt.

Но раз уж в заголовке сегодняшнего поста фигурирует название CMS Datalife Engine, то стоит вплотную переключиться на работу с DLE.

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

Решение, которое будет описано ниже подходит абсолютно для всех версий DLE.

Для получения результата нам необходимо будет отредактировать всего один файл /engine/engine.php. Открываем его.

Для DLE 9.3 и ниже (для версий 9.4 и выше этого делать не надо) сперва необходимо найти следующую строку и удалить:

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

Далее (это уже для всех версий без исключения) находим строку:

if ($config['allow_rss']) $metatags .= <<<HTML

ВЫШЕ добавляем код:

if (
	//$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 == 'static' OR /* Все статические страницы */
	//$do == 'tags' OR /* Просмотр новостей по тегу */
	//$do == 'xfsearch' OR /* Просмотр новостей новостей по доп. полям */
	//$subaction == 'allnews' OR /* Просмотр всех новостей пользователя */
	//$subaction == 'newposts' OR /* Просмотр непрочитанных новостей для пользователя */
	//$subaction == 'showfull' OR /* Просмотр полной новости */
	//$subaction == 'userinfo' OR /* Просмотр профиля пользователя */
	//$dle_module == 'date' OR /* Просмотр архива новостей за год/месяц/день. Заменяет собой сразу все три следующие строки */
	//($year != '' and $month == '' and $day == '') OR /* Просмотр архива новостей за год */
	//($year != '' and $month != '' and $day == '') OR /* Просмотр архива новостей за месяц */
	//($year != '' and $month != '' and $day != '' and $subaction == '') OR /* Просмотр архива новостей за день */
	//(intval($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */
	//($dle_module == 'main' and (intval($_GET['cstart']) > 1)) OR /* Страницы пагинации для главной страницы */
	//($do == 'cat' and $category != '' and $subaction == '' and (intval($_GET['cstart']) > 1)) OR /* Страницы пагинации только для категорий */
	//($do == 'cat' and $category != '' and $subaction == '') OR /* Просмотр любой категории */
	//($do == 'cat' and $category_id == 'X' and $subaction == '') OR /* Просмотр определенной категории. X заменить на id категории */
	$catalog != '' /* Просмотр каталога по буквенному идентификатору */
	) $metatags .= <<<HTML
\n<meta name="robots" content="noindex,nofollow" />
HTML;

Мини-FAQ из вопросов из комментариев:

Если я закрываю от индексации категорию, будут ли новости из этой категории индексироваться?
— Да, закрытие категории не закрывает публикации, принадлежащие этой категории.

Что если мне надо закрыть от индексации несколько категорий с id=1,2,3,4,5 какой код применять?
— Вместо $category_id == 'X' надо указать in_array ($category_id, array ('1', '2', '3', '4', '5'))

Огромный список вариаций на любой вкус. Мне кажется, я все предусмотрел, и это закроет 99% любых потребностей. Оставшийся 1% — это потребности вебмастеров-извращенцев :)

Итак, давайте я расскажу, как теперь всем этим делом пользоваться.

Если вы вставите код в его изначальном виде (в том в котором я его выше представил), то ничего не произойдет кроме закрытия страниц буквенного каталога. Чтобы нужные правила начали работать, необходимо удалить знак комментирования, то есть двойной слеш в начале строки «//».

Мой код — это своего рода конструктор, где вы сами выбираете, что вам нужно, а что нет, при этом все сразу есть под рукой – если что-то потребовалось, зашли в файл и раскомментировали нужную строку или наоборот закомментировали.

Я уверен – вы разберетесь, как этим делом пользоваться, и вам это понравится. Главное будьте очень внимательны – раскомментировав не ту строку, вы рискуете запретить доступ поисковикам к важной и нужной информации.

Да, я уже предвижу, что будут вопросы относительно сторонних модулей для DLE, не моих, разумеется, так как мои как раз должны индексироваться, а сторонних. Чтобы запретить индексацию какого-либо модуля, необходимо будет использовать конструкцию $do == 'module', где module – это название модуля, которое можно взять в админке. Например, http://site.ru/admin.php?mod=sitemap. Следовательно, необходимый кусок кода будет таким $do == 'sitemap', его надо будет вставить в мою конструкцию и не забыть оператор OR в конце. И все – дело в шляпе!

Так какой правильный robots.txt для DLE?

Вот именно такой, какой я указал в начале поста, такой, который содержит всего 4 строчки. Кстати, можно даже строку Disallow: /engine/ исключить, если не используются редиректы на внешние ссылки, и заменить на Allow: /. Разумеется, это рассматривается чистая CMS «из коробки», без ваших заморочек, больной фантазии и сторонних модулей.

Так что «чистим» свой robots.txt, внедряем мета-тег robots и радуемся постепенному исчезновению ненужных страниц из дополнительной выдачи Google (supplemental).

И еще один важный момент – правки надо будет не забывать вносить сразу же после очередного обновления движка.

Теперь вы узнали, что лично я считаю правильным robots.txt для DLE и все вопросы по этой теме можете задавать в комментариях, а не где попало. Жду ваших вопросов, предложений и отзывов.

До связи, друзья!

P.S. Вот вам еще парочка бонусных советов:

  • Найдите файл шаблона версии для печати print.tpl и откройте его. Сразу после <head> вставьте <meta name="robots" content="noindex">
  • Откройте файл /engine/skins/default.skin.php и проделайте тоже самое.

Первый бонус для того, чтобы запретить индексацию версии для печати, а второй запрет индексации админки, ибо тупо закрывать файл admin.php в robots.txt (а еще тупее использовать нестандартное название файла админки и закрывать его в robots.txt).

С уважением, Александр Алаев
 
Ерунда и баянЪ!Зачет! Плюсую!
+40
 
Оптимизация сайта

Профессиональный технический аудит и оптимизация вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

от 10 000 руб.
Продвижение сайта

Комплексный подход к решению поставленных задач, будь то достижение заветных позиций в ТОП 10 или увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

от 15 000 руб.
Консультация

У вас недостаточно знаний?
Нужен ответ на ряд вопросов?
Хотите узнать мнение эксперта?
Вы задаете вопрос — я на него отвечаю!

1 500 руб./час
 
Получай новости блога АлаичЪ'а на e-mail:
 
Другие посты из категории Datalife Engine:
Что нового на форуме:
  1. Selenii (12 комм.)

    Давно жду твоих новых постов и вот дождался...

    Спасибо, этот вопрос, действительно, меня всегда очень интересовал...

  2. tauron (2 комм.)

    Найдите файл шаблона версии для печати print.tpl и откройте его. Сразу после <head> вставьте <meta name="robots" content="noindex">

    -----

    Так в админ панели есть функция запрета индексации страниц печати. Зачем еще и тут закрывать?

    • АлаичЪ

      Ну может быть...раньше не было, значит это я по старой памяти написал... :)

      • Borulin (1 комм.)

        Здравствуйте.

        " Сразу после <head> вставьте <meta name="robots" content="noindex"> "

        Может я ошибаюсь, но слеш в конце должен быть или нет?

        Вот так: <meta name="robots" content="noindex" />

        Или это не принципиально?

        • АлаичЪ

          Можете поставить, не принципиально :)

  3. Андрей (5 комм.)

    Еще по прошлому посту добавил метатеги и кучу мусору наконец-то яндекс выбросил, robots.txt для него вообще не аргумент, то добавлял в индекс то не добавлял. А через метатег железно подчинился. Также хотелось уточнить, надо ли закрывать папки языка, загрузок, шаблонов в robots,txt или толку нету, просто у меня всегда они были закрыты... И есть ли смысл закрывать страницы пагинации, а то их куча, а толку вроде не много. АлаичЪ пора бы может форум небольшой поставить ?

    • АлаичЪ

      О чем и речь, что стопроцентный способы закрыть страницу от индексации это метатег.

      Можешь не закрывать папки языка, загрузок и шаблонов в robots.txt, а можешь и закрывать, разницы никакой не будет.

      Закрывать страницы пагинации или нет — я в стопицотый раз говорю — это ваше личное дело. Лично я не закрываю.

      А форум, действительно, пора давно открыть. Я, кстати, даже движок выбрал, но так и не дошли руки до дела :(

  4. krock (19 комм.)

    Хороший мануал, раскоментировал все строки. Единственное что не нашел — это alltags.

    И не понимаю зачем закрывать категории, если есть твой модуль?

    • Андрей (5 комм.)

      alltags — 3 строчка сверху...

      //$subaction == 'showfull' OR /* Просмотр полной новости */ — думаю это уже слишком, особенно если полная новость действительно полная, а не дубляж короткой...

      • krock (19 комм.)

        alltags в самом движке DLE нет такой страницы, есть просто tags.

        • Андрей (5 комм.)

          index.php?do=alltags ведет туда же что иindex.php?do=tags

        • АлаичЪ

          Про $do == 'alltags' русским языком написано "страница списка тегов" — это site.ru/tags/

          А $do == 'tags' сказано, что это просмотр новостей по тегам — site.ru/tags/tag+name/

          Что не понятно?

  5. krock (19 комм.)

    Да и кстати сам роботс, я вот таким сделал:

    User-agent: *

    Disallow: /engine/

    Sitemap: http://сайт.ру/sitemap.xml

    User-agent: Yandex

    Disallow: /engine/

    Host: сайт.ру

    Sitemap: http://сайт.ру/sitemap.xml

    User-agent: MediaPartners-Google

    Allow: /

    User-agent: YandexDirect

    Allow: /

  6. Иван (4 комм.)

    Саш, ты пишешь, что для DLE 9.3 и ниже (для версий 9.4 и выше этого делать не надо).

    Это только первый код после данного сообщения, или включая:

    Далее находим строку:

    if ($config['allow_rss']) $metatags .= <<<HTML

    ВЫШЕ добавляем код???

    • krock (19 комм.)

      Для DLE 9.3 и ниже ты удаляешь только:

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

      Остальное уже делаешь для всех версий.

      • АлаичЪ

        Все верно. Специально, чтобы не было больше таких вопросов добавил пометку в пост.

        • Иван (4 комм.)

          Спасибо, теперь стало понятно. А то сразу не совсем однозначно написано было.

  7. ПафНутиЙ (123 комм.)

    >>(а еще тупее использовать нестандартное название файла админки и закрывать его в robots.txt).

    +100500! Лучше уж тогда сразу на главной странице ссылку на изменённый файл повесить :)

    По теме: ОТЛИЧНЫЙ пост. Как раз то, что нужно и в нужный момент! У меня только сайт переиндексировался на новом домене, теперь пора откинуть очередную порцию неугодных страниц.

    Спасибо!

  8. Андрей (5 комм.)

    Хотел еще уточнить помимо userinfo исключать /user/ не надо ?

    • АлаичЪ

      Андрей, не тупи, userinfo — это и есть страницы юзеров, т.е. site.ru/user/username :)

  9. Олег (4 комм.)

    Странно, но после внедрения кода и статьи (новости) стали закрыты.

    Версия 9.6. Стоит только модуль catface

    • АлаичЪ

      Не понял, подробнее распишите проблему.

      • Олег (4 комм.)

        Поставил согласно инструкции, но сама страница новости вида site.ru/1-stranica.html тоже стала noindex,nofollow

        Её то точно надо индексировать ;)

        • ПафНутиЙ (123 комм.)

          а вы все строки раскомментировали?

          • Олег (4 комм.)

            Да всяко пробовал. И полностью расскоменченно тоже

            • АлаичЪ

              Надо быть внимательнее, я же предупреждал.

              Так что установите код и убирайте комментарий построчно и проверяйте каждый раздел. Таким образом и выяснится, что же именно заблокировало полную новость.

              • Олег (4 комм.)

                Да, пардон, я невнимателен

                Эту строку трогать не надо $subaction == 'showfull' OR /* Просмотр полной новости */

  10. ProvideX (2 комм.)

    Спасибо! Применил по назначению! :) ... Посмотрю на результат и отпишусь :)

    • ProvideX (2 комм.)

      Все вещь, все идеально работает! Спасибо АлаичЪ!!! :)

  11. Денис (34 комм.)

    Привет АлаичЪ! Скопились вопросы:

    1) В Роботсе остались эти строки:

    Disallow: /engine/

    Disallow: /catalog/

    Disallow: /autobackup.php

    Disallow: /dle-rules-page.html

    С engine всё понятно, не понятно с остальным. catalog — при наборе http://site/catalog/ на странице так и не выставился запрет, так как эта страница дублирует главную. autobackup.php я перенёс со старого роботса, но не знаю, мусорная строка эта или нет. dle-rules-page.html — является дублем rules.html, в которой в свою очередь стоит запрет. А просматривая код в dle-rules-page.html запрета не нашёл. Добавил $do == dle-rules-page' OR — не помогло.

    2) По адресам:

    http://site/index.php?do=userinfo — дубль главной, запрет meta robots отсутствует. Но описание с catface для главной тоже нет

    http://site/index.php?do=allnews — дубль главной, запрет meta robots отсутствует. Но описание с catface для главной тоже нет

    http://site/index.php?do=newposts — дубль главной, запрет meta robots отсутствует. Но описание с catface для главной тоже нет

    http://site/catalog/ — полный дубль главной страницы. Запрет meta robots отсутствует.

    3) не понятно (возможно связано со 2-м вопросом)

    например дописываю к адресу всяких цифр, слешей, букв, страницу обновляю но ни чего не меняется. Например http://alaev.info/blog/post/2400#tolist_04//////////////////3343434343434466666666666666666666666tteetetetettetetete доступен по http://alaev.info/blog/post/2400#tolist_04/ и т.д. Тот же случай и у меня. Это нормально, или плохо?

    • АлаичЪ

      Денис, в вашем случае лучше не начинать думать слишком далеко, дальше, чем есть понимание...

      1. Страницы http://site/catalog/ не существует, существуют только страницы конкретных букв каталога, например, http://site/catalog/a/

      autobackup.php — устаревший файл, в новых версиях он отсутствует, его заменил файл cron.php

      dle-rules-page.html — тоже устаревшая информация

      2. Ни одного из приведенных адресов в принципе не существует, зачем сочинять какую-то ересь, если нет понимания вопроса?

      3. Знак якоря # не меняет содержимого страницы, а является указателем. И поисковиками при индексации он отсекается.

      • cema93 (3 комм.)

        АлаичЪ

        У меня стоит DLE 9.5 dle-rules-page.html есть при индексации. как бы это дело исправить)

        • АлаичЪ

          Зарпетить его к индексации в robots.txt. Что касательно мета-тега robots, то за индексацию правил отвечает строка в моем коде:

          $do == 'rules' OR /* Страница правил сайта */

      • Юрий (23 комм.)

        Страница http://site/catalog/ еще как существует! И она не закрита метатегом от индексации! Может можно ее как-то метатегом прикрыть?

  12. Денис (11 комм.)

    Уважаемый Алаичь!!!

    Не знаю, был ли такой вопрос, но все же задам!

    Как вы считаете, стоит ли выводить на главной модуль, теги, и как он влияет на поисковую выдачу,

    Плюсы и минусы сего чуда!

    Заранее благодарю, хотя и понимаю что ОФФтоп!

    • АлаичЪ

      Это ваше дело, выводить или нет. Почему вы меня то спрашиваете об этом? Я на некоторых своих сайтах использую теги, а на некоторых нет, что я должен ответить в этом случае? Там где это полезно пользователям — надо выводить, где нет — значит нет.

  13. Денис (11 комм.)

    Да и еще один не мало важный вопрос для меня!!!!

    Подскажи пожалуйста, как мне сделать правильный перенос новости на новый адрес(Дле 9.5) поясняю

    Был адрес новости мой_сайт.ру/rus/rus_271.html?part=1

    После переезда на дле стал мой_сайт.ру/rus/83-prezident-ne-isklyuchil-dalneyshego-ukrupneniya-regionov-rossii.html

    Домен был дроп, с контентом в веб архиве, все сео рекомендации 4 постов выполнил, но теперь просто не уверен, что старые страницы прилипнут к новым правильно! Если есть какой либо вариант, подскажи, буду очень признателен!!!

    • АлаичЪ

      После строки RewriteEngine On в начале файла htaccess надо прописать:

      Redirect 301 rus/rus_271.html?part=1 http://мой_сайт.ру/rus/83-prezident-ne-isklyuchil-dalneyshego-ukrupneniya-regionov-rossii.html

  14. Денис84 (34 комм.)

    АлаичЪ Привет! Как на счёт поста "Валидация кода" Я не нашёл в твоём блоге этой темы, но уверен что эта тема волнует многих, и у этих многих много вопросов и неразберих с этой проблемой. Ты эксперт в области подобных экспериментов. Так как на счёт того, чтоб провести исследование и эксперимент с сервисом w3.org и сделать отчёт в твоём будущем посте о значении самой валидности кода для сайта относительно SEO?

    • ПафНутиЙ (123 комм.)

      Денис, у меня как то была возможность пообщаться с официальными представителями яндекса. И на вопрос влияет ли, при прочих равных условиях, валидный, правильно размеченный, семантически верный html5-код на поисковую выдачу мне было отвечено — нет. Т.е. на прямую не влияет и поисковый робот не учитывает саму вёрстку, только контент.

      Однако учитывая, что правильная разметка документа делает возможным формирование всяких красивостей в выдаче, в итоге сайт таки поднимется именно из-за этого, т.к. человек, опять же, при прочих равных условиях, тыкнет на результат в виде сниппета а не просто тупую ссылку. Но это всё в идеале т.к. никаких прочих равных условий в интернете быть не может — каждый сайт по своему уникален, и сайт с уникальным, интересным публике контентом, и дерьмовой вёрсткой будет всегда выше 100% валидного говносайта.

      • Денис84 (34 комм.)

        ПафНутиЙ Спасибо за инфу! А то уже устал заморачиваться с этим кодом по валидности

        • ПафНутиЙ (123 комм.)

          На DLE на данный момент невозможно сделать валидный html5 сайт без правок движка (те же картинки выравниваются устаревшими тегами).

          Однако и забивать на валидность не есть гуд, хотя бы из самоуважения)))

  15. DiDfree (1 комм.)

    Здравствуйте! Если я уберу знак комментирования возле /* Любые страницы пагинации */,

    сами материалы размещенные на этих страницах будут нормально проиндексированы?

    То есть как я понял просто не будет индексироваться и выводится в поисковую выдачу сама страница навигации с ссылкой

    вида "сайт.ру/page/2/", а размещенные на ней материалы будут нормально индексироваться. Правильно?

    • d.j.starter (31 комм.)

      На одном из форумов прочитал что:

      Если запретишь эти страницы, то в дальнейшем запретишь к индексации большую часть сайта. Моё личное мнение — не стоит запрещать эти страницы, но стоит сделать одну весчь, склеить адреса http://site.ru/page/ и http://site.ru/page/1/ с главной страницей http://site.ru/ , а также http://site.ru/category/page/ и http://site.ru/category/page/1/ c главной страницей категории http://site.ru/category/ методом редиректа

      Насколько это так и как лучше поступить всё же с этими страницами?

      PS Мнение не моё личное, мнение автора) я просто хочу понять так ли это )

      • АлаичЪ

        Если запретить страницы пагинации, то поисковикам будет труднее добираться то "глубоких" новостей, то есть скорость переиндексации сайта определенно упадет. Но зато не будет частичного дублирования контента (коротких анонсов). Так что решайте сами.

        Как таковые страницы пагинации не содержат никаких материалов, на этих страницах выводятся лишь анонсы.

  16. VS (10 комм.)

    Заранее извиняюсь за возможно банальный вопрос.

    При закрытии страниц пагинации метатегами noindex и nofollow будет ли этим страницам передаваться ссылочный вес?

    • АлаичЪ

      Будет передаваться, если на них будут стоять ссылки. Только дальше с этим весом ничего не произойдет, он пропадет и все.

      • VS (10 комм.)

        тогда подскажите плиз как или где нужно внести изменения в коде чтоб все страницы пагинации только на главной были закрыты в nofollow.

        Выходит что с помощью мета тегов мы только не пускаем робота, а ссылочный вес все-равно передается и это не хорошо, нужно поправлять)

        • АлаичЪ

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

          Понятно? И никакие тут теги-метатеги не помогут.

  17. Сергей (5 комм.)

    В вебмастере яндекса "Страниц в поиске" все страницы которые запрещены к индексации с помощью <meta name="robots" content="noindex,nofollow" />. И плагинации и теги и календарь. Посмотрел по логам, робот яндекса ходит по сайту как у себя дома, хотя если я правильно понимаю мета-тег запрещает индексировать текст страницы, и переходить по ссылкам на странице.

    Робот гугла ходит где только ему разрешено по страницам с новостями и в поиске находится, что положено, а не все подряд.

    Интересно от чего так?

    • АлаичЪ

      Ничто не происходит моментально, тем более у Яндекса. Подождите месяц и все станет на свои места. А метатег не запрещает роботам ходить по страницам, метатег запрещает их добавлять в индекс.

      Да и потом, проследите логику — метатег указан на самой странице, в ее исходном коде, и чтобы его увидеть, надо как минимум эту страницу посетить и просмотреть.

  18. Денис84 (34 комм.)

    Извиняюсь за повтор, но есть вопросик по валидации, мне на него так ни кто и не ответил: копирую код файла main.tpl и вставляю для проверки html на сервисе W3. Далее он мне показывает ошибки красной подсветкой. Вопрос — почему он видит ошибки, которых нет. Например {content} — одна скобка подсвечивает красным. А она есть. Ну не удалять же мне её??? И это только с html. С CSS проблем нет. Как же быть. Хочется минимизировать инвалидность кода :)

    • ПафНутиЙ (123 комм.)

      вы не то проверяете.

      Нужно в браузере (если это не IE) нажать Ctrl+U, Ctrl+A, Ctrl+C и уже этот код проверять а не main.tpl )))

      • Денис84 (34 комм.)

        main.tpl Это для примера. Суть то одна, показывает то место где всё есть. Что бы быть точнее еще раз опишу ситуацию. Вот скопировал исходный код главной, вставил в валидатор, выдал 3 ошибки, одна из них <noindex> — где ">" помечена как ошибка. В исходном коде у меня в noindex заключён счётчик и всё. Больше noindex нету. Вопрос: в исходном коде noindex прописан без ошибок,(вижу своими глазами) а валидатор показывает ошибку. Как это устранить???

        • Александр (4 комм.)

          Валидный код noindex — это <!--noindex-->поддерживается яндексом<!--/noindex-->

          • АлаичЪ

            Вообще никакой разницы между <!--noindex--> ... <!--/noindex--> и <noindex> ... </noindex> для Яндекса нет и никогда не было. "Типа валидный" вариант введен для того, чтобы валидаторы не ругались на неизвестный тег, и видели его как комментарий.

            • Александр (4 комм.)

              Я же ни о какой разнице и не говорил, разве не так?

  19. Александр (1 комм.)

    Здравствуйте. Подскажите пожалуйста, у меня версия dle 9.6, мне точно не нужно удалять строку: <meta name="robots" content="all" />, она у меня присутствует в файле engine.php. И еще когда смотришь исходный код на странице в которой я закрыл индексацию, получается так:

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

    <meta name="revisit-after" content="1 days" />

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

    Два раза повторяется надпись meta name="robots", это не повлияет на поисковики?

    • Денис84 (34 комм.)

      Александр, — вроде не повлияет. Но робот будет ориентироваться по первой с верху строчки

      • Валерий (58 комм.)

        Данная строчка на поисковик уж точно не повлияет.

        Вот, если ПС читает первую команду, тогда данная страница проиндексируется полностью!

        Вы же напротив, вроде как хотите её закрыть от индексации!?

        • АлаичЪ

          Вы все неправы. Поисковик учитывает наиболее строгое правило, то есть он учтет как раз noindex,nofollow.

          Александр, рекомендую строки <meta name="robots" content="all" /> и <meta name="revisit-after" content="1 days" /> удалить.

  20. Давид (15 комм.)

    //$subaction == 'showfull' OR /* Просмотр полной новости */

    Это зачем закрывать от индексации ?

    И еще такой вопрос, я закрыл от индексации постраничную навигацию по средствам Роботс.

    /page/

    Стоит ли вообще это закрывать ? или это Пс не воспринимает как дубли?

    • АлаичЪ

      Я больше не буду отвечать на счет закрытия от индексации постраничной индексации — читайте комментарии.

    • Валерий (58 комм.)

      1. Вы должны решить, что вы отдаёте на индексацию, краткую новость или полную.

      Если у вас в полной новости расположена новость целиком, то полную новость закрывать нельзя.

      2. Если анонс (краткая новость) дублирует полную новость, то page всё же лучше закрыть.

      • Давид (15 комм.)

        Да Валерий понятно спасибо. Но как закрыть Page от индексачии данным методом ? АлаичЪ не упомянул в посте как сделать это.

        • Валерий (58 комм.)

          page — это страница пагинации.

          В посте выше описано, как закрыть Страницы пагинации для главной страницы и только для категорий!!!

          • Давид (15 комм.)

            Валерий, а что значит "только для категорий"?

            Может Вы имели ввиду "и для категорий"?

            • АлаичЪ

              Давид, откройте наконец глаза — в коде из поста целых 3 правила для страниц пагинации с разными условиями:

              /* Любые страницы пагинации */

              /* Страницы пагинации для главной страницы */

              /* Страницы пагинации только для категорий */

  21. Денис (11 комм.)

    Уважаемый АлаичЪ, прошу прощения еще раз, подскажи еще один нюанс, как сделать мобильную версию сайта, на дле 9.5 не в корявом виде index.php?ляля mobile в яндексонравящуюся примеру pda.мой сайт.ру

    Еще раз прошу прощения, заранее спасибо!

    • d.j.starter (31 комм.)

      Денис, пожалуйста, почитайте пост с начала, и по сабжу не задавайте глупых вопросов, пардон, матюк вспомнил!

      • Денис (11 комм.)

        Я, конечно, все понимаю и все перечитал, но конкретного ответа на мой вопрос я не нашел. Если вы не поняли сути моего вопроса, прошу еще раз его перечитать и, если у вас после понимания сути моей проблемы окажется тематически-вразумительный ответ, — прошу его отписать, в чем я буду вам премного благодарен. Ничего личного!

        • Денис (11 комм.)

          За то, что я написал не в ту тему (Оффтоп), я приношу глубочайшие извинения.

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

          Я не в коей мере не хотел никого обидеть или оскорбить, просто я высказался по существу ответного поста!

          Если кто в силах помочь в моем вопросе, будьте так любезны!

          • АлаичЪ

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

            • ПафНутиЙ (123 комм.)

              Денис, не уверен в правильности ответа, но:

              http://prowebber.ru/dle/moduls/3570-subdomen-15.html на основе этого можно что-то сообразить. Но я лично за адаптивный дизайн против мобильных версий.

              • Денис (11 комм.)

                Да я как бы тоже, но думаю на будущее, яша требует наличие моб. версии, именно в таком формате(как пишет Платон желательно именно на поддомене!)Ссылка интересная постараюсь реализовать, Спасибищще!

                • Touch (5 комм.)

                  Денис, а не могли бы мы подробнее с вами поощаться:)

                  Меня тоже очень заинтересовала создание мобильной версии сайта на поддомене, т.к. сам имею сайты мобильной тематики.

                  Отпишите пожалуйста на euro-5000 (пёсик) yandex.ru, возможно обменяемся каким либо опытом.

  22. Александр (3 комм.)

    Подскажите, пожалуйста, имеется страница вида сайт.ру/approve/ — страница новостей находящихся на модерации, как запретить ее индексацию мета тегом? Спасибо!

    • АлаичЪ

      Вы уверены, что такая страница вообще существует? Я ее не обнаружил у себя.

      • Touch (5 комм.)

        Просто у Александр, стоит уникальный модуль который я ему продал, и вчера уже эту проблему мы совместными усилиями решили.

  23. snegovik (7 комм.)

    Александр спасибо за полезный мануал. Всё отлично работает.

  24. Артём (2 комм.)

    У меня лично такой, думаю вот самый правильный робот:

    User-agent: *
    Disallow: /engine/
    Disallow: /*print
    Disallow: /2012/
    Disallow: /engine/download.php
    Disallow: /user/
    Disallow: /favorites/
    Disallow: /newposts/
    Disallow: /lastnews/
    Disallow: /statistics.html
    Disallow: /tags/
    Disallow: /catalog/
    Disallow: /*subaction=userinfo
    Disallow: /*subaction=newposts
    Disallow: /*do=lastcomments
    Disallow: /*do=feedback
    Disallow: /*do=register
    Disallow: /*do=lostpassword
    Disallow: /*do=addnews
    Disallow: /*do=stats
    Disallow: /*do=pm
    Disallow: /rules.html
    Disallow: /dle-rules-page.html
     
    Host: сайт.ru
    Sitemap: http://сайт/sitemap.xml
    • Валерий (58 комм.)

      Артём, вы себя считаете умней Алаича? Хоть бы почитали внимательно данный пост, тогда бы увидели какой самый правильный правильный robots!

      • Артём (2 комм.)

        Не считаю, но в написанном посте плохой робот! Зачем индексировать профили к примеру?

        • Валерий (58 комм.)

          Вы даже невнимательно прочитали данный пост!

          Страница профиля запрещена к индексации с помощью метатега (там есть такая строчка):

          $subaction == 'userinfo' OR /* Просмотр профиля пользователя *

    • Evlampy (2 комм.)

      Disallow: /*print

      Такую запись просто необходимо делать, скажем, при продажах принтеров... (шутка)

      А если без шуток — более вредной записи в robots.txt найти сложно

  25. Денис (4 комм.)

    А стоит закрывать от индексации страницы пагинации при продвижении категорий и главной? Не будет проблем с индексацией стальных страниц сайта?

    • Валерий (58 комм.)

      Толку от индексации страниц пагинации нет никакого, ведь на них размещены краткие новости (анонсы), которые частично дублируют полную новость, и поэтому являются нечётким дублем! Поэтому, я считаю, что в таком случае, страницы пагинации главной и категорий нужно закрывать от индексации! Проблем с индексацией остальных страниц быть не должно. Поскольку в каждой полной новости должна быть перелинковка на другие страницы сайта, и на главной странице — карта сайта.

      • Touch (5 комм.)

        А будут ли при этом закрыты от индексации страницы вида:

        /tags/JAVA-Games/page/7/

        Т.е. пагинация в облаке тегов.

        (извините за возможно тупой вопрос, но лишняя ясность для 100% уверенности не помешает)

        • Touch (5 комм.)

          Извините за то что не получил до сих пор ответа и продолжаю спрашивать:)

          Уточню задачу.

          Мне не нужно закрывать все теги облака /tags/ от индексации, а только страницы пагинации хочу закрыть.

          Как быть в этом случае?

          • АлаичЪ

            Чтобы закрыть страницы пагинации тегов, но при этом главные страницы тегов оставить индексируемыми, надо добавить такой код:

            ($do == 'tags' and (intval ($_GET['cstart']) > 1)) OR

      • Touch (5 комм.)

        Ещё раз извините, и что делать с /lastnews/page/2/ и вообще с /lastnews/ ?

        Может вообще сделать 301 редирект на главную если она не несёт ни какой пользы для индексации?

        • АлаичЪ

          Закрыть от индексации, как это сделать описано в посте. Ну и плюс к этому не ссылаться на эту страницу с сайта.

      • Evlampy (2 комм.)

        Уважаемый АлаичЪ

        Этот участок кода:

        //(intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */

        Или должно так быть:

        //($intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */

        • АлаичЪ

          Все должно быть так, как указано в посте и не иначе!

  26. lerr (2 комм.)

    А как быть с сылками в которых гет запрос идет через $action?

    вот ссылка index.php?do=forum&action=trophies

    Пытался прописать switch с добавлением $metatags .= <<<HTML

    \n<meta name="robots" content="noindex,nofollow" /> в функцию SetMetaTag

    вот код файла main.class.php

    switch (self::$action) {

    case 'main':

    $result = self::$handler->_home ();

    break;

    case 'categories':

    $result = self::$handler->_pageTree ();

    break;

    ....... труляля

    case 'trophies':

    $result = self::$handler->_userTrophies ();

    default:

    $result = self::$handler->_home ();

    break;

    }

    return $result;

    }

    public function SetMetaTag ()

    {

    global $metatags;

    $metatags['title'] = self::$meta['title'];

    $metatags['description'] = self::$meta['description'];

    $metatags['keywords'] = self::$meta['keywords'];

    return $metatags;

    }

    • АлаичЪ

      Я не понял, что это за хрень, но стоит попробовать добавить условие в мой код, типа

      $action == 'trophies' OR

      Должно сработать.

      • lerr (2 комм.)

        Это Bullet energy forum. Не так не работает =(

        • АлаичЪ

          Тогда я не знаю, с этим форумом не работал никогда...

  27. Артем (3 комм.)

    Прошу прощения если вопрос покажется глупым, может я просто не все понял.

    Сделал по инструкции, раскоментировал те позиции которые хочу закрыть от индексации. Но на всех этих страницах в исходном коде прописано:

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

    хотя я такую строчку удалил из файла engine.php

    Строчки <meta name="robots" content="noindex,nofollow" /> в коде вообще нет

    DLE 9.2

    • АлаичЪ

      Кеш очистите. Ну и еще раз проверьте, все ли правильно сделано!

  28. Валентин (67 комм.)

    Спасибо большое за ваш огромный(я считаю) вклад в оптимизацию DLE, в частности за этот robots.txt...

    Вопрос — подскажите как запретить от индексации вашим методом(через метатеги) служебные папки и например внешние ссылки которые у меня такого вида — http://site.ru/?exit=http://site.ru, а так же страницу 404 — http://site.ru/404.html?

    • АлаичЪ

      Папки и ссылки запретить от индексации метатегом нельзя. Метатег предназначен только для реальных страниц.

      На страницу 404.html можете добавить метатег <meta name="robots" content="noindex,nofollow" />, но это не поможет, так как в первую очередь сервер будет отдавать ответ 404, и, следовательно, уже не важно, что содержит страница.

  29. zennuk (14 комм.)

    Спасибо еще раз за столь интересный и нужный пост!

    Такой вопрос по поводу закрытия архива новостей за год, нужно ли указывать за какой именно год или данный мета-роботс //($year != '' and $month == '' and $day == '') OR /* Просмотр архива новостей за год */ закрывает новости за все годы?

    Заранее спасибо!

    • АлаичЪ

      Разумеется, ничего указывать не надо, иначе бы я об этом обязательно сообщил.

  30. Александр (3 комм.)

    Доброго времени суток! У меня возник еще один вопрос, строки

    //(intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */

    //($dle_module == 'main' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации для главной страницы */

    //($do == 'cat' and $category != '' and $subaction == '' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации только для категорий */

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

    http://site.ru/page/1/

    http://site.ru/category/page/1/

    Если условие >1, на этих страницах нет метатега robots, может правильнее было бы поставить условие >0?

    Спасибо за помощь!

  31. Валерий (58 комм.)

    АлаичЪ, возникла необходимость закрыть подкатегории от индексации.

    Можно ли, указать ID подкатегорий в одной строке через запятую,

    или нужно под каждую подкатегорию прописать отдельную строку?

    • АлаичЪ

      Вместо $category_id == 'X' надо указать in_array($category_id, array('1', '2', '3', '4', '5'))

  32. Дмитрий (8 комм.)

    Здравствуйте!! Подскажите пожалуйста как запретить категорию к индексации? (беда уже давно, http://сайт.РУ/games/ Так вот категории Games присваиваются запросы которые я продвигаю из Яндекс, но я продвигаю другую страницу ГЛАВНУЮ по этим запросам, потому что дурацкий яндекс раньше всегда Главной давал предпочтение, и с главной у меня лучше позиции, а теперь много недель отдает запросы продвигаемые Games категории не смотря на то что я там все продвигаемые слова убрал из ней)

    Вобщем Если я Robots.txt пропишу Disallow: /games/ вдруг он будет запрещать все новости??

    http://tnt-torrent.org/games/716-skachat-torrent-tom-clancy-ghost-recon-future-soldier.html потому что здесь ПОСЛЕ GAMES/ ИДЕТ НОВОСТЬ

    Заранее Спасибо Огромное!!!!!

    • АлаичЪ

      Используй код из поста, раскомментируй строку

      //($do == 'cat' and $category_id == 'X' and $subaction == '') OR

      где вместо Х укажи id категории games и будет счастье!

  33. Дмитрий (8 комм.)

    Спасибо огромное )))))))))))))))

    А ничего страшного, что у меня там код размещен уже этот (перед этим) ?

    (тоже из какого то Вашего поста брал давно)

    if ($subaction == 'userinfo' OR

    $subaction == 'allnews' OR

    $subaction == 'newposts' OR

    $do == 'stats' OR

    $do == 'addnews' OR

    $do == 'register' OR

    $do == 'favorites' OR

    $do == 'rules' OR

    $do == 'pm' OR

    $do == 'feedback' OR

    $do == 'lastcomments' OR

    $do == 'lostpassword' OR

    $do == 'search' OR

    $do == 'lastnews' OR

    $do == 'alltags' OR

    $do == 'tags' OR

    $dle_module == 'date' OR

    (intval ($_GET['cstart']) > 1 )) $metatags .= <<<HTML

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

    HTML;

    • АлаичЪ

      Замените его на новый. Хотя, если все устраивает, то ничего менять не надо. В новом коде только новые фишки появились.

  34. Дмитрий (8 комм.)

    $subaction == 'showfull' OR /* Просмотр полной новости */ Это запрет всех новостей получается? (новости не будут индексироваться?)

    $do == 'lastnews' OR /* Страница просмотра всех последних новостей */ а это что? (это ЛАВНАЯ СТРАНИЦА?, ведь на главной по сути все последние новости отображаются))

    (intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */ Что такое пагинация скажите пожалуйста.

    ($dle_module == 'main' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации для главной страницы */

    ($do == 'cat' and $category != '' and $subaction == '') OR /* Просмотр любой категории */ ЭТО КАК ПОНИМАТЬ ? (ЗАПРЕТ ВСЕХ КАТЕГОРИЙ?)

    • АлаичЪ

      > Это запрет всех новостей получается?

      Да.

      > а это что?

      Страница такая есть. Но если про нее не знаете, то и нечего волноваться!

      > Что такое пагинация скажите пожалуйста.

      Это страницы навигации — /page/2/, /page/3/ и т.д.

      > ЗАПРЕТ ВСЕХ КАТЕГОРИЙ?

      Да.

  35. Дмитрий (8 комм.)

    Второй бонус Ваш " запрет индексации админки, ибо тупо закрывать файл admin.php в robots.txt (а еще тупее использовать нестандартное название файла админки и закрывать его в robots.txt)."

    Только почему?? не могу понять...ведь PHP файлы НЕ индексируются поисковиками вроде...если я не правд поправьте меня. ( запретить adminka.php или изменное её название ну вставить там Сразу после <head> вставьте <meta name="robots" content="noindex"> )

    правильно там и тега <head> нету ведь этот тег из языка HTML (хоть и HTML не является по сути языком программирования...так в книжке написано)

    Как мне запретить admin.php к индексации (не афишируя изменённое название в robots.txt) ?

    • АлаичЪ

      Без комментариев... Или проделайте, что я написал в посте, или...просто не надо задавать такие вопросы.

  36. AlexP_RUS (24 комм.)

    Приветствую! Подскажите пжл, как закрыть от индексации сами комментарии в полной новости?

    • Валерий (58 комм.)

      В посте же всё написано! Простите, куда вы смотрите!?

      //$do == 'lastcomments' OR /* Страница просмотра ВСЕХ последних комментариев на сайте, в т.ч. комментариев отдельного пользователя */

      • AlexP_RUS (24 комм.)

        Каких последних? И какая страница? Я лично не понимаю что это значит. И пользователей у меня на сайте нету, комментарии пишутся гостями (так нужно).

        Эти все мета-теги давно у меня прописаны, но комментарии в новостях индексируются.

        Вот и спрашиваю как их закрыть?

        • АлаичЪ

          Что именно надо закрыть от индексации? Страницы пагинации комментариев или сам текст комментария или что?

          • AlexP_RUS (24 комм.)

            Запретить сам текст комментариев конечно. Как это сделать?

            • Валерий (58 комм.)

              В файле шаблона fullstory.tpl находите тег {addcomments} и заключаете его в noindex,

              то есть так: <!--noindex-->{addcomments}<!--/noindex-->

              • Валерий (58 комм.)

                верней так: <!--noindex-->{comments}<!--/noindex-->

                • AlexP_RUS (24 комм.)

                  Точно надо так? Просто я первый раз вижу noindex вот с этим знаком !--

                  • Валерий (58 комм.)

                    Точно! Так стали делать недавно, что придать валидность этому тегу.

                    Если смущает этот знак, можешь делать по-старому.

                    • AlexP_RUS (24 комм.)

                      Хорошо, попробую сделать так, спасибо. А что по этому поводу скажет АлаичЪ? Интересно бы услышать.

                    • АлаичЪ

                      АлаичЪ подтверждает слова Валерия :)

  37. Антон (6 комм.)

    Вот и вышла DLE 9.7 Что нибудь в ней изменилось ? Такой же робот делать? Или стоит подождать пока вы просмотрите нововведения :)

    • АлаичЪ

      Никаких изменений относительно индексации в DLE 9.7 не было, так что можно пользоваться на здоровье!

  38. Денис (1 комм.)

    Доброго времени суток!

    Вопрос назрел такой: для чего закрывать эти страницы, что разработчики dle сами до сих пор недоперли что их надо закрыть от индексации, или же этот вопрос -закрывать или нет — личный для каждого и верного решения пока нет. (Просто сколько помню все время закрываешь эти страницы — а в новых версиях они все равно открыты)

    • АлаичЪ

      Да откуда я знаю почему так. Если бы все были эксперты во всех областях, то...ну, пипец бы случился в этом мире, я считаю.

      Разработчик мастер в разработке, сеошник мастер в seo. Каждый в своей нише, каждый решает свои задачи...

    • Валерий (58 комм.)

      Уважаемый, вам не кажется, что вопрос задаёте не по адресу!?

      Аналогичные вопросы задавайте разработчикам движка DLE.

  39. AlexP_RUS (24 комм.)

    Приветствую, есть пара вопросов. ДЛЕ 9.6.

    1. У вас в Мета есть параметр catalog, но у меня на сайте именно такого нету, есть cat/ — это тоже просмотр каталога по буквенному идентификатору. Вопрос: что нужно сделать, оставить catalog как есть $catalog != '' или прописать $do == 'cat' OR а catalog удалить?

    2. Я в robots.txt оставил в это:

    User-agent: *

    Disallow: /engine/

    Disallow: /engine/go.php

    Disallow: /engine/download.php

    Disallow: /index.php?do=lastnews/

    Disallow: /backup/

    Disallow: /language/

    Disallow: /login

    Disallow: /templates/

    Disallow: /panel/

    Disallow: /admin/

    Disallow: /secure/

    Disallow: /mchat

    Скажите нужно (и полезно) ли это всё оставлять или что-то надо убрать?

    • АлаичЪ

      1. Нужно оставить как есть и ничего не менять в моем коде!

      2. Можно оставить это:

      User-agent: *

      Disallow: /engine/

      Disallow: /index.php?do=lastnews/

      Disallow: /mchat

      А остальное убрать.

      • AlexP_RUS (24 комм.)

        Немного уточню по первому вопросу: на многих сайтах сделано вот так: — /catalog/а, как я понимаю для этого и прописано так $catalog != ''. А у меня на сайте сделано вот так — /cat/а, всё равно не надо менять? Просто я нигде не нашёл в коде упоменания слова catalog, а вот cat есть.

        По второму вопросу благодарю за подсказку.

        • АлаичЪ

          Ну так возьми мой код и проверь, добавится ли метатег. Это во-первых. Во-вторых, переменные в коде, не имеют ничего общего с url на сайте, урлы могут быть какие угодно.

          • AlexP_RUS (24 комм.)

            Ок, но дело в том, что я не знаю как проверить. Подскажите пжл как это сделать.

            • АлаичЪ

              Взять и посмотреть исходный код страницы, должен появиться метатег robots.

  40. sprrut (16 комм.)

    АлаичЪ, подскажи — как закрыть от индексации зеркало сайта site.ru мой основной адрес в ПС www.site.ru

    (редерикт в htaccess сделал на www)

    • Валерий (58 комм.)

      Простите, я хоть не АлаичЪ, но отвечу.

      Ничего вам делать больше не нужно. (Если у вас конечно правильно настроен редирект.)

      Страницы без www индексироваться не будут!

      • sprrut (16 комм.)

        Валерий, спасибо за ответ. Редирект настроен вроде правильно хочу попасть на site.ru, а меня кидает сразу на www.site.ru

        • Валерий (58 комм.)

          Ну и гуд! Значит и поисковых роботов будет также кидать на этот домен.

  41. Юрий (6 комм.)

    АлаичЪ сделал как написано, но модуль кто онлайн показывает что робот яндекса шарится по профилям пользователей и облакам тегов, хотя в исходнике стоит name="robots" content="noindex,nofollow, они чё в обще по бес пределу шарятся, или то модуль гонит?

    • АлаичЪ

      А никто и не говорил, что робот не будет ходить по страницам. Я говорил, что страницы индексироваться не будут, а они индексироваться не будут, это я гарантирую!

  42. Юрий (6 комм.)

    Ёхана бабай, Вы допустили очень серьёзную ошибку в написании, там где стоит (content="noindex,nofollow") — это конкретная ошибка. После запятой пробел пропущен, так надо noindex, nofollow

    ) $metatags .= <<<HTML

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

    HTML;

    • АлаичЪ

      Сам ты бабай, нет тут никакой ошибки, пробел не играет никакой роли. Откуда вообще инфа, что надо писать раздельно?

      • Юрий (6 комм.)

        Да, а может ключевые к сайту тоже без пробела надо ставить? Это конкретная ошибка, тоже самое что написать Disallow: /engine/ вот так Disallow:/engine/. Всё описывается в Яндекс вэбмастере!

        • АлаичЪ

          Где там сказано про важность пробела после запятой? Так что, давай, не позорься и не говори фигню.

          • Юрий (6 комм.)

            На читай http://help.yandex.ru/webmaster/?id=1111858 у меня на сайте начали теги в индекс выкидывать, умник! неизвестно что ещё подцепило. Прочитай книжку о правилах написания кода! Оно работает но этот тег пишется с пробелом, если не так то какого хера в индекс теги полетели хотя на странице стоит <meta name="robots" content="noindex,follow"/> -?

            Пример:

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

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

            <!--Робот выберет значение all, текст и ссылки будут проиндексированы. -->

            • Александр (16 комм.)

              Юрий, я не знаю как там у вас правильно, а вот у меня Яндекс прекрасно разобрался и в Я.вебмастере пишет: "Документ содержит мета-тег noindex" Вывод: Ему пофиг на пробел!

            • АлаичЪ

              Я еще раз говорю, пробел никак не влияет, хоть закидайтесь в меня ссылками, а хотя... лучше напишите в поддержку Яндекса и спросите напрямую!

              А какого хера у вас страницы в индексе, я не знаю, руки надо править и код проверять внимательно.

            • АлаичЪ

              Читай письмо от Платонов, умник.

              Мой вопрос:

              Добрый день, уважаемая поддержка.

              У меня к вам небольшой вопрос по поводу метатега robots. Сразу по пунктам:

              1. Скажите, пожалуйста, играет ли пробел роль в коде <meta name="robots" content="noindex, nofollow"/>

              То есть, есть ли разница как писать noindex, nofollow или noindex,nofollow — в первом случае после запятой идет пробел, во втором случае директивы без пробела. Важно ли это или нет?

              2. И второй вопрос. Если, допустим, на странице по какой-то причине указаны два метатега robots, например, в такой последовательности:

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

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

              Какие правила применит робот в этом случае?

              Ответ поддержки:

              1. Пробел роли не играет.

              2. Последовательность роли не играет. При наличии одновременно запрещающего и разрешающего мета-тега будет учтен разрешающий.

              • Юрий (6 комм.)

                АлаичЪ ну подскажите плиз, что тогда не так с Вашими метатегами. Подождал 2 апа, а яндекс сволоч продолжает выкидывать в поиск страницы (/2011/ , /2012/ , /tags/). Но самое непонятное, почему он загружает кучу хлама где стоит <meta name="robots" content="noindex, nofollow"/> этот тег что не запрещает загрузку ненужного хлама?

                • АлаичЪ

                  Во-первых, проверь, чтобы на всех нужных для исключения страницах присутствовал запрещающий метатег и не было разрешающего (ну, мало ли).

                  Во-вторых, 2 апдейта, это вообще не срок, подожди месяц хотя бы. Яндекс это тебе не Гугл.

                  В-третьих, не запрещай эти страницы в robots.txt

                  Все...

  43. AlexP_RUS (24 комм.)

    АлаичЪ, скажите, вот строка ($do == 'cat' and $category_id == 'X' and $subaction == '') OR, где вместо Х надо указать id категории. Если я укажу id категории, то новости в этой категории будут индексироваться?

    А если мне надо закрыть несколько категорий, то прописывать по порядку без пробелов так: 3,6,9,4 или так 3, 6, 9, 4, или как-то по другому?

    И вы ещё не ответили мне, как проверить добавился ли метатег?

    • АлаичЪ

      Закрытие категории не закрывает публикации из этой категории.

      Для нескольких категорий надо использовать такой код: #comment-11214

  44. Сергей (6 комм.)

    Я так понял этот Роботс более для Гугла. Так как он не смотря на запреты в роботсе индексит всё подряд?

    • АлаичЪ

      Этот робост для всех поисковиков. Акцент тут именно на Гугл по той причине, что другие директивы он плохо исполняет, а эти точно работают.

  45. Дмитрий (14 комм.)

    Здравствуйте!

    Скажите пожалуйста (посоветуйте), а модуль Кольцевой перелинковки (Ваш который) и модуль Переходы закрывать от индексации?

    $do == 'linkenso' OR /* модуль для организации кольцевой перелинковки */

    $do == 'referer' OR /* Модуль ПЕРЕХОДЫ */

    Заранее Спасибо за ответ))))))))

    • АлаичЪ

      Бред какой-то. От индексации можно закрыть только страницы и никак иначе. Модуль LinkEnso не имеет страниц, следовательно закрывать нечего. И вообще тогда какой смысл от его использование, если закрывать от индексации...

  46. Дима (14 комм.)

    Скажите пожалуйста, а можно ли через engine.php так же как нибудь папку модуля партнерки запретить индексить которая в корне сайта лежит? (а то очень много страниц попало в Гугл из этой папки)

    Я хочу последовать ВАшему примеру и сделать минимальный почти чистый Robots.txt

    Как реализовать это ВАшим способом (чтобы убрать из Robots.txt)

    Disallow: /uploads/

    Disallow: /do=*

    Disallow: /*do=*

    Disallow: /папка модуля парнерки/ (по сути тоже самое что и аплоадс, что там папка ,что здесь...смысл в том чтобы знать как убирать папки от индексации НЕ через robots.txt)

    • АлаичЪ

      Я не знаю, что там за партнерка и т.д. Это надо смотреть, гадать тут нет смысла.

  47. Дима (14 комм.)

    И последний вопрос если можно, скажите, пожалуйста, АлаичЪ, мне вот друг посоветовал когда то давно сделать следующие:

    Файл в корне сайта .htaccess

    # Динамические ссылки в статические

    RewriteRule ^feedback.html$ /?do=feedback [L]

    RewriteRule ^stats.html$ /?do=stats [L]

    RewriteRule ^register.html$ /?do=register [L]

    RewriteRule ^search.html$ /?do=search&mode=advanced [L]

    RewriteRule ^lostpassword.html$ /?do=lostpassword [L]

    Мол, мы с ним обсуждали, что динамические ссылки это плохо. Если Вы образумите меня и скажите, что это Бред я послушаю Вас и верну как было.

    Вопрос вот в чем: Вот эта строка $do == 'static' OR /* Все статические страницы */ коснётся их? Проще говоря, мне же надо обязательно запретить их к индексации, а сработает ли Ваш замечательный способ через Engine.php в моем случае, я не знаю.

    Заранее безумно вам благодарен. Спасибо за то, что вы помогаете нам :)

    • АлаичЪ

      Странный у вас друг, то, что он посоветовал прописать и так уже изначально есть в DLE, так что обсуждать это не имеет смысла, пусть все так и остается.

      $do == 'static' не закроет эти страницы, но их закроет $do == 'feedback', $do == 'stats', $do == 'register' и т.д. Думаю, алгоритм понятен.

  48. Дима (14 комм.)

    Захожу http://tnt-torrent.org/register.html, в исходном коде <meta name="robots" content="noindex,nofollow" />

    ЗНАЧИТ ЗАПРЕТ РАБОТАЕТ :) Так же и http://tnt-torrent.org/lostpassword.html

    СПАСИБО! ВЫ ГЕНИЙ!

  49. Дима (14 комм.)

    По автору идеальный роботс будет таким

    User-agent: *

    Disallow: /engine/

    Host: сайт.ру

    Sitemap: http://сайт.ру/sitemap.xml

    Но как тогда

    Disallow: /папка модуля стороннего/ (папка партнерки)

    Disallow: /language/

    Disallow: /templates/

    Disallow: /uploads/

    Disallow: /backup/

    Disallow: /do=*

    Disallow: /*do=*

    Disallow: /?*

    я боюсь если не укажу их в роботс.txt то будет беда...

    • АлаичЪ

      Если убрать /language/, /templates/, /backup/ не будет никакой беды.

  50. Александр (16 комм.)

    АлаичЪ, скажите пожалуйста, почему когда удаляю или пытаюсь закоментировать (//) строку:

    $catalog != '' /* Просмотр каталога по буквенному идентификатору */

    Сайт не открывается, пишет: Parse error: syntax error, unexpected ')' in Z:\home\site\www\engine\engine.php on line 810

    Где 810 строка, это следущая после той, что закометировал () $metatags .= <<<HTML) ?

    • Александр (16 комм.)

      Поправил:

      Где 810 строка, это следущая после той, что закометировал: ) $metatags .= <<<HTML

      • АлаичЪ

        Ошибка потому, что необходимо удалить в конце оператор OR для последней активной строки.

  51. Елисей (1 комм.)

    — Что если мне надо закрыть от индексации несколько категорий с id=1,2,3,4,5 какой код применять?

    — Вместо $category_id == 'X' надо указать in_array ($category_id, array ('1', '2', '3', '4', '5'))

    Прописал через запятую категории после всего этого сайт не грузится а выдаёт ошибку

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/elis/сайт.ru/www/engine/engine.php on line 811

    • Валерий (58 комм.)

      Поднимите свои глазки на 2 комментария выше, и увидите ответ)))

  52. DaivZ (3 комм.)

    Очень бы хотелось увидить статью по правильному размещения тегов h1-h8 в шаблоне с точки зрения SEO пример можно показать на Default шаблоне. А то выходит все оптимизируем а в шаблоне бардак.

  53. Роман (4 комм.)

    Вопрос к автору. Скажите, как запретить к индексации например видео плееры на сайте из фильмами которые размещает ссылки с плеерами на пример: вконтакте или другие?

    • АлаичЪ

      Никак — это раз, во-вторых, те ссылки не индексируются.

  54. Юрий (6 комм.)

    Подскажите, а можно ли вобще вырезать из двидка доступ к тегам (или вырезать их) и архивам (чтоб не по одной ссылке их не нашли) тоесть без всяких редиректов и т.п.

    • АлаичЪ

      Ну тогда будет отдаваться 404 ошибка... Не уверен, что это хороший выход. В общем, сделайте все как написано в посте и все будет окей, я точно говорю!

  55. Денис (9 комм.)

    Добрый день.

    А как и где исправить Title у 404 страницы?

  56. Иван (41 комм.)

    АлаичЪ, спасибо воспользовался. Правда, в индекс уже успели влететь архивы и пользователи (user) — жду переиндексации... Вы не подскажете как можно запретить к индексации ещё и /rss.xml?

    И вот такие страницы повылазили index.php?do=search&mode=advanced и /index.php?action=mobile — их можно запретить?

    • АлаичЪ

      В robots.txt:

      Disallow: /rss.xml

      Disallow: /index.php?

      И если не знаете, как работает мой метод, не надо там мудрить и свои правила дописывать.

      • Иван (41 комм.)

        Можно через роботс, но соменваюсь что через роботс запреты сработают!

      • Иван (41 комм.)

        АлаичЪ, ну, подскажите как через код остальные дубли закрыть? Кстати дубль rss вот такого вида /engine/rss.php

        Сделал так, правильно?

        //$do == 'rss' OR

        //$do == 'action' OR

        //$do == 'admin' OR

        //$do == 'news' OR

        //$do == 'advanced' OR

        //$do == 'mobile' OR

        //$do == 'index' OR

        От страх добавил ещё так:

        //$do == 'search&mode' OR

        Просто из за дублей на моём сайте сегодня на счётчике красуется цифорка 1 — и 1 это я.

        • АлаичЪ

          Нет, не правильно это, и не будет работать. Я же сказал — тут поможет только robots.txt

  57. Роман (4 комм.)

    Скажите например если я буду использовать ваши поправки:

    Если я не очищу свой robots.txt оставлю как есть (стандартный) ничего не произойдет?

    Или обязательно надо убирать строки с роботс если закрыл поправкой вашей?

    • АлаичЪ

      Ничего и не произойдет, следовательно и париться не стоит и какие-то правки вносить.

      • Роман (4 комм.)

        я вижу кто-то мало закрывает даже теги иногда в индексе поисковиков есть и высоко у выдаче сидят. Так лучше их закрыть и сайт будет лучше индексироваться из-за отсутствия мусора будет лучше брать топ?

        • АлаичЪ

          Ситуации разные, сайты разные, у кого-то теги приносят основной трафик, а кто-то из-за них попадает под АГС. Так что сами решайте хоть что-то без моей помощи...

  58. Александр Попов (13 комм.)

    Здравствуйте, АлаичЪ!

    Очень хороший пост и обсуждение, прочитал всё, много узнал, переделал по вашей методике, рад за это, но столкнулся с такой проблемой, а как ещё в ваш мод вставить запрет на индексирование некоторых страниц стандартного DLE форума DLE Forum v.2.6.1 по закрывать возможно страницы типа домен/forum/topic_1/reply/ или домен/forum/topic_1/last и тому подобное с форума, что не нужно для индексации и что выводит форумы повторами в индекс.

    В Гугл вебмастере вот такие повторы вижу:

    /forum/topic_124/1

    /forum/topic_124/last

    Как сделать это вашим методом, закрыть /forum/topic_124/last?

    Подскажите пожалуйста! Заранее спасибо!

    • АлаичЪ

      Добавьте в robots.txt директивы:

      Disallow: /forum/*/1$

      Disallow: /forum/*/last

      Disallow: /forum/*/reply

      • Александр Попов (13 комм.)

        Спасибо! Вот что получилось:

        User-agent: *

        Disallow: /engine/

        Disallow: /rss.xml

        Disallow: /forum/*/1$

        Disallow: /forum/*/last

        Disallow: /forum/*/add

        Disallow: /forum/*/reply

        Disallow: /forum/*/search

        Disallow: /forum/*/getnew

        Disallow: /index.php?

        Disallow: /?do=forum

        Host: сайт.ру

        Sitemap: http://сайт.ру/sitemap.xml

        Проверил в Яндекс Вебмастере, вроде всё норм, Боты не пройдут)))

        • АлаичЪ

          Да, все окей.

          • Александр Попов (13 комм.)

            Здравствуйте Уважаемый АлаичЪ! Вот прошло время и появились теперь в Яндекс вебмастере ещё повторы страниц с форума

            домен/forum/topic_165/

            домен/forum/topic_165

            Ещё какую директиву дописать, чтобы пост с форума индексировался по одной ссылке? или редиректить?

            Спасибо!

            • Александр Попов (13 комм.)

              Я сейчас сделал так: в файле форума по адресу /engine/forum/sources/modules/show.last.php

              из строки

              $fl_topic = "<a href='/forum/topic_$row[tid]'/>{$row['title']}</a>"; убрал слеш стало таким видом

              $fl_topic = "<a href='/forum/topic_$row[tid]'>{$row['title']}</a>";

              и всё стало отображаться по адресу без слеша

              домен/forum/topic_165

              Правильно ли?

              • Александр Попов (13 комм.)

                Но если сам добавляешь в браузере к посту домен/forum/topic_165 слеш домен/forum/topic_165/ одна и тот же пост, раз не выводит поисковику, надеюсь не будет индексировать со слешем?

                • Александр Попов (13 комм.)

                  Вот проверил вечером, ранее пост появлялся через 10 — 30 мин в индексе Яндекса, сейчас с видом ссылок

                  домен/forum/topic_165 не индексирует уже три часа!!!

                  Что делать? Как закрыть от индекса вид ссылки с форума ДЛЕ без знака"/" на конце?

                  Спасибо!

                  • АлаичЪ

                    Скорость индексации от этого не зависит. А по хорошему надо сделать редирект на какой-то определенный вариант, со слешем или без. Вот два варианта правил, которые должны добавлять слеш в конце, попробуй любой, должно работать:

                    RewriteBase /
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteCond %{REQUEST_URI} ^/forum/
                    RewriteRule ^([^.]+)(?<!/)$ /$1/ [R=301,L]
                    RewriteBase /
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteCond %{REQUEST_URI} !-f
                    RewriteCond %{REQUEST_URI} !/$
                    RewriteCond %{REQUEST_URI} ^/forum/
                    RewriteCond %{REQUEST_URI} !.html$
                    RewriteCond %{REQUEST_URI} !.xml$
                    RewriteRule (.+) $1/ [R=301,L]
  59. mixail366 (13 комм.)

    Вы все рписываете как закрыть страницы или категории от поисковиков. а у меня возникла такая необходимость: закрыть от определенных поисковиков новости в определенных категориях сайта опубликованных по определенную дату. А с данной даты что бы публикации были видны.

    Как закрыть в robots для определенного поисковика и определенную кактегорию понятно. Но возможно ли что бы по определенную дату?

    • АлаичЪ

      Это возможно, но для этого надо прописывать "хитрую" функцию в engine.php, чем мне заниматься совсем не хочется.

  60. d.j.starter (31 комм.)

    Здравствуйте, не могу понять в чём причина того, что в панели вебмастера Яндекса для сайта появился жёлтый треугольник с восклицательным знаком который сообщает о том, что «14.10.2012 наш робот получил полный запрет на индексирование сайта в Вашем файле robots.txt. Пожалуйста, воспользуйтесь формой проверки. Если запрет все еще присутствует, то по вопросу устранения этой проблемы Вам нужно обратиться к администратору Вашего сайта или хостеру. Если сейчас запрет отсутствует, то сообщение обновится в течение 2–3 дней.»

    На сайте Правильный robots.txt для DLE взятый здесь. Даже если удалить его или чистый просто оставить или родной длешный впихнуть результат проверки один и тот же, мол запрещен правилом:

    User-agent: *

    Disallow: /

    Сейчас и в гугле «Обнаружены серьезные ошибки, связанные с состоянием сайта. Для робота Google установлен запрет.»

    Как такое может быть и что с этим делать?

    • АлаичЪ

      Я никогда ничего подобного не рекомендовал делать. Читать надо внимательно.

      Директива Disallow: / запрещает индексацию сайта полностью. Залейте оригинальный роботс из дистрибутива DLE.

  61. Иван (41 комм.)

    У кого-то работают эти правила? У меня сплошной саплиментал!(((

    • Иван (41 комм.)

      Заработало — пока только в гугл, в яще жду апа!))) АлаичЪ, огромное спасибо за пост!!!

  62. Денис (34 комм.)

    Привет АлаичЪ! Такая проблема, роботс получился как здесь рекомендовано, engine.php изменил, и не пойму в чём дело: Внес в код изменения и все страницы полных новостей исчезли в никуда, а именно в разделе "Исключено роботом" их нет, в разделе "Страниц в поиске" их тоже нет. Их было 21 страница. После внесения изменений, они все исчезли одновременно ориентировочно через неделю. Вот уже прошёл почти месяц, а они ни как не возвращаются. Сайт почти не наполнен, но теперь и не знаю, продолжать над ним работать, или искачть сначала причину данной проблемы. Вот код

    if (

    $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 /* Просмотр новостей по тегу */

    $subaction == 'allnews' OR /* Просмотр всех новостей пользователя */

    $subaction == 'newposts' OR /* Просмотр непрочитанных новостей для пользователя */

    $subaction == 'userinfo' OR /* Просмотр профиля пользователя */

    $dle_module == 'date' OR /* Просмотр архива новостей за год/месяц/день */

    //($dle_module == 'main' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации для главной страницы */

    //($do == 'cat' and $category != '' and $subaction == '' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации только для категорий */

    //($do == 'cat' and $category_id == 'X' and $subaction == '') OR /* Просмотр определенной категории. X заменить на id категории */

    $catalog != '' /* Просмотр каталога по буквенному идентификатору */

    ) $metatags .= <<<HTML

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

    HTML;

    • АлаичЪ

      Данными правилами индексация страниц новостей не запрещены, потому проблема в сайте, например, он попал под фильтр или в бан. Проблема однозначно в сайте.

      • Денис (34 комм.)

        А категории то которые были в индексе остались все до одной. Значит не бан. Что это может быть? Или я уже не в том разделе задаю вопрос. Извиняюсь если не по теме

        • АлаичЪ

          Как бы то ни было, просто зайди на все страницы, которые должны быть в индексе и проверь, нет ли там запрещающего правила <meta name="robots" content="noindex,nofollow" /> — это однозначно скажет, в чем проблема.

  63. ПафНутиЙ (123 комм.)

    Саш, надо в инструкцию после

    //$do == 'tags' OR /* Просмотр новостей по тегу */

    добавить

    //$do == 'tag' OR /* Просмотр новостей по тегу для старых версий */

    Может ошибаюсь конечно, но (двиг модифицирован, но теги не трогались), на 9.3 не закрывает страницы тегов. по tags выводится страница со всеми тегами

    • АлаичЪ

      Хм, интересно... Я не знаю, откуда у тебя такие данные, но я проверил только что для 7.5 версии, даже там указано tags, а не tag.

  64. Саня (9 комм.)

    Странно как-то, если за комментировать переменную $catalog, то выдает ошибку : Parse error: syntax error, unexpected ')' in /var/www/ХХХ/data/www/poezdkin.com/engine/engine.php on line 848

    а хотелось бы /* Просмотр каталога по буквенному идентификатору */ оставить для индексации

    • АлаичЪ

      Чтобы работало с открытым каталогом, необходимо у последней активной строки убрать в конце ") OR" (без кавычек).

  65. Alex (5 комм.)

    Здравствуйте. В файле /engine/engine.php. всё заменил и разкоментировал, но почему то не работает.

    Зашёл в yandex Вебмастер проверить — все категории сайта разрешены для индексации. (всё что разкоментировал — всё разрешено)

    Подскажите пожалуйста что не так?

    • Александр Попов (13 комм.)

      Alex ты не смотри проверку РОБОТС тхт что разрешено что нет а смотри исходный код страницы, если например есть на странице тэгов иди где либо где ты раскоментировал такую строчку в начале кода <meta name="robots" content="noindex,nofollow" /> значит боты не пройдут! Не выкинут в индекс!

  66. Tonchi (11 комм.)

    $do == 'addnews' OR /* Страница добавления новости с сайта */

    $do == 'feedback' OR /* Страница формы обратной связи */

    $do == 'lostpassword' OR /* Страница восстановления пароля */

    $do == 'pm' OR /* Страницы личных сообщений пользователей */

    $do == 'register' OR /* Страница регистрации нового пользователя */

    $do == 'stats' OR /* Страница статистики сайта */

    $subaction == 'newposts' OR /* Просмотр непрочитанных новостей для пользователя */

    $subaction == 'userinfo' OR /* Просмотр профиля пользователя */

    Эти строки я убрал от индексации, все остальное оставил.

    почему эти? ну потому, что они изначально присутствовали в Robot.txt в чистом дистрибутиве.

    А в Robot.txt я их убрал.

    • АлаичЪ

      И...?

      • Tonchi (11 комм.)

        Я написал с тем расчетом, что может вы подскажите правильно я сделал или нет?

        Может стоит открыть какие-то страницы или наоборот?

        • АлаичЪ

          Любой вариант правильный, все зависит от потребностей. Я лишь показал каким образом можно реализовать какой-либо вариант. На каком-то из своих сайтов я использую полный набор правил, на каком-то я вообще ничего не указываю...

          PS Из вышеперечисленного точно ничего открывать к индексации не стоит, но дополнительно я закрыл бы архив и allpost.

          • Tonchi (11 комм.)

            Большое спасибо за ваши советы.

            Архив закрыл, а строчки с allpost так и не нашел, её в ручную нужно дописать?

    • Александр Попов (13 комм.)

      Вообще хороший вопрос! Сам спросил и сам ответил... Самиздат! :)

  67. Александр Попов (13 комм.)

    Здравствуйте! Я недавно удалил с сайта категорию музыка вместе с материалами и поставил по Вашему описанию запрет через Метатэги и где нет страницы редиректит на главную. Что появились исключения это хорошо, но это нормально что поднялось 404 ошибки?

    Скопировал данные в Яндекс вебмастере:

    Страницы запрещены к индексированию вебмастером или не существуют

    HTTP-статус: Ресурс не найден (404) ? 7358↑

    Документ запрещен в файле robots.txt ? 43328↓

    Документ содержит мета-тег noindex ? 59

    Спасибо!

    • Александр Попов (13 комм.)

      А количество проиндексированных страниц в Яндексе растёт!

    • АлаичЪ

      Ну, по идее, удаленные страницы должны редиректиться на главную, не так ли? Смотри, какие именно страницы отдают 404 и станет понятно, следствием чего стал рост ошибок.

  68. Денис (4 комм.)

    Подскажите пожалуйста, у меня в robots.txt прописано правило Disallow: /page/* , но страницы типа http://мойсайт.ru/page/3/ в гугле есть. Почему?

    • АлаичЪ

      Причины описаны в посте, внимательно читай.

  69. Майкл (3 комм.)

    Даа! У меня как раз такой роботс после правок с метатегами, только ещё была строка engine/goto.php что-то такое, но редиректов нет, так что снёс.

  70. Дмитрий (3 комм.)

    "Сразу после <head> вставьте <meta name="robots" content="noindex">" — в файле /engine/skins/default.skin.php (версия DLE 9.6), таких тегов два, после какого по счету ставить мета запрет?

    • АлаичЪ

      Не может такого быть, один точно открывающий <head>, а второй закрывающий </head>.

      • Дмитрий (3 комм.)

        Убедительно говорю, что в файле default.skin.php (dle9.6) два тега <head>, только первый в переменной $skin_header, второй в $skin_login. Чутье подсказывает, что ставить нужно после хедера, но вдруг ошибаюсь, поэтому решил тут переспросить, а то поставишь потом 2 недели сидеть куковать с переиндексациями.

        • АлаичЪ

          Да, точно :) Значит надо добавить два раза, для каждого <head>.

  71. sprrut (16 комм.)

    Найдите файл шаблона версии для печати print.tpl и откройте его. Сразу после <head> вставьте

    <meta name="robots" content="noindex"> <----- 1 (это ваше)

    Вопрос, какой ставить 1 или 2

    <meta name="robots" content="noindex,nofollow"> <------2

  72. Николай (5 комм.)

    а что нужно добавить после if (//$do == '?' чтобы шаблон не индексировался, а то я смотрю в результатах поиска шаблон индексируется в частности, поисковик аж залез в /templates/templ/bbcodes/color.html.

    • Александр Попов (13 комм.)

      Да поддерживаю, тож самое!

      • Николай (5 комм.)

        я прописал Disallow: /templates/

        • АлаичЪ

          Тут решением является Disallow: /templates/, как написал Николай.

  73. Tonchi (11 комм.)

    Подскажите пожалуйста. А как правильно добавить в список вот эти пункты?

    Disallow: /gallery/all/

    Disallow: /*do=gallery&jump

    Disallow: /*do=gallery&act=15

    Disallow: /*do=gallery&act=4

    Disallow: /*do=gallery&jc=

    Disallow: /*engine/gallery/external/download.php

    • АлаичЪ

      По всей видимости, надо будет добавить в код такую строчку: $do == 'gallery' OR

      Но при этом вся галерея перестанет индексироваться. Так что если не надо закрыть всю галерею, предлагаю оставить все как есть.

  74. Vlad (3 комм.)

    Хочу узнать ваше мнение о Nulled DLE. Я конечно понимаю что оно будет негативным но все же. Ведь можно проверить на наличие дыр и вредоносных кодов и спокойно работать?

    P.S. Умею работать с DLE но никогда не задумывался о надежности. А на вордпресс переходить нехочется так как ВООБЩЕ ничего там понять не могу после DLE. Как то там все запутано. а тут открыл документ с кодом и все перед тобой.

    • Иван (41 комм.)

      Да многие на нулед и нормально... А почему бы не использовать лицензионный триал 9.6 если с деньгами туговато?

      А вордпресс это пичалька... Не понимаю положительных отзывов его фанатов... В дле всё по человечески — как минимум!

      • ПафНутиЙ (123 комм.)

        GetSimple — вообще юзерфрендли. Но это не повод строить на ней даже блог. А WP заточен именно под блоги. DLE заточен под ГС. Bitrix заточен под бизнес. У каждого своя ниша.

        • Vlad (3 комм.)

          Я когда пытался разобраться в вордпресс то это была каторга (рубрики, страници, модули, плагины, виджеты) А в DLE октрыл файл код добавил и все стоит на своем месте

          • Александр Попов (13 комм.)

            Привет ребята! Вы тут не по теме пошли! Мы тут обсуждаем РОБОТС ТХТ а не какой движок лучше...

          • АлаичЪ

            Оставлю без комментариев вопрос про нуллед версии.

            А на счет DLE и WP — как сказал Паша, все для своих целей. Для простых сайтов подходит DLE, для блогов только WP. У меня, например, все сайты на DLE, а этот блог на WP. Сначала было очень трудно понять логику WP, но через некоторое время разобрался и он мне даже больше понравился чем DLE. Так что обе CMS могу рекомендовать как достойные.

            • Иван (41 комм.)

              Александр, не ожидал от вас такого мнения.

              Что такое ВП? Это нагрузка на хост, необходимость нужных плагинов и их установка + опять нагрузка на хост. Многие говорят — да всё просто, нашёл скачал и установил нужный плагин... Но на самом деле, плагинов куча , но от этой кучи толку нет никакого + возможный конфликт плагинов.

              Не знаю как сейчас — но два года назад, я не смог найти не то чтобы хороший плагин для ватермарков, а просто адекватно работающий — например как на ДЛЕ! И это только один из примеров с плагинами. Про кучу дублей, которые устранить могут только избранные — я вообще молчу...

              Сейчас начал делать блог на ДЛЕ (_ow5.ru) — доволен как слон...

              Вообще реальные движки — это наши движки, забугорные нашим сильно уступают! Если есть желающие со мной поспорить, я отправлю вам function.php одного из моего блогов на ВП и попробуйте сделать генерацию keywords для постов и метаописание для статичных страниц. Заодно человеческую регистрацию, форму комментирования и бла, бла... Замечу, что в дле это уже по умолчанию!

              Ну вы и Васи, слов нет! :D

              По теме поста: Александр, как месяц дубли то исчезают то появляются.

              В яше вылезло три дубля — которые мегают уже в течении недели. Я уже в яндекс написал — мол как так может быть с <meta name="robots" content="noindex,nofollow" />?!

              В гугле в поиске нет дублей страниц, но есть повторяющиеся мета описания в панели вебмастерс.

              Что делать, ждать?

              • ПафНутиЙ (123 комм.)

                Нагрузка на хот может быть только тогда когда это ГовноХост )))

                DLE — это солянка из морально устаревшего копипаста, новых (нужных ли?) полувозможностей, и нежелания разработчика чтото менять. Если уж выбирать из "наших" движков — выбирать из новых, с поддержкой html5, и нормальным кодом под капотом.

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

                Как я уже сказал — каждому своя ниша.

                По теме же: в панели вебмастера пройдитесь по ссылкам — если дубли на самом деле есть — надо устранять, если нет — значит просто подождать, при апах они уйдут из панели вебмастера.

                • Иван (41 комм.)

                  ПафНутиЙ, хост timeweb.ru, разница по нагрузке движков существенна!..

                  Удаляю через панель вебмастеров, отправляю как дубли так и битые ссылки.

                  Яндекс не плохо отреагировал и в панели "Документ содержит мета-тег noindex" уже давно есть странички — но три страницы мигают...

                  А гугл это вообще, откуда то находит страницы 404, я их удаляю они снова появляются. В "Оптимизация HTML" ничего не меняется, за месяц удалилась одна страница категории "audio" http://smotr.im/8Y6R...

                  У страниц 404 — также прописан тег <meta name="robots" content="noindex,nofollow" />...

                  • АлаичЪ

                    Так, пацаны, тут не ветка обсуждения CMS :)

                    Давайте не будем разводить холивар по этому поводу — для этого есть форум, если что :)

                    При грамотном подходе, WP будет летать даже на захудалом хостинге. Никто не заставляет прикручивать кучу плагинов ведь. И я еще раз повторюсь — я люблю обе эти CMS каждую за какие-то свои достоинства или недостатки.

                    • Иван (41 комм.)

                      Без плагинов на ВП ни как!..

                      Зашёл сейчас в гугл вебмастерс и к удивлению картина изменилась! ненужных страниц уменьшилось в два раза — http://smotr.im/8YoN. )))

  75. tuta (5 комм.)

    АлаичЪ, спасибо вам за старания.

    Не знаю случайность или нет, но после проделанной манипуляции по твоей инструкции у моего заброшенного сайта существенно подскочили хосты. P.S. и все-таки, каково ваше мнение, стоит ли закрывать страницы пагинации или это не так существенно? Допустим если на сайте небольшое количество новостей.

    • АлаичЪ

      Может совпадение, а может и нет :)

      Можете закрыть страницы, хуже не станет. Но тогда рекомендую использовать модуль LinkEnso или SiteMap, чтобы роботы могли легко добраться до всех страниц сайта.

  76. BillyBoom (1 комм.)

    Спсибо Вам Александр, как всегда актуальные хаки и модули.

    Продолжайте в том же духе.

  77. drabadan (7 комм.)

    Сань, хотел тебя попросить написать статейку на тему robots.txt для wordpress в таком же духе. Будь добр, Сань.

    • АлаичЪ

      Да как-то не вижу в этом особого смысла, вроде и без того все хорошо работает. Не? Я вот не испытываю никаких проблем со своим блогом.

      • Иван (41 комм.)

        Есть и подобный роботс для ВП, хотел дать ссылку но не нашёл в закладках. Вроде, плагин платинум сео вполне может всё нужное реализовать. .

        • АлаичЪ

          Зачем нам плагин — я уже без плагина все реализовал, функцию соответствующую написал :) Пожалуй, будет пост!

          • Иван (41 комм.)

            У меня всё без плагинов, есть и роботс и поля метаописания и генерация описание из титлов и т.п. Но, нет у статичных страниц метаописания — только титл, нет у страниц и статичных страниц — .html, пока реализовать не получается, в сети сплошной рерайт по этой теме... Вот хотелось бы всё это в комплексе! Да может оживёт мой заброшенный 2.000 страничный сайт или же с ВП надо будет уезжать на ДЛЕ

            • АлаичЪ

              Ничего не понял... :(

              • Иван (41 комм.)

                Имею ввиду что помимо роботс для ВП, хотелось бы в комплексе получить и остальную оптимизацию без плагинов: страницы новостей и статичные страницы с .html на конце и для обоих полное метаописание. В гугле один рерайт на эту тему...

                • АлаичЪ

                  Ну здесь у нас пост не про WP. Но отвечу — .html на конце не влияет ни на что, зачем и причем тут он?

                  Полное метаописание (title, description, keywords и т.д.) позволяет делать All In One SEO и для просто постов и для статических страниц.

                  • Иван (41 комм.)

                    АлаичЪ, по поводу .html на конце, не совсем понятно — .все пишут по разному, + для избежания одинаковых страниц и рубрик, да и просто порядок. По All In One SEO, тогда можно и для роботс поставить плагин и не один. Решение было с вашей стороны — "Зачем нам плагин", я и предложил.

  78. Александр (34 комм.)

    Добрый день,

    извините если туплю, или пытаюсь понять то, что за пределами моего понимания, но это ничего, что нужные страницы лишились мататега robots:index,follow или all?

    • АлаичЪ

      В этом нет ничего страшного, как я говорил выше, это ни на что не влияло.

  79. Павел (8 комм.)

    АлаичЪ, подскажите пожалуйста, как закрыть от индексации этим методом определенную папку, например, находящийся по адресу sait.ru/js/skripts.js? Возможно ли это сделать?

    А лучше еще конкретный скрипт, который, допустим, находится в той же папке sait.ru/js/skripts.js/one.php. У меня в таком файле вынесен ненужный блок с текстом и ссылкой, который я не хочу показывать поисковикам. Как Вы, наверное, поняли он не присутствует в теле документа т.е. в коде, а подгружается. Т.е. невиден поисковику, но виден пользователю. Вот я и параною по этому поводу :) Очень надеюсь на Ваш ответ.

    • АлаичЪ

      Как я уже говорил стопицоттыщ раз, закрыть метатегом можно только реальные страницы, не папки, не скрипты, не что-то еще, только страницы. Так что в вашем случае — только robots.txt.

  80. Сергей (1 комм.)

    Здравствуйте, сделал так как у Вас, и теперь на страницах новостей, которые должны быть открыты роботу, появилась строка <meta name="robots" content="noindex,nofollow" />

    Так и должно быть? Страницы из поиска не уйдут?

    • АлаичЪ

      Нет, так быть не должно. Не надо было расскомментировать строку:

      //$subaction == 'showfull' OR /* Просмотр полной новости */

  81. Сергей (2 комм.)

    Доброго времени суток. Ну наконец то вроде нашел, то что искал - нормальный (отличный) блог про DLE. Пост и действительно познавательный. Но скажу сразу - я в сайтостроении чайник и вот - этому чайнику нужна помощь. Все не как не могу - правильные настройки сделать. Правда robots.txt - поменял, но он не такой, как у Вас в статье написано - уважаемый АлаичЪ. ДА и видно много каких настроек нет, но до меня так и не доходит, как их правильно сделать и где искать - вроде код HTML поюзал, но так не чего и не нашел. У меня движок последней версии DLE 9.7. Сайту два месяца от роду. Скажу прямо, как новичок допустил много ошибок - не указал ключи, не написал описания и т.д. Сначала сайт вроде все нормально было, но в последнее время, Яша не заходит или заходит, но редко. После, каждого АПА сайт теряет страницы- если так будет продолжаться - терять скоро вообще не чего будет.

    У меня просьба ко всем, может мне кто поможет или пояснит, как и чего сделать? Сами поймите - чайник, есть чайник.

    Хотя на ошибки мне показывали: они таковы...

    — в метатеге указываешь сколько раз робот в должен приходить all — постоянно

    — <meta name="generator" content="DataLife Engine (http://dle-news.ru)" /> что это за дрочь убрать на хер (пардон)

    Сказали, что с сайтом возни на месяц, чтобы все подлатать. И после этого я стал юзать инфу в инете и вот наконец то нашел, что искал.

    Помогите люди добрые? Плиз...Выслушаю любую критику...по тому, как сам разобраться не могу.

    За ранее спасибо!!!

    С уважением Сергей...

    • АлаичЪ

      Ничего не понял :( По поводу правильного роботса все написано в посте. Самое главное, проверить после всех правок, чтобы на нужных страницах не было запрета noindex,nofollow, все остальное приложится.

      meta name="generator" — можно удалить безболезненно.

      • Сергей (2 комм.)

        Спасибо, что ответили, но все же я не могу найти, где — это лежит:

        meta name="generator" — можно удалить безболезненно.

        А с роботса — я все же разобрался.

        • АлаичЪ

          Так и не надо удалять тогда, раз не находится. От этой строки не холодно ни жарко.

          PS Она находится в engine/engine.php

  82. Василий (2 комм.)

    День добрый! Сделал все как описано но при проверке яндекс вебмастер выдает:

    Файл robots.txt не будет учтен роботом Яндекса, т.к. при запросе выполняется перенаправление.

    Что это значит и что делать?

    Заранее спасибо.

    • АлаичЪ

      Значит какая-то проблема с сайтом.

    • HOK Сергей (2 комм.)

      <IfModule mod_rewrite.c>

      Options +FollowSymLinks

      RewriteEngine On

      RewriteCond %{HTTP_HOST} ^site.ru$ [NC]

      RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

      </IfModule>

      Options +Indexes

      Тебе в .ХТацеС надо прописать и ещё когда в веб мастер надо добавить сайт с www

  83. HOK Сергей (2 комм.)

    Ну и конечно же, хочу сказать тебе, АлаичЪ, спасибо за проделанную работу!

  84. Илья (2 комм.)

    АлаичЪ, я запутался, какой код вставлять в /engine/engine.php:

    if ($subaction == 'userinfo' OR

    $subaction == 'allnews' OR

    $subaction == 'newposts' OR

    $do == 'stats' OR

    $do == 'addnews' OR

    $do == 'register' OR

    $do == 'favorites' OR

    $do == 'rules' OR

    $do == 'pm' OR

    $do == 'feedback' OR

    $do == 'lastcomments' OR

    $do == 'lostpassword' OR

    $do == 'search' OR

    $do == 'lastnews' OR

    $do == 'alltags' OR

    $do == 'tags' OR

    $dle_module == 'date') $metatags .= <<<HTML

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

    HTML;

    или этот, что ты здесь написал:

    if (

    //$do == 'addnews' OR /* Страница добавления новости с сайта */

    //$do == 'alltags' OR /* Страница просмотра списка тегов */

    //$do == 'feedback' OR /* Страница формы обратной связи */

    //$do ......................

    • АлаичЪ

      Чтобы "распутаться" рекомендую еще раз прочитать внимательно пост, все встанет на свои места!

    • sprrut (16 комм.)

      Поставь вот это:

      if (

      $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 == 'static' OR /* Все статические страницы */

      $do == 'tags' OR /* Просмотр новостей по тегу */

      //$do == 'xfsearch' OR /* Просмотр новостей новостей по доп. полям */

      $subaction == 'allnews' OR /* Просмотр всех новостей пользователя */

      $subaction == 'newposts' OR /* Просмотр непрочитанных новостей для пользователя */

      $subaction == 'userinfo' OR /* Просмотр профиля пользователя */

      $dle_module == 'date' OR /* Просмотр архива новостей за год/месяц/день. Заменяет собой сразу все три следующие строки */

      //($year != '' and $month == '' and $day == '') OR /* Просмотр архива новостей за год */

      //($year != '' and $month != '' and $day == '') OR /* Просмотр архива новостей за месяц */

      //($year != '' and $month != '' and $day != '' and $subaction == '') OR /* Просмотр архива новостей за день */

      (intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */

      //($dle_module == 'main' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации для главной страницы */

      //($do == 'cat' and $category != '' and $subaction == '' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации только для категорий */

      //($do == 'cat' and $category != '' and $subaction == '') OR /* Просмотр любой категории */

      //($do == 'cat' and $category_id == 'X' and $subaction == '') OR /* Просмотр определенной категории. X заменить на id категории */

      $catalog != '' /* Просмотр каталога по буквенному идентификатору */

      ) $metatags .= <<<HTML

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

      HTML;

      И закрой метатегом админку и версию для печати ( в самом начале описание )

  85. *Gaara* (7 комм.)

    Добрый день.

    Попробовал сделать идеальный robots.txt

    В самом robots.txt прописал

    User-agent: *

    Disallow: /engine/

    Host: site.ru

    Sitemap: http://site.ru/uploads/sitemap.xml

    Ну и отредактировал engine.php

    Прошло примерно две недели и начали вылазить косяки. В исключённые страницы попали следующие нужные мне (а может и не нужные? ) страницы

    /engine/rss.php — Он наверное должен индексироваться. Как изящнее решить проблему?

    /engine/opensearch.php — по этому файлу есть сомнения. Он должен индексироваться?

    Теперь по engine.php

    В ноуиндекс попали категории. ВОт такого вида:

    /index.php?do=cat&category=kino

    /index.php?do=cat&category=seychas-v-prokate

    /index.php?do=cat&category=skoro-v-kino

    Если их оставить в индексе и продвигать именно категории, то чем это грозит? И какую строчку нужно закомментировать обратно?

    ($do == 'cat' and $category != '' and $subaction == '') OR /* Просмотр любой категории */

    ($do == 'cat' and $category_id == 'X' and $subaction == '') OR /* Просмотр определенной категории. X заменить на id категории */

    $catalog != '' /* Просмотр каталога по буквенному идентификатору */

    Эти строчки?

    • АлаичЪ

      У вас не включен ЧПУ на сайте? Если не включен, то ладно. Чтобы разрешить индексацию категорий, надо удалить строки, содержащие $do == 'cat'

      • *Gaara* (7 комм.)

        ЧПУ не включен. С категориями я разобрался. Спасибо. По поводу robots.txt что скажете?

        • АлаичЪ

          По поводу robots все нормально, все что внутри /engine/ и не должно индексироваться.

  86. *Gaara* (7 комм.)

    /engine/rss.php тоже не должен индексироваться?

    • Ванчик (41 комм.)

      Попробуйте просто отправить эти линки в запрос на удаление, думаю всё уйдёт.

      /engine/rss.php

      /engine/opensearch.php

  87. Давид (5 комм.)

    Привет всем. Всех с новым годом.

    Есть сайт в котором короткая и полная новость одинаковы. Стоит ли закрывать страницы пагинации от индексации? Они получаются дублями основных страниц. Но не может это привлечь к тому что ПС будут медленно индексировать сайт? Спасибо большое.

    • АлаичЪ

      При таком раскладе, я бы закрывал страницы пагинации. А для равномерной индексации воспользовался модулем LinkEnso и SiteMap.

  88. Олег (17 комм.)

    Здравствуйте, подскажите, я так понимаю эта строка раскоментированна $catalog != '' /* Просмотр каталога по буквенному идентификатору */ ?

  89. Xnokie (10 комм.)

    АлычЪ! А как тогда быть с этим?

    Disallow: /page/

    Disallow: */page/*

    В данном Robots.txt я запретил индексацию практически всех страницы сайта, за исключением страниц новостей и категории сайта. При этом я запретил индексацию страницы site.ru/page/2/, site.ru/page/3/, site.ru/категория/page/2/ и так далее, потому как эти страницы не несут точной информации, которую ищет пользователь. За исключением из индексации этих страниц отвечает директивы "Disallow: /page/" и "Disallow: */page/*". Первая директива исключает страницы сайта, такие как site.ru/page/2/, site.ru/page/3/ и т.д., а вторая исключает такие страницы как site.ru/категория/page/2/, site.ru/категория/подкатегория/page/2/ и тд.

    Как это прописать в engine?

    • sprrut (16 комм.)

      Вот так:

      (intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */

  90. Xnokie (10 комм.)

    И как тут админку скрыть...?

    • sprrut (16 комм.)

      P.S. Вот вам еще парочка бонусных советов:

      Найдите файл шаблона версии для печати print.tpl и откройте его. Сразу после <head> вставьте <meta name="robots" content="noindex">

      И как тут админку скрыть…?

      Откройте файл /engine/skins/default.skin.php и проделайте тоже самое.

      Внимательно читайте в самом НАЧАЛЕ.

  91. Дмитрий (4 комм.)

    Срочно прошу помощи!!!

    Добрый день Александр. Я изучаю ваш сайт и очень благодарен Вам за ваш труд. Изучаю ваши посты и стараюсь убрать баги DLE движка.

    И вот столкнулся с какой проблемой.

    Я увидел ваш пост о правильном robots.txt.

    Очень ждал авторитетный пост на эту тему и наконец то дождался. полагаясь на ваши знания сделал у себя изменения и жду. И тут столкнулся с проблемой для себя.

    Я продаю ссылки в гогетлинкс. И вот после внесенных изменений при подтверждении в сервисе о продаже начала появляться надпись — "На указанной вами странице отключена индексация при помощи тега meta, пожалуйста удалите его или разместите обзор на другой странице".

    Очень бы хотел оставить ваши изменения, по этому прошу подсказать что нужно сделать, для того чтоб " Правильный robots.txt" работал и я мог продавать ссылки.

    Заранее благодарю.

    С уважением Дмитрий.

    PS Хочу добавить то, что мне нужно разместить ссылку в НЕ проиндексированной новости, и тогда система примет. А система гогетлинкс «рубит» из-за причины, о которой я писал ранее.

    • cema93 (3 комм.)

      1) на страницах где вы продаёте ссылки уберите meta nofollow

      2) не продавайте ссылки на страницах, которые nofollow

      • АлаичЪ

        Комменты выше правильный :) Надо тщательно проверить, что на нужных страницах не запрещена индексация и там нет метатега noindex.

        PS Посмотрел твой сайт — так там все статьи закрыты в noindex — разумеется, биржа будет ругаться. Исправляй ситуацию пока не поздно и поисковики не выкинули сайт из индекса.

  92. cema93 (3 комм.)

    Сделал всё написано в посте.

    Для тех, кто пишет что "зачем индексировать..." я в шаблоне и в файлах движка все ссылки на nofollow страницы сделал тоже nofollow

    поэтому поисковики у меня и не знаю о страницах, которые nofollow

    не знаю как вам, а мне удобно. и со спамом так бороться проще...

  93. Дмитрий (4 комм.)

    Спасибо Александр и ребята!!! Я немного слаб в том что связано с кодами и т.д. Поэтому сразу не разобрался и чуть не натворил делов. Теперь вроде все подправил и наконец-то надеюсь на то, что уйдут дубли, которые так мешали, и я не знал как их убрать.

    Александр. Вопрос конечно не в тему данной статьи. Но никак не могу научиться делать таблицы в статьях. Перерыл кучу инфы и так ничего не получилось у меня. Подскажи, пожалуйста, как это можно сделать. А то мне нужна срочно таблица, и уже сколько не бьюсь, ничего не выходит.

    А еще лучше — напиши отдельную статью, посвященную данной теме.

    Заранее благодарю. С уважением Дмитрий.

    • АлаичЪ

      По поводу таблиц могу посоветовать только купить (или скачать) книгу по html и изучить азы. А писать пост о том, как создать таблицу, это примерно так же как если бы в 10 классе школы заставили учить букварь.

  94. Николай (4 комм.)

    Сделал все как описано в статье. Запретил от индексации все лишнее, страницы пагинации, просмотр новостей новостей по доп. полям, теги... и так далее. Но в все равно, все эти страницы гугл все таки проиндексировал!!! Движок 9.5.

    • sprrut (16 комм.)

      Посмотри в браузере код в начале страниц которые закрыл.

      Там должно быть такое — <meta name="robots" content="noindex,nofollow" />

      Если его нет, значит что то неправильно сделал.

      • Николай (4 комм.)

        Да, так и есть. Допустил ошибку, не удалил двойной слеш "//" в engine.php

  95. Саша (9 комм.)

    Есть вопрос по поводу мета-тегов и роботса. Как вывести мета-тег на отдельной нужной странице (например http://domen.ru/blok/7046-blok-tayna-kollekcionnoe-izdanie-dark-blabla-the-carnival-blabla-pc-rus.html ) как это сделать. Например было бы супер если б через .htaccess или еще как-то. Заранее спасибо

    • АлаичЪ

      Такое есть в новых версиях движка, например, в DLE 9.7 при редактировании новости в админке можно поставить соответствующую галочку.

  96. Михаил (12 комм.)

    Всем привет, прочитал выше, что раздела /catalog/ не должно быть на сайте, странно, но у меня при этом адресе сайт.ру/catalog/ открывается главная страница, как правильно поступить? закрыть в роботсе?

    Disallow: /catalog/

    или колдовать в .htaccess? Что подскажете?

  97. Саша (9 комм.)

    Тот же вопрос по роботсу, в папке cgi-bin, есть файл htaccess, в нем — Options -Indexes

    Что это означает? Это нужно закрывать?

    • Роман (31 комм.)

      Саша, по все вероятности скорее всего именно с этим файлом вам или вашим помощникам стоит по работать :)

      А по теме, файл htaccess во многих папках находится в папке cgi-bin в том числе, у всех он разный.

      Это не "корень домена", а корневая папка Вашего сайта — http://www.kharkovforum.com/archive/index.php/t-338745.html ссылка на тёрочку...

  98. Александра (3 комм.)

    Здравствуйте, после выполненных выше требуемых действий у меня перестала индексировать полная новость и статические страницы созданные через админ панель

    Вот что я сделала

    if (

    //$do == 'sitemap' OR /* Страница html Карта Сайта */

    $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 == 'static' OR /* Все статические страницы */

    $do == 'tags' OR /* Просмотр новостей по тегу */

    //$do == 'xfsearch' OR /* Просмотр новостей новостей по доп. полям */

    //$subaction == 'allnews' OR /* Просмотр всех новостей пользователя */

    //$subaction == 'newposts' OR /* Просмотр непрочитанных новостей для пользователя */

    //$subaction == 'showfull' OR /* Просмотр полной новости */

    //$subaction == 'userinfo' OR /* Просмотр профиля пользователя */

    //$dle_module == 'date' OR /* Просмотр архива новостей за год/месяц/день. Заменяет собой сразу все три следующие строки */

    //($year != '' and $month == '' and $day == '') OR /* Просмотр архива новостей за год */

    //($year != '' and $month != '' and $day == '') OR /* Просмотр архива новостей за месяц */

    //($year != '' and $month != '' and $day != '' and $subaction == '') OR /* Просмотр архива новостей за день */

    //(intval ($_GET['cstart']) > 1 ) OR /* Любые страницы пагинации */

    //($dle_module == 'main' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации для главной страницы */

    //($do == 'cat' and $category != '' and $subaction == '' and (intval ($_GET['cstart']) > 1)) OR /* Страницы пагинации только для категорий */

    //($do == 'cat' and $category != '' and $subaction == '') OR /* Просмотр любой категории */

    //($do == 'cat' and $category_id == 'X' and $subaction == '') OR /* Просмотр определенной категории. X заменить на id категории */

    $catalog != '' /* Просмотр каталога по буквенному идентификатору */

    ) $metatags .= <<<HTML

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

    HTML;

    создала robots.txt

    User-agent: *

    Host: мой-сайт.com

    Sitemap: http://мой-сайт.com/?do=sitemap

    • АлаичЪ

      Значит что-то не так сделали, т.к. с указанным выше кодом ни статические страницы, ни новости не будут закрыты.

      • Александра (3 комм.)

        Нет, не может быть, я могу код показать и написать все мелочи что я и где редактировала, в таком случаи поможете мне?

        • АлаичЪ

          Нет, не нужен мне код. Тогда просто удалите все правки, которые вносили по инструкции и спите спокойно.

          • Александра (3 комм.)

            Спасибо огромное свою ошибку нашла. все исправила все работает :)

  99. Александр (4 комм.)

    Версия 9.7, "обрабатывать неверные URL ЧПУ" включено, с категориями проблем нет, если на конце не ставить слешь, идет редирект на категорию со слешем, а как быть с тагеми? С ними это не работает, и получаются дубли:

    /tags/blabla/

    /tags/blabla

  100. Женя (4 комм.)

    А как отрабатывается при всех этих манипуляциях "ошибка 404"? Заранее спасибо за ответ!

    • АлаичЪ

      Правки, описанные в посте никак не касаются страниц ошибок.

  101. Дмитрий (3 комм.)

    Здравствуйте, хороший пост помог во всем.

    Подскажите как спрятать ссылку в шаблоне или текст в noindex?

    А то я пробовал

    <noindex>

    </noindex>

    и

    <!--noindex-->

    <!--/noindex-->

    а ссылка на cy-pr в индексе все равно торчит...

    Подскажите как правильно сделать?

    • АлаичЪ

      noindex не запрещает ссылки к индексации, так что смысла никакого нет.

      • Дмитрий (3 комм.)

        Вот это уже засада, а каким образом ссылку можно спрятать от индексации в шаблоне?

        • АлаичЪ

          Вариантов несколько: забить, удалить или вот — http://alaev.info/blog/post/4042

          • Дмитрий (3 комм.)

            Я понял, нужно было с этого и начинать.

            Разберусь короче...

  102. Женя (4 комм.)

    После проделанных операций перестал индексировать новости гугл. При этом стоит не разкоментированный "//$subaction == 'showfull' OR /* Просмотр полной новости */". В чем может быть проблема? Яндекс прекрасно продолжает индексировать.

  103. wj (1 комм.)

    Думаю всё же будет правильней приведенный в посте php код вставлять ПЕРЕД вот этой строчкой кода:

    if ( $disable_index ) $disable_index = "\n<meta name=\"robots\" content=\"noindex,nofollow\" />"; else $disable_index = "";

    И вместо:

    $metatags .= <<<HTML

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

    HTML;

    Использовать:

    $disable_index = true;

    ВотЪ.)

    Женя, если у тебя ГС — причина значит в этом и автор кода тут непричем. Гугл из своих соображений может сайт не индексировать, открою секрет.

    • АлаичЪ

      Твое предложение справедливо только для DLE 9.7 и старше. У меня же более универсальный вариант.

    • Женя (4 комм.)

      Дело в том, что до того как я поменял так как описано на сайте, у меня сайт индексировался чуть ли не каждые 6-8 часов. А теперь в отрез отказывается индексировать страницы именно гуглом. Яша индексирует практически сразу после добавления новости.

      • АлаичЪ

        Да поисковику никакой разницы нет каким образом код написан, важен результат. А результат в обоих случаях должен быть идентичным.

  104. Ден (34 комм.)

    Здравствуйте! АлаичЪ у меня к Вам вопрос: Не давно в вебмастере яндекс в поиске появились страницы вида site.ru/2012/11/21/бла-бла-бла.html. У меня по вашей инструкции прописан мета тег роботс. Вообщем там есть строка $dle_module == 'date' OR /* Просмотр архива новостей за год/месяц/день */. Проверил исходный код страницы что в поиск попала с датой, и не обнаружил там строки <meta name="robots" content="noindex,nofollow" />. Вставил три других строчки (что по отдельности — год/месяц/дата, — аналогично. В чём может быть проблема? Правила на остальные страницы то работают.

    • АлаичЪ

      Потому что site.ru/2012/11/21/бла-бла-бла.html это просмотр полной новости при использовании 3 вида ЧПУ, а не страницы архива.

      • Ден (34 комм.)

        То есть получается их можно закрыть только robots.txt ? Использую ЧПУ 2. Двиг 9.7

        • АлаичЪ

          Вообще, мне кажется, при смене типа ЧПУ должен происходить редирект на новый адрес, но я не уверен на счет именно 3 типа ЧПУ. Ну а так, да, закрывать через роботс.

        • Юрий (23 комм.)

          1. Если вы меняли тип ЧПУ с тип 3 на тип 2 или тип 1, то вам нужно включить опцию в настройках скрипта "Обрабатывать неверные URL ЧПУ". При включении данной опции, будет осуществляться 301 редирект на верный адрес. Данная опция полезна для SEO и при смене адресов новости.

          2. Если у вас и сейчас включен ЧПУ 3-го типа, то зачем вам закривать к индексации ваши новости?!

  105. Влад (1 комм.)

    У меня вопрос по поводу этой строчки Disallow: /engine/ и файлов, прикрепленных к новости для скачивания, которые имеют урл следующего вида http://prezented.ru/engine/download.php?id=

    Эти файлы не индексируются, хорошо ли это?

    • АлаичЪ

      Ну, во-первых, это не прямые ссылки на файлы, а ссылки на скачивание, что есть разные вещи. Во-вторых, эти ссылки не должны индексироваться, да и вообще незачем индексировать файлы.

      Так что все окей!

  106. Кирилл (1 комм.)

    А что делать, если проиндексировались страницы с комментариями новости? То есть в поиске новость продублировалась со страницами комментариев.

    • АлаичЪ

      Если тебе не надо, чтобы эти страницы индексировались, можешь запретить их в robots.txt (Disallow: /*/page,1) или использовать вот такой код для приведенной в посте схемы:

      ($subaction == 'showfull' and (intval ($_GET['cstart']) > 1)) OR

  107. makeihi (4 комм.)

    Всем привет!

    Александру огромное спасибо, за человеческое терпение и уважение к другим!

    Ближе к теме. Наблюдаю такую картину:

    в индексе Yandex оОооооочень... много исключенных страниц, (Документ запрещен в файле robots.txt), все они начинаются с:

    /engine/go.php?url=aHR0cDovL20uc2VhcmNoLnJhbWJsZXIucnUvc2VhcmNoLz9xdWV..........

    Вопрос: Что это значит и как с этим бороться?!

    Всем заранее огромное спасибо! ...Да и Удачки!

    • Денис (34 комм.)

      У тебя внешние ссылки на сайте заключены в тег leech. Ссылки в этом теге для поисковиков "непонятные". По этому яндекс их просто исключил. В общем у тебя внешние ссылки запрещены к индексации. За это отвечает правило Disallow: /engine/ которое у тебя прописано в robots.txt

      • makeihi (4 комм.)

        Денис!

        Огромное спасибо, да есть такое, ссылки есть скрытые этим тег leech, но есть одно но, а именно, а это не вредит положению сайта в глазах Yandex или как говорится — нечего страшного!? Посоветуйте как поступить или что надо изменить?! Спасибо!

        • Денис (34 комм.)

          Это мусор, чем меньше мусора, тем легче поисковику, не только Яндексу. Как поступить? Да никак. Просто радуйтесь что он их исключил :)

          PS Почитайте о вреде внешних ссылок.

          • makeihi (4 комм.)

            Денис!

            Еще раз спасибо, за помощь! Удачи Вам!

    • Андрей (2 комм.)

      Я смог совместить автоматическое "личирование" всех новых внешних ссылок с третьим методом из этой статьи http://alaev.info/blog/post/4042#comment-14486

      В итоге получается, что новые внешние ссылки ПС не индексируют и, следовательно, в индексе их не будет. Через поиск и замену в ДЛЕ можно даже все существующие ссылки сделать через leech, а потом автоматически обновить все новости и все эти ссылки станут недоступны ПС.

  108. Юрий (23 комм.)

    При использовании данного метода запрета индексации ненужных страниц поисковиками, все же предлагаю в robots.txt прописать следующие строки:

    User-agent: *

    Disallow: /engine/

    Disallow: /catalog/

    Disallow: /*php?*

    Host: site.ru

    Sitemap: http://site.ru/sitemap.xml

    Disallow: /engine/ — вы предложили, а я оставил :) и полностью с вами согласен.

    Disallow: /catalog/ — по тому, что метатег не срабатывает на странице http://site.ru/catalog/ А она существует! Хотя выше утверждалось обратное.

    Disallow: /*php?* — так как страницы типа http://website.com/index.php?subaction=newposts/ или http://website.com/index.php?do=lastnews/ (со слешем в конце) или http://website.com/index.php?blabla (можно и без слеша) могут существовать и они дублируют главную страницу. Конечно было бы лучше 301 редирект сделать на главную с таких несуществующих страниц, как это сделать я не знаю, по этому хоть в robots.txt предлагаю закрыть. Но здесь у меня есть сомнение, не закрываю ли я этим правилом чего-то важного. Вроде нет, но может я не все учел. Буду благодарен если поправите меня.

    Писать что-то еще в robots.txt не вижу смысла.

    Спасибо за внимание! :)

    • АлаичЪ

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

  109. Андрей (2 комм.)

    Подскажите, как закрыть несколько категорий? Пытаюсь вводить их ID через запятую, но тогда ни одна не закрывается.

    Я имею ввиду эту запись:

    //($do == 'cat' and $category_id == 'X' and $subaction == '') OR /* Просмотр определенной категории. X заменить на id категории */

    • АлаичЪ

      В посте об этом написано, читайте внимательнее :)

  110. 533312 (11 комм.)

    User-agent: *

    Disallow: /cgi-bin/

    Disallow: /tmp/

    Disallow: /backup/

    Disallow: /engine/

    Disallow: /language/

    Disallow: /upgrade/

    Disallow: /autobackup.php

    Disallow: /admin.php

    из этого что можно убрать? в коде нет этих пунктов чтобы убрать, если с роботс убрать ничего не будет?

    • Дмитрий (2 комм.)

      User-agent: *

      Disallow: /cgi-bin/ — удалить

      Disallow: /tmp/ — удалить

      Disallow: /backup/

      Disallow: /engine/

      Disallow: /language/ — удалить

      Disallow: /upgrade/ — удалить строку и папку (читаем readme по установке dle)

      Disallow: /autobackup.php — удалить строку, фаил переименовать (читаем readme по установке dle)

      Disallow: /admin.php — удалить строку, фаил переименовать (читаем readme по установке dle)

  111. Алексей (1 комм.)

    Здравствуйте,интересная статья и метод,нигде такого не видел.

    Вот я сейчас занят разработкой игрового сайта(скачивание игр) и само собой,там нечего закрывать,кроме админки,не нашел в вашем коде этой строки,добавьте пожалуйста и подскажите,стоит мне что то ещё закрывать?

    Ведь я в этом новичок :)

    • АлаичЪ

      Прочитай бонусные советы, там все написано.