Автор: Бен Гудселл (Ben Goodsell) – руководитель отдела поискового продвижения в RKG Merkle. Специалист в области технического SEO, имеет опыт продвижения сайтов в социальных медиа, специализируется на разработке стратегий контентного продвижения и линкбилдинге. Регулярно сотрудничает с крупными брендами.
Источник: SearchEngineLand.com
Любому грамотному оптимизатору в своей профессиональной деятельности когда-либо доводилось анализировать лог-файлы для того, чтобы определить поведение поискового робота Googlebot. Однако мало кто представляет себе, насколько эффективным может оказаться этот подход для выявления нежелательных ботов, которые регулярно посещают сайт. Главная опасность таится в том, что эти роботы автоматически исполняют сценарий JavaScript, наводняя аналитику ложными данными, нанося вред ресурсу, незаконно копируя его контент и т.д.
Согласно данным ежегодного отчёта агентства Incapsula, доля неестественного трафика, поступающего на сайты, в среднем составляет 56%. При этом в 29% случаев боты, приходящие на ресурс, содержат вредоносное ПО и наносят заметный ущерб. В ходе исследования экспертная группа агентства проанализировала статистику 20 тыс. веб-сайтов разного масштаба за 90-дневный период. Наблюдения позволили выделить ещё один заметный момент: чем более крупный и узнаваемый бренд представляет сайт, тем более очевидной и желанной целью он становится для ботов.
Главная цель этой статьи – рассказать специалистам отрасли о том, с чего следует начинать аудит сайта по данному направлению и как грамотно анализировать лог-файлы при помощи Excel для выявления «недобросовестных» ботов и последующей их блокировки на уровне сервера. Также автор статьи расскажет о том, как устранить искажения в отчётах Google Analytics.
Находим лог-файлы
Как известно, сервер фиксирует все обращения к сайту и хранит их в виде текстового файла со списком. Не важно, заходит ли на сайт реальный пользователь (к примеру, через браузер Firefox) или же новые страницы ресурса сканирует Googlebot – все эти активности фиксируются в специальном файле. Расположение этих файлов зависит от типа сервера или хостинга.
Так, если владелец ресурса использует платную панель управления веб-хостингом cPanel, то файл, записывающий все обращения к сайту, будет располагаться под отдельной ссылкой:
В интерфейсе сервера Apache путь к файлу лога будет таким: /var/log далее в поддиректории следует запустить команду access.log – это позволит быстро обнаружить лог-файлы на сервере.
Если в качестве хостинга используется набор серверов от Microsoft IIS (Internet Information Services), то путь будет таким: Панель управления – Администрирование – Internet Information Services (IIS) Manager – Выбрать веб-сайт – после этого нужно правой кнопкой мыши кликнуть по вкладке Свойства – выбрать вкладку Веб-сайт – Свойства – Основные свойства. Для англоязычной версии продукта последовательность действий будет такой: Control Panel -> Administrative Tools -> Internet Services Manager -> Select website -> Right-click then Properties -> Website tab -> Properties -> General Properties tab.
Вычисляем количество хитов на один IP-адрес и считаем число заходов User Agent’ов
После того как все лог-файлы были обнаружены, необходимо объединить их в одном файле и загрузить в Excel любым удобным методом. Учитывая объёмы отдельных лог-файлов, сделать это зачастую бывает очень непросто. В то же время, чтобы проделать указанную выше операцию для небольших и средних сайтов, мощности одного стандартного компьютера будет вполне достаточно.
На практике набор действий сводится к следующей последовательности. Все файлы, расположенные в директории .log files, необходимо объединить и поместить в новый файл формата .txt, используя стандартный текстовый редактор. После этого нужно запустить Excel, разбив текст по колонкам, используя для разделения пробел и выравнивая впоследствии заголовки столбцов.
Рассчитываем количество хитов на один IP
После того как все логи собраны и объединены в таблице Excel, становится гораздо легче рассчитать количество загрузок страниц сайта на один IP-адрес.
Далее нужно выполнить действия в такой последовательности:
- Сформировать сводную таблицу, проанализировать количество Client IP и сделать расчёт.
- Затем необходимо скопировать полученную таблицу; переименовать существующие столбцы в «Client IP» и «Хиты»; отсортировать список по нисходящей; добавить колонку User Agent.
Вычисляем User Agent по IP
На заключительной стадии необходимо выявить потенциально опасных ботов. Для этого придётся установить, с какого IP-адреса осуществлял вход на сайт тот или иной User Аgent, и какой из роботов оказал на ресурс наибольшее негативное воздействие. Чтобы проделать эту операцию, необходимо повторно обратиться к сводной таблице и указать в качестве переменной User Аgent в каждую строку секции сводной таблицы (графа Row Label на рис. выше).
Теперь нахождение роботов Аgent с привязкой к IP станет гораздо более простой задачей. На скриншоте ниже видно, что User Agent с IP-адреса устройства, расположенного в Китае, заходил на сайт на 80 тысяч раз чаще, чем другие роботы.
Блокируем нежелательный IP-адрес
Ключевым этапом всей деятельности становится блокировка доступа к сайту User Agent'а с нежелательного IP-адреса, а также исключение этих данных из сервиса статистики.
Чтобы заблокировать статистику посещений с нежелательного IP в Google Analytics, придётся создать специальный фильтр. Для этого нужно войти во вкладку «Администратор» и выбрать пункт «Аккаунт» , в котором будет создаваться фильтр. Затем выбрать пункт «Фильтры», далее +Новый фильтр. После этого нужно переключиться на пункт «Встроенный» и выбрать стандартный тип фильтра: «Исключить трафик с IP-адресов» (Exclude traffic from the IP addresses). Далее в специальном поле можно перечислить все нежелательные IP.
Совет: Сервис Google Analytics автоматически блокирует данные, поступающие от всех известных краулеров из списка IAB. Чтобы сервис аналитики перестал учитывать переходы от этих роботов, достаточно обратиться к вкладке «Администратор» снизу от пункта меню «Посмотреть Настройки» можно увидеть раздел «Фильтрация роботов» («Bot Filtering») там же можно выбрать пункт «Exclude all hits from known bots and spiders». Самым правильным вариантом будет создавать новый фильтр всякий раз, когда вы меняете настройки профиля.
Если же владелец сайта использует аналитику от Omniture, исключить из статистики данные по нежелательным IP можно следующим способом:
- Опция Exclude by IP позволяет игнорировать данные для 50 IP-адресов.
- Опция Vista Rule предусмотрена для крупных компаний и позволяет увеличить число нежелательных IP.
- Функционал Processing Rule позволяет создавать специальные правила и блокировать данные о переходах на сайт с нежелательных IP.
Блокировка IP на уровне сервера
Аналогично тому, как вычисляется расположение лог-файлов, производится вычисление сервера, которому принадлежит конкретный IP-адрес, и осуществляется его блокировка.
При работе с cPanel имеет смысл воспользоваться возможностями IP Address Deny Manager. Нежелательные IP-адреса будут заблокированы навсегда.
Для Apache рекомендуется использовать модуль mod_authz_host, кроме него можно использовать .htaccess.
Те, кто пользуются IIS, могут заблокировать все нежелательные IP на уровне сервера в Open IIS Manager (Features View -> IPv4 Address and Domain Restrictions -> Actions Pane -> Add Deny Entry).
Итоги и выводы
Сегодня сторонние решения, предназначенные для выявления неестественного трафика на сайты и обнаружения ботов, позволяют делать это в режиме реального времени. При этом они умеют анализировать не только IP-адреса и коды юзерагентов, но и параметры HTTP-запроса, поведение робота на сайте и целый ряд других факторов.
Помимо подобных решений, владельцы ряда сайтов всё чаще применяют такой инструмент, как reCAPTCHA. Новая формула защиты от Google еще раз позволяет убедиться, что на сайт приходят реальные пользователи, а не роботы.