Обзор методов определения степени изменения поисковой выдачи

Из-за задержки апдейтов в Яндексе у seo-оптимизаторов появилась задача автоматизировать процесс определения наличия изменений, а также ввести такой термин, как сила апдейта (или шторм), под которым подразумевается расхождение между предыдущей и текущей картиной в ТОПе. Это возлагает на поисковую систему дополнительную нагрузку, но позволяет получить уведомление об апдейте раньше официального, а также найти другие изменения, связанные с обновлениями алгоритмов.

В данной статье мы уделяем большое внимание поиску силы апдейта Яндекса, однако, апдейты выдачи не есть самоцель, подобная задача может решаться более красивым способом, чем сравнение ТОПов. Из-за восстребованности анализаторов апдейта (тема близка почти каждому оптимизатору), ниже будут приведены примеры именно для решения этой задачи. Однако, степень изменения поисковой выдачи может говорить нам не только о наличии апдейта в поиске, но также апдейта тИЦ, PageRank сайтов, обновления рубрик Яндекс.Каталога, помочь определить геозависимость запроса или сравнить расхождения выдачи разных поисковых систем и так далее.

Итак, на данный момент существует множество сервисов, анализирующих апдейты, каждый из них использует свой алгоритм поиска расхождений в ТОПе. На первый взгляд задача кажется простой, но при её решении возникает ряд нюансов и желание найти оптимальное решение.

Какие возникают проблемы при поиске силы апдейта?

  1. Несколько сайтов могут вылетать из выдачи, смещая другие сайты выше в топе.
  2. Другие сайты могут резко занимать ТОП (например, в результате работы быстробота), смещая остальные ниже.
  3. Сайты могут подменяться их аффилиатами, не меняя общую картину.

Как определяют апдейты известные сервисы?

Ниже приведена пара описаний разных алгоритмов, доступных в паблике.

 

Скриншот анализатора апдейтов от SeoPultSeoPult

В этой системе каждые пол часа анализируется ТОП30 по 10 000 запросам и картина сравнивается с значениями, полученными в 23:30 (по мск) предыдущего дня. Далее анализируется количество общих сайтов по каждому запросу (более детально сотрудники этого сервиса алгоритм не раскрывают). После нормировки получается, что 0% — идентичные картины ТОПов, 100% — полностью разные ТОПы. Как видно из статистики SeoPult, каждый день есть незначительная разница в ТОПах в пределах 0.1 — 0.6%.

 

Евгений Трофименко

Скриншот анализатора апдейтов от Е.ТрофименкоРоссийский аналитик Евгений Трофименко использует более усложненную формулу поиска расхождений ТОПов. Его сервис основан на измерении количества парных изменений в выдаче (для исключения влияния случайных вылетов сайта), а также весовой коэффициент для каждой позиции (подразумевая, видимо, что подвижки во второй и третьей десятке говорят не о такой силе апдейта, как подвижки в первой десятке выдачи).

Подробное описание методики измерения апдейтов приведено здесь.

Методы определения степени различия двух массивов

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

1. Сумма разницы значений

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

Fn = Norm( Σ|p1(i) — p2(i)| )

Где p(i) — значение i-ого элемента массива (сравниваются массивы p1 и p2 одинаковой длины).
В сумме используются лишь те элементы массива p1, которые присутствуют в p2, для нормализации значение делится на максимально возможную разницу позиций (max = [len(p)/2]^2).

2. Схожесть текстов по алгоритму Оливера

В данном методе производится поиск количества общих символов в сравниваемых строках. Агоритм Оливера в PHP реализован в стандартной функции similar_text(). Чтобы преобразовать массив значений в текст, необходимо каждому значению присвоить уникальный символ (в таблице UTF8 их можно подобрать нужное количество).

3. Алгоритм Левенштейна

Алгоритм Левенштейна ищет минимальное количество вставок, удаления и замены одного символа на другой, необходимых для превращения одной строки в другую. Метод широко используется для исправления ошибок в словах (грамматика поисковых систем), сравнения текстовых файлов или даже генов и хромосом. Вполне подходит этот метод и для наших целей.

4. Попарное сравнение элементов массива

Метод, предложенный Евгением Трофименко, где производится поиск количества парных изменений в массивах.

Для проверки каждого из методов были созданы тестовые выборки и разработан скрипт на php, который можно скачать и проверить на своей выборке (test_top.zip, 3 Кб).

Описание тестовых массивов:
top1 — Начальный массив с последовательной нумерацией сайтов.
top2 — Отличается от начального заменой одного элемента без смещения остальных. Имитация смены сайта на его афиллиат.
top3 — Отличается от начального выпадением двух элементов и смещением остальных. Имитация выпадения сайтов из ТОПа.
top4 — Отличается от начального сменой мест у четырех пар элементов. Имитация небольших смещений позиций единичных сайтов.
top5 — Небольшие разнообразные изменения по сравнению с начальным массивом. Имитация слабого апдейта.
top6 — Случайная сортировка и смещение массива. Имитация сильной встряски поисковой выдачи.

Результаты работы алгоритмов приведены ниже в таблице (нормированные значения).

Сравнительная таблица работы разных методов определения расхождений между массивами

Как видно из таблицы, недостаток первого метода заключается в большой чувствительности к малым изменениям. Выпадение пары сайтов может дать коэффициент разнообразия массивов больше, чем небольшой апдейт. Что касается алгоритма попарного сравнения, наблюдается такая же картина — для выборки top3 мы имеем значение, схожее с серьезным апдейтом. Намного лучше дают результаты алгоритмов Оливера и Левенштейна, причем, максимальное значение для выборки top6 (где элементы были максимально перемешаны) дает именно алгоритм Оливера.

Заключение

Посмотрим также результаты работы алгоритмов на примере реальной выборки по ключевому запросу «купить машину» в Яндекс.Москва до и после апдейтов — 20 августа (после длительной задержки, когда ожидались глобальные изменения), 22 августа (второй апдейт), и 23 августа (когда апдейта не было).

Таблица значений силы последних апдейтов Яндекса

Между первым и вторым апдейтом сила разнилась, судя по разным методам, на 4%, 9%, 6% и 0%. Метод Оливера здесь дает также наилучшие результаты, делая шкалу более линейной. Конечно же, чтобы получить более достоверные данные об изменениях в ТОПе, если мы говорим не об одном ключевом слове (или регионе), а сразу нескольких, то необходимо сравнивать массивы для разных ключевых слов и брать средний результат. Однако, целью данной статьи было именно описать возможные варианты решения задачи сравнения и мы надеемся, какой-то из методов вам пригодится для проведения аналитики!

Если у вас есть в арсенале свои методы сравнения двух массивов (в поиске коэффициента расхождения), или есть какие-либо замечания по описанным выше алгоритмам, будем рады прочитать ваши комментарии.


Сергей Кокшаров

Эксперт-аналитик, автор блога Devaka.ru, главный редактор портала Optimization.com.ua


  • Petr

    А мне вот эту ссылку скинули на серче http://parserrf.ru/sila_hour_updates.php
    Тоже интересный анализатор, показывает когда именно (во сколько часов) на сколько процентов изменилась выдача

  • Алексей

    Метод измерения изменения выдачи по попарным сравнениям не устойчив к сортировке сначала нечетных сайтов, а потом четных.

    То есть, если изначально выдача была (1,2,3,4,5,6,7,8,9,10) а потом стала (1,3,5,7,9,2,4,6,8,10), то результат сравнения будет такой же, как если бы выдача стала обратной, то есть (10,9,8,7,6,5,4,3,2,1), что не есть правильно