Несколько месяцев назад у нас сильно вырос показатель отказов по Google Analytics. Мы сделали стандартный набор действий, который рекомендуют делать в Сети: создали в аналитике представление «без пауков и ботов» (настройка «Фильтрация роботов» в представлении), проверили качество настройки кода Analytics, проверили и настроили длительность сессии и так далее. Все это заняло время, но не дало результатов. Показатель отказов в некоторые дни превышал 90%. При этом качество контента на нашем сайте или структура входящего трафика никак очевидным образом не менялась. Это просто «случилось в одночасье» и всё. Поскольку ничего подобного описанного в Сети я не нашел, решил описать как мы нашли и исправили проблему и снизили показатель отказов до приемлемых 42-55%.

Приведу скриншот для иллюстрации исходной проблемы:

image

Поскольку все стандартные схемы результата не дали, пришлось думать самим и искать проблему. Analytics ничем не помог, и я начал проверять через Яндекс.Метрика. Общие показатели по Метрики были довольно приемлемые (до 10% отказов). Прочитав несколько статей о том почему отказы в Метрике могут быть приемлемые, а в Analytics зашкаливать, стало понятно где искать проблему. Если коротко: Метрика считает отказами все посещения, которые длились меньше 15 секунд, а Analytics – все, после которых не было других посещений страницы. Таким образом я начал смотреть отчет по длительности посещений в Метрике и Аналитиксе и понял, что у меня нереально большой процент посещений с длительностью 0:00 секунд, до 50% дневных сеансов. Еще несколько прочитанных статей позволили отбросить гипотезу о не срабатывающем коде и ботах, которые пробираются через фильтр Аналитикса. Никаких признаков реферального спама у меня тоже не было.

В итоге я просто отфильтровал в Вебвизоре посещения с длительностью 0:00 и решил попробовать найти закономерность. Вот что я получил:

image

Каждый «посетитель» заходил со своей подсети, с явно указанным User Agent, разрешением экрана и операционной системой, то есть для Метрики и Analytics он никак не воспринимался как бот.

image

image

Единственное, что его выдавало это ритмичный характер посещений каждые 1 час 1 минуту и 0 длительность просмотра. Я скинул скриншоты нашему сисадмину Андрею и попросил посмотреть, что это такое, по логам сервера. Первый же IPшник заставил нас удивиться: к нам ходил кто-то из подсети Лига.Закон.

есть айпишник за 4:56, сейчас проверю другие заходы
inetnum: 193.150.7.0 — 193.150.7.255
netname: LIGA-UA-NET2
remarks: LIGA ZAKON


Всего по логам нашлось 43 IP-адреса, которые обращались к разным страницам нашего сайта с разных провайдеров, с разными User Agent.

По RIPE ничего интересного мы не нашли, ничем не примечательные IP из обычных подсетей. Кроме того, что боты ходили с интервалом 1:01 больше ничего явно общего в них не было.

Весь найденный список мы заблокировали в iptables.

В течении суток мы еще выловили несколько новых IP, набросали алгоритм автоматической фильтрации подобного бот-трафика на случай, если после блокировки одних ботов, им на смену придут новые. Однако больше никого подобного не нашли. Было только пара любопытных User Agent, но никого с интервалом 1:01.

Еще через сутки показатель отказов по Google Analytics начал приходить в норму и резко упал с 89% до 42,75%.

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

image

Гипотезы о том «что это было» у нас всего две.

Первая, это кто-то из нас же неправильно настроил каких-то мониторных ботов. Мы одно время игрались с разным софтом для проверки состояния сервера. Могли что-то включить и забыть. Минус этой теории в том, что я не помню ни одного сервиса, который бы декларировал что они отправляют запросы из разных подсетей на разные страницы сайта с разных User Agent. Поэтому скорее всего это не так.

Вторая гипотеза: это какая-то неизвестная широкой общественности форма бот-атаки, возможно направленная как раз на повышение показателя отказов и, как следствие, пессимизации в поисковой выдаче Google.

Если вы тоже с таким сталкивались, буду рад комментариям. Если вам будут нужны более подробные инструкции о том, как мы это искали и блокировали, пишите тоже.
Поделиться с друзьями
-->

Комментарии (23)


  1. MaximChistov
    13.10.2016 22:23

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


    1. shifttstas
      01.02.2017 19:05

      Шлюз еще не брали? с ним опыта нет?


      1. MaximChistov
        14.10.2016 07:45

        я это к тому, почему у них аж 42% отказов считается нормой


        1. evergreenteam
          14.10.2016 14:10

          Для обычных сайтов не конверсионных, 42% отказов это приемлемо.
          Вот статистика на которую мы опираемся, она довольно общепринятая в разных источниках:

          Магазины, которые работают со своей целевой аудиторией, имеют показатель отказа 20-40%
          Одностраничные продающие сайты имеют показатель отказа до 80%. И это считается нормальным
          Для новостных и информационных сайтов этот показатель около 50%
          Интернет-сервисы – 20-30%. Обычно не больше.
          Разные энциклопедии, WiKi и т.п. 10-30%


          Причина того что у нас 42% это норма в том что у нас довольно много «случайного» трафика, то есть человек открыл нас, например с ссылки с логотипа, посмотрел «кто это?» и закрыл. Для аналитикса будет отказ.


    1. HelpOP
      14.10.2016 14:05

      В статье говорится что боты заходят раз в 61 минуту, думаю это один из основных критериев по которому происходит бан.


      1. evergreenteam
        14.10.2016 14:37

        Да. Еще проверяем что ходят на одну и ту же страницу. То есть ip совпадает, интервал посещений 1 час ± 10 минут, посещают одну и ту же страницу.


  1. TimsTims
    13.10.2016 22:43

    > Вторая гипотеза: это какая-то неизвестная широкой общественности форма бот-атаки
    Что-то совсем несолидно даже бот-атаку с 42х IP-шников проводить…


  1. SlavikF
    14.10.2016 01:11

    >> бот-атака, возможно направленная как раз на повышение показателя отказов и, как следствие, пессимизации в поисковой выдаче Google.

    Может я в танке, но действительно ли Google использует информацию из Google Analytics для ранжирования сайтов? Если так, то что происходит, если я не использую Google Analytics? Это «опускает» мой сайт?


    1. pokryshkin
      01.02.2017 19:55
      +2

      У меня 2 года и только старые выключатели/силовые модули. Т.е. про их микрики и т.п. ничего не скажу, все остальное — согласен, но:
      очень редко не срабатывают, квартира небольшая, стены тоненькие.
      п.6 — хороший двусторонний скотч (тонкий, желтый, у меня марка unibob) решил эту проблему, плюс он аккуратно снимается с обоев, не повреждая их.

      От себя: в старый комп — файлопомойку воткнут адаптер PC1116, на рабочем компе простенькая софтина для руления светом. Я фрилансер, работаю из дома, так что от компа даже для включения света не отхожу :)
      Дополнительно работают openhab и MQTT.
      2 года эксплуатации — батарейки все еще живы.

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


  1. JIenpukoH
    14.10.2016 07:47

    На самом деле статистику Google Analytics очень легко накрутить и вполне возможно что конкуренты просто портят вашу статистику.


    1. Ruslan_S_Tula
      16.10.2016 19:32

      +1. Сделать такое очень легко, например сервис livesurf справляется с этой задачей. И стоить будет копейки. Ни один раз видел как люди накручивали 2-4 месяца так себе посещалку, а потом пытались продать сайт на том же telderi или pr-cy


  1. izuware
    14.10.2016 14:11

    Возможно этой лиге попалась задачка со словосочетанием на которое охотно откликается ваш сайт, но при открытии овыясняется что это не то… Поисковые запросы что говорят?


    1. evergreenteam
      14.10.2016 14:34

      Лига.Закон это система для юристов и бухгалтеров со сводкой актуальных законов. Трудно понять что она могла искать каждый час на статье про CRM-автоматизацию, например.


  1. FlameArt
    14.10.2016 14:12

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

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

    Менее реальный вариант: это браузерный бот (с эмуляцией JS итд), который визуально выдаёт пользователю набор целевых страниц. Это может быть, например, стенд с сайтами, которые идут по телеку\монитору в каком-нибудь зале, по типу новостных, чтобы забить экраны разной, но похожей по дизайну картинкой. Или какой-нибудь каталог бизнес-платформ, который регулярно кеширует данные на стороне пользователя.


    1. evergreenteam
      14.10.2016 14:21

      Мы тоже думали про ботнет, конечно. Но сами запросы это обычные пинги, действительно – ничего кроме html и заголовка 200 ОК сервер им не отдает, если судить по логам. Разовьем мысль. Предположим что у нас на сервере есть некоторое скрытое условно-вредоносное ПО, которое, например, анализирует логи, вылавливает элементы этого самого ботнета, например, суть заключается в том чтобы просто засветить ip-шники, оставим за кадром зачем, и отправляет им какие-то данные. Таким образом вся эта система работает абсолютно автономно и незаметно. Для антивирусов и прочих антишпионов она вообще не заметна, потому что ничего не происходит. Вопрос тогда, почему это всё прекратилось, после блокировки 42 айпишников?

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


      1. FlameArt
        14.10.2016 21:17

        Вопрос тогда, почему это всё прекратилось, после блокировки 42 айпишников?


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

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

        А версий не так уж и много: тот факт, что запросы идут из разных подсетей, на самом деле убирает все варианты с централизованными ботами типа SEO-чекеров, которые тут предлагали, любительских поисковиков и такого плана. Децентрализованно могут быть или ботнеты или каталоги всякие, которые запускаются программой c браузером. Могут быть и конкуренты, но слабо верится в такие малые объёмы от них, да и завышать отказы — совсем какая-то эфемерная борьба с ветряными мельницами.


        1. evergreenteam
          16.10.2016 22:20

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


  1. evergreenteam
    14.10.2016 14:23

    Коллеги, простите, я случайно отклонил чей-то комментарий, если что- повторите, пожалуйста.
    Насколько я помню, коммент был о том, была ли зависимость в страницах. Отвечаю — не было.


  1. Kugata
    14.10.2016 14:24

    Было такое же один в один, только заходил спустя ровно 1 час, а не через час и 1 минуту.
    Методом тыка мы вроде (ну почти) поняли в чем дело — это были SEO сайты, с которыми мы тоже игрались, забытые нами они продолжали мониторить сайт и проверять.


    1. evergreenteam
      14.10.2016 14:25

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


  1. Logrise
    14.10.2016 14:25

    Разница в ЯМ и ГА по отказам — служебный хит «неотказ», который ЯМ отправляет через 15 секунд по умолчанию, а ГА нет. Создайте с помощью setTimeOut отправку такого хита в ГА, и показатели выровнятся.
    А вот боты с интервалом в 1.01 — это действительно мусор в отчётах. Только чтобы их заходы фиксировались, нужно, чтобы они исполняли скрипты, и ГА и ЯМ, то есть их заходы должны быть и там и там.


    1. evergreenteam
      14.10.2016 14:32

      Верно, боты действительно фиксировались и в ГА и в ЯМ.

      Про setTimeOut – интересная идея! А google не сочтет это мошенничеством с данными?


      1. Logrise
        14.10.2016 17:44

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