Плагин Robostat для сбора статистики посещения сайта роботами

Собственно началось все с того, что решил написать «правильный» плагин, с поднятием репозитория svn и всей фигни. С правильными заголовками, нормальной структурой. В общем — получить опыт написания правильного плагина.

С чего-то монстрообразного начинать не хотелось, я почесал голову и решил написать вот этот плагинчик.

Плагин Robostat собирает и отображает статистику посещений сайта различными роботами и не только. Фактически он анализирует поле заголовка User-Agent на наличие заданной подстроки и увеличивает соответствующий счетчик.

Процедура инсталляции проста и непринужденна. Плагин записывается в папку plugins livestreet'а и активируется на странице плагинов. С этого момента начинается подсчет статистики посещения роботами, которую администратор сайта может посмотреть на страничке
http://вашсайт/robostat

Но при условии, что в вашем шаблоне есть хук html_head_end. Искал системный хук, чтобы не зависеть от шаблона, но не нашел… Может кто знает?

Список роботов и их подстрок из User-Agent располагается в файле конфигурации плагина — config/config.php. Я не стал заводить отдельную таблицу в базе данных, потому, что список не большой, изменение его дело редкое, а используется он при открытии каждой страницы, что может вызвать дополнительную нагрузку на БД. И заморачиваться с кэшированием тоже нет смысла.

В «дистрибутиве» находятся настройки для 6 роботов:
  • Yandex
  • Google
  • Rambler
  • MSN
  • Yahoo!
  • Alexa
По аналогии можно подключить еще какой-нибудь робот, или, даже, начать подсчитывать сколько у вас было пользователей с Internet Explorer, Opera, Firefox и т.п. и т.д. Все зависит от строчки из User-Agent. Возможно нужно поменять какие-то подстроки для роботов, вставил то, что нашел в интернете :)

Дистрибутив доступен здесь.

UPD: поднял демо-сайт

23 комментария

avatar
а где можно поглядеть на результаты которые доступны на вашсайт/robostat ??
avatar
всмысле демо есть?
avatar
Нет, я задумываюсь о демо-сайте для своих поделок, но пока еще не разродился :)

Ну там, собсвенно просто табличка в каждой строке которой название робота, число посещений за сегодня, вчера и общее число посещений. Все очень аскетично. Задачи смотреть динамику не стояло, хотя может и имеет смысл что-то такое сделать.
avatar
Да, и доступна она, соответсвенно, только админу.
avatar
Возможно что-то не понял, а зачем нужно подсчитывать кол-во посещений роботами?
  • Mmka
  • 0
avatar
Ну тут несколько моментов. Во-первых для «молодых» сайтов бывает интересно как их индексируют поисковые системы, по крайней мере на первых порах. Во-вторых — это уже скорее от любознательности — можнож набирать какую-то статистику не только по поисковым системам но и по посещениям пользователей с определенными браузерами, с каких-то операционных систем и т.п. и т.д. Ну и в-третьих… писал я этот плагин чисто из исследовательских целей для себя. Но решил поделиться, вдруг кому-то интересно будет, в связи с «во-первых» и «во-вторых»… Ну или просто так :)
avatar
Гугл аналитикс? Инструменты веб мастера? Яндекс метрика? etc.
avatar
Ну во-первых я не видел ни в метрике ни в гугл-аналитике информацию по индекированию сайта, хотя допускаю свое невежество :)) Да, по браузерам/операционным системам есть. Во-вторых… см. пункт «в-третьих» из предыдщего моего коммента :)
avatar
grep нужный_user_agent /var/log/nginx/nginx_access
мм?
avatar
:)))))) И счеты в руки, для получения экзистенциального удовольствия от проделанной работы… ;)
avatar
а ну тогда так:
grep нужный_user_agent /var/log/nginx/nginx_access >> result.txt 

открываем блокнотом и смотрим кол-во строк)))
правда я вообще не понимаю, нужно ли это все))
avatar
Тогда уж
grep нужный_user_agent /var/log/nginx/nginx_access | wc -l

:))))

Но я имел в виду нафига ручками, нет статистики… а нафига нужно? Ну… Мне, например, любопытно как начинают индексироваться и индексируются ли вообще мои новые проекты :)
avatar
Даже проще =)
Ну смотрите сами, вам виднее ;)
avatar
Нет робота Yahoo! Имя другое.
avatar
Конечно, так же как и нет роботов Yandex, Google и других :) Все боты называются по-другому. А перечислены системы. Робот системы Yahoo! по имени slurp. :)
avatar
Советую сделать по аналогии с модулем в phpbb3.
avatar
Ни малейшего представления о чем вы :) Никогда не имел дел с phpbb3, не говоря уже о модулях к ней.
avatar
Смотрим, например, на сайт otdamdarom.by/
Внизу есть строка «Зарегистрированные пользователи: Yandex [Bot], YandexBlog [Bot]»
В админке есть вкладка «Управление поисковыми роботами (ботами)»
Там их около сотни. Возьмите в качестве примера.

Кстати, за последний год пришли только
Google [Bot]
YandexBlog [Bot]
Yandex [Bot]
Google Feedfetcher
Yahoo [Bot]
Majestic-12 [Bot]
Gigabot [Bot]
MSN [Bot]
Exabot [Bot]
Baidu [Spider]
MSNbot Media
YandexSomething
ichiro [Crawler]
Alexa [Bot]
Ask Jeeves [Bot]
W3C [Validator]
Google Desktop
Google Adsense [Bot]
Heritrix [Crawler]
Yahoo MMCrawler [Bot]
avatar
А-а-а-а… Вы имеете в виду сделать какой-нибудь «информер», скажем для футера, о последних посещавших ботах?
avatar
Отличный Плагин, спасибо, будем тестировать..:)
А нужен он для того что бы знать посещает ли Вашь сайт роботы поисковых систем, и как часто посещает… А если посещает не очень хорошо сообщать в надлежащие инстанции..;)
avatar
Спасибо. Тестируйте на здоровье :)
avatar
Спасибо за плагин. Как раз хотел открыть новую тему с подачей идеи о таком плагине, а тут вот оказывается он есть, да еще и под 0.5.1 работает!
avatar
Ну там, особо, «не работать» не чему :)

Спасибо за отзыв :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.