Facebook ВКонтакте Twitter

Как Googlebot искажает статистику просмотров вашего сайта

Особенности ботов Google после перехода Googlebot на Chromium 74

Comments
 699
04.07.2019 | Время чтения: 6 минут
Facebook
Автор: Симагин Андрей

Анализ ботов Google после перехода Chromium 74

7 мая 2019 года, поисковый гигант Google объявил о переходе своего Googlebot на новый движок, который теперь будет работать на базе последней версии Chromium (на его основе создан популярный браузер Chrome).

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

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

Так как же посещения нового краулера отражаются на статистике просмотров страниц?

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

Примечание:
Мой счетчик просмотров статей работает по классическому принципу: при каждом посещении страницы счетчик увеличивается на единицу. При этом при повторных посещениях страницы не идет сравнение по IP либо по кукам (нет проверки, посещал данный пользователь страницу или еще нет). Условно: если нажать на странице пять раз кнопку F5 (принудительно обновление страницы), то число просмотров вырастет на 5 штук.

Итак, после нескольких корректировок статьи и контроля изменений на сайте, значение счетчика, было равно 16 просмотрам. Для быстрой индексации, я как обычно добавил URL в приоритетную переиндексацию через панель Вебмастера Google.

Панель вебмастера Google

Затем что-то еще поменял в статье, еще раз обновил страницу и заметил, что значение счетчика стало равно 21 (16 + 1 мое обновление + 4)!

Странно, однако...

То есть, даже если страница уже в индексе, то не могло ее посетить кроме меня еще 4 человека за пару минут. Вариант остается один – Googlebot и его новый принцип рендеринга страниц. Чтобы проверить гипотезу, я открыл phpMyAdmin, зашел в таблицу со счетчиками, нашел ту самую статью, установил счетчик просмотров на отметке 10. Далее скопировал URL в буфер обмена и повторил процедуру приоритетной индексации страницы в панели вебмастера Google. Через 10 секунд значение счетчика стало равным 14!

Просмотры страницы

То есть каждый раз, при заходе на страницу краулер Google делает по 4 прохода, чтобы ее переиндексировать, тем самым накручивает счетчики сайта (при этом на статистику посещений в Google Analytics это никак не влияет).

Насколько я знаю, раньше для переиндексации Googlebot делал по 2 обхода, а теперь от 4 до 5 обходов (иногда наблюдал увеличение счетчика на 5 единиц).

Последовательность обхода:

  • Не важно в индексе страница или нет, обычно индексация делается в 4 прохода:
    • сначала посылается запрос на проверку индексации страницы к своей базе (не заходит на страницу сайта физически)
    • далее после подтверждения отправки страницы на переиндексацию делаются первые два прохода

Проверяется возможность индексации URL, Google

    • и после отправки запроса на индексацию почти сразу еще 2

Отправлен запрос на индексирование, Google

Пример фиксации посещений бота Google в access.log на переиндексацию одной страницы:

  • 66.249.75.72 - - [02/Jul/2019:23:00:56 +0300] "GET /articles/googlebot-chromium-page-rendering/ HTTP/1.0" 200 8867 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
  • 66.249.75.74 - - [02/Jul/2019:23:00:57 +0300] "GET /articles/googlebot-chromium-page-rendering/ HTTP/1.0" 200 8867 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
  • 66.249.75.70 - - [02/Jul/2019:23:01:48 +0300] "GET /articles/googlebot-chromium-page-rendering/ HTTP/1.0" 200 10340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
  • 66.249.75.70 - - [02/Jul/2019:23:01:49 +0300] "GET /articles/googlebot-chromium-page-rendering/ HTTP/1.0" 200 8867 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
  • 66.249.69.92 - - [02/Jul/2019:23:02:59 +0300] "GET /articles/googlebot-chromium-page-rendering/ HTTP/1.0" 200 10340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Как выяснилось, Google не поменял агента пользователя для Googlebot и по-прежнему использует старый вариант, в котором упоминается Chrome 41. При этом на самом деле краулер работает на базе Chrome 74, утверждают в компании (планируют обновить user-agent в будущем).

Google не поменял агента пользователя для Googlebot

Также мы видим в логах нового user-агента "Nexus 5X", хотя ранее упоминался только "Android 9.0.0 Pixel 3 XL"...

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

Например, при переиндексации Googlebot одной из статей раз в неделю мы получим 4 (прохода) * 4 (недели) * 12 (месяцев) = 192 "фейковых" просмотра статьи в год. Для статей с несколькими сотнями просмотров это будет достаточно весомая погрешность. Для статей с 5000 просмотров в год и более это будет не таким значимым отклонением.

Подобную особенность гуглбота необходимо учитывать при анализе статистики просмотров ваших информационных материалов.

Можно ли не учитывать поисковых ботов при подобном принципе подсчета статистики просмотров?

Можно. Есть несколько вариантов, два из них были озвучены в начале статьи:

  1. Сравнение по кукам (трудоемко).
  2. Сравнение по IP адресу (трудоемко).
  3. Поиск признаков бота по user-agent (самый простой вариант).

Первые два варианта трудоемки в реализации, поэтому сразу перейдем к третьему пункту, так как его реализация весьма проста: нам всего лишь нужно искать признаки бота по user-agent'у и если это бот, то просто не увеличивать счетчик. На PHP это выглядит примерно так:

Как не учитывать Googlebot, код на PHP

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

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

А что же со счетчиками на Javascript?

Проверим, как обрабатывает новый рендеринг Google яваскрипт-счетчики.

Для этого создадим произвольную страницу, которая теперь уже не будет содержать подгрузку счетчика в явном виде, а будет грузить его Яваскриптом, который в свою очередь будет "дергать" PHP скрипт, который будет взаимодействовать с нашей БД, заменяя блок <div> на значение счетчика, получаемое из базы подгрузкой через Ajax. Исходный код страницы выглядит так:

Googlebot Ajax test

Ссылка на тестовую страницу: test.php

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

Последовательность индексации страниц, как это делает Googlebot

  • переход бота на страницу и проверка правил индексации в мета "robots"
  • проверка правил индексации в "robots.txt"
  • индексация страницы, если оба правила разрешают индексирование
Оцените статью
4.4/5
11



<< Назад

С нами работают