Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Запрет посещения для роботов


Автор: Testernew 9.2.2014, 13:11
Интересует следующий вопрос, достаточно ли запрета в файле robots.txt  вида:

Код

User-agent: *
Disallow:


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

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

Автор: ksnk 9.2.2014, 17:41
Testernew, задача странная. Сайты, вообще говоря, пишутся и для роботов smile  Без нормального поискового рейтинга, к примеру, никакой разумной монетизации не бывает. Не говоря о то, что поисковый рейтинг - ценность сам по себе.

Про файл robots.txt лучше почитать на http://help.yandex.com/webmaster/controlling-robot/robots-txt.xml и на https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt/ Сам файл имеет смысл для разумных роботов, типа yandex или google. Они сначала считывают этот файл, анализируют его, потом действуют по его правилам. Всякие самодельные боты таким умом не обладают. Банить google и yandex неразумно, проще ограничить их аппетиты с помощью robots.txt

Боты, которые позиционируют себя как поисковые, обычно имеют уникальный User Agent и не меняют его. Так что банить разумно именно по user Agent'у. Ip адреса у ботов разнообразны и меняются. Нужных агентов отлавливать по логам.

Автор: Gromdron 9.2.2014, 22:33
У вас опечаточка.

Вы описали:

Код

User-agent: *
Disallow:


В то время как правильный код будет таким:

Код

User-agent: *
Disallow: /


Есть еще такая штука: Crawl-delay: ***, где вместо *** - количество секунд, через которое робот может вернуться на сайт чтобы продолжить индексацию.

P.S. Роботы все равно будут лезть на сайт, другое будут ли они его индексировать и выдавать.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Запрет-посещения-для-роботов-id52f75474ae201524768b4567#findElement_E7045_52f7d7f2ae2015f659d39a02_0

Автор: Testernew 13.2.2014, 10:42
Цитата(ksnk @ 9.2.2014,  17:41)
Testernew, задача странная. Сайты, вообще говоря, пишутся и для роботов smile  Без нормального поискового рейтинга, к примеру, никакой разумной монетизации не бывает. Не говоря о то, что поисковый рейтинг - ценность сам по себе.

Про файл robots.txt лучше почитать на http://help.yandex.com/webmaster/controlling-robot/robots-txt.xml и на https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt/ Сам файл имеет смысл для разумных роботов, типа yandex или google. Они сначала считывают этот файл, анализируют его, потом действуют по его правилам. Всякие самодельные боты таким умом не обладают. Банить google и yandex неразумно, проще ограничить их аппетиты с помощью robots.txt

Боты, которые позиционируют себя как поисковые, обычно имеют уникальный User Agent и не меняют его. Так что банить разумно именно по user Agent'у. Ip адреса у ботов разнообразны и меняются. Нужных агентов отлавливать по логам.

Да.. задача не обычная. но она именно такая, как можно красиво или лучше блокировать по user-agent если в нем к примеру встречается 'bot' ?

Автор: ksnk 13.2.2014, 11:42
И в чем проблема? user-agent находится в $_SERVER['HTTP_USER_AGENT']
проверить, есть в нем слово bot или нет можно регуляркой или strpos'ом.

Обнружив ненужного бота - можно выдавать ему 404 статус и страницу-затычку - "боты геть...".

Автор: Testernew 13.2.2014, 22:50
Цитата(ksnk @ 13.2.2014,  11:42)
И в чем проблема? user-agent находится в $_SERVER['HTTP_USER_AGENT']
проверить, есть в нем слово bot или нет можно регуляркой или strpos'ом.

Обнружив ненужного бота - можно выдавать ему 404 статус и страницу-затычку - "боты геть...".

С этим проблем не будет, часто бывают сессии где в user-agent не фигурирует bot или что то подобное.. но whois выдает что этот pool ip принадлежит например компании  google, собственно вопрос: значит ли это на сайт заходит  не bot а сотрудник компании? или есть какой то вне гласный стандарт что боты должны обозначать себя в user-agent словом bot или каким либо интуитивно понятным термином?

Автор: capitan 13.2.2014, 23:33
поиск иногда помогает: http://xdan.ru/How-to-detect-on-PHP-if-a-page-is-visited-by-a-search-bot.html
нужно только найти актуальную базу пауков и допилить функцию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)