Из-за задержки апдейтов в Яндексе у seo-оптимизаторов появилась задача автоматизировать процесс определения наличия изменений, а также ввести такой термин, как сила апдейта (или шторм), под которым подразумевается расхождение между предыдущей и текущей картиной в ТОПе. Это возлагает на поисковую систему дополнительную нагрузку, но позволяет получить уведомление об апдейте раньше официального, а также найти другие изменения, связанные с обновлениями алгоритмов.
В данной статье мы уделяем большое внимание поиску силы апдейта Яндекса, однако, апдейты выдачи не есть самоцель, подобная задача может решаться более красивым способом, чем сравнение ТОПов. Из-за восстребованности анализаторов апдейта (тема близка почти каждому оптимизатору), ниже будут приведены примеры именно для решения этой задачи. Однако, степень изменения поисковой выдачи может говорить нам не только о наличии апдейта в поиске, но также апдейта тИЦ, PageRank сайтов, обновления рубрик Яндекс.Каталога, помочь определить геозависимость запроса или сравнить расхождения выдачи разных поисковых систем и так далее.
Итак, на данный момент существует множество сервисов, анализирующих апдейты, каждый из них использует свой алгоритм поиска расхождений в ТОПе. На первый взгляд задача кажется простой, но при её решении возникает ряд нюансов и желание найти оптимальное решение.
Какие возникают проблемы при поиске силы апдейта?
- Несколько сайтов могут вылетать из выдачи, смещая другие сайты выше в топе.
- Другие сайты могут резко занимать ТОП (например, в результате работы быстробота), смещая остальные ниже.
- Сайты могут подменяться их аффилиатами, не меняя общую картину.
Как определяют апдейты известные сервисы?
Ниже приведена пара описаний разных алгоритмов, доступных в паблике.
SeoPult
В этой системе каждые пол часа анализируется ТОП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%. Метод Оливера здесь дает также наилучшие результаты, делая шкалу более линейной. Конечно же, чтобы получить более достоверные данные об изменениях в ТОПе, если мы говорим не об одном ключевом слове (или регионе), а сразу нескольких, то необходимо сравнивать массивы для разных ключевых слов и брать средний результат. Однако, целью данной статьи было именно описать возможные варианты решения задачи сравнения и мы надеемся, какой-то из методов вам пригодится для проведения аналитики!
Если у вас есть в арсенале свои методы сравнения двух массивов (в поиске коэффициента расхождения), или есть какие-либо замечания по описанным выше алгоритмам, будем рады прочитать ваши комментарии.