Яндекс вычищает Google и другие знания SEO из утечки исходного кода

Опубликовано: 2023-01-31

На прошлой неделе в сеть просочились «фрагменты» кодовой базы Яндекса. Как и Google, Яндекс — это платформа со многими аспектами, такими как электронная почта, карты, служба такси и т. д. Утечка кода содержала фрагменты всего этого.

Согласно документации, кодовая база Яндекса была объединена в один большой репозиторий под названием Arcadia в 2013 году. Утекшая кодовая база является подмножеством всех проектов в Arcadia, и мы находим в ней несколько компонентов, связанных с поисковой системой в «Ядре», «Библиотеке». », «Робот», «Поиск» и «ExtSearch».

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

Хотя нам не хватает данных и многих файлов, на которые есть ссылки, это первый пример реального взгляда на то, как современная поисковая система работает на уровне кода.

Лично я не могу смириться с тем, какое фантастическое время для того, чтобы увидеть код, когда я заканчиваю свою книгу «Наука SEO», где я рассказываю о поиске информации, о том, как на самом деле работают современные поисковые системы и как самому построить простой.

В любом случае, я разбирал код с прошлого четверга, и любой инженер скажет вам, что времени недостаточно, чтобы понять, как все работает. Итак, я подозреваю, что будет еще несколько постов, пока я продолжаю возиться.

Прежде чем мы начнем, я хочу поблагодарить Бена Уиллса из Онтоло за то, что он поделился со мной кодом, указал мне начальное направление, где находится хороший материал, и ходил со мной туда и обратно, пока мы расшифровывали вещи. Не стесняйтесь взять электронную таблицу со всеми данными, которые мы собрали о факторах ранжирования, здесь.

Кроме того, спасибо Райану Джонсу за то, что он покопался и поделился со мной некоторыми ключевыми выводами через мгновенные сообщения.

Хорошо, давайте займемся!

Это не код Google, так какое нам дело?

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

Тем не менее, Яндекс — это не Google. Тем не менее, эти две современные поисковые системы продолжают оставаться на переднем крае технологий.

Инженеры-программисты Яндекс Google 800x267

Инженеры-программисты обеих компаний посещают одни и те же конференции (SIGIR, ECIR и т. д.) и делятся находками и инновациями в области поиска информации, обработки/понимания естественного языка и машинного обучения. Яндекс также присутствует в Пало-Альто, а Google ранее был в Москве.

Быстрый поиск в LinkedIn выявляет несколько сотен инженеров, которые работали в обеих компаниях, хотя мы не знаем, сколько из них на самом деле работали над поиском в обеих компаниях.

В более прямом смысле Яндекс также использует технологии Google с открытым исходным кодом, которые были критически важны для инноваций в поиске, таких как TensorFlow, BERT, MapReduce и, в гораздо меньшей степени, Protocol Buffers.

Итак, хотя Яндекс — это, конечно, не Google, это также не какой-то случайный исследовательский проект, о котором мы здесь говорим. Изучив эту кодовую базу, мы можем многое узнать о том, как устроена современная поисковая система.

По крайней мере, мы можем избавиться от некоторых устаревших представлений, которые все еще пронизывают инструменты SEO, таких как соотношение текста и кода и соответствие W3C, или общее убеждение, что 200 сигналов Google — это просто 200 отдельных функций на странице и за ее пределами, а не классы составные факторы, которые потенциально используют тысячи отдельных показателей.

Некоторый контекст по архитектуре Яндекса

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

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

К счастью, Яндекс дает некоторое представление о своей архитектуре в общедоступной документации. Есть также пара патентов, опубликованных в США, которые помогают пролить свет. А именно:

  • Реализованный компьютером способ и система поиска в инвертированном индексе, имеющем множество списков рассылки.
  • Ранжировщик результатов поиска

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

Поисковая система Яндекса

В документации Яндекса обсуждается двухраспределенная система краулеров. Один для сканирования в реальном времени под названием «Оранжевый краулер», а другой — для обычного сканирования.

Исторически у Google был индекс, разделенный на три сегмента: один для сканирования в реальном времени, один для регулярного сканирования и один для редкого сканирования. Этот подход считается лучшей практикой в ​​IR.

Яндекс и Google различаются в этом отношении, но общая идея сегментированного сканирования, основанная на понимании частоты обновлений, сохраняется.

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

Поисковая база Яндекса

В документации также обсуждается сегментированная структура базы данных, которая разбивает страницы на инвертированный индекс и сервер документов.

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

Это отличается от Google тем, что они давно перешли на индексацию на основе фраз, то есть n-граммы, которые могут быть намного длиннее, чем триграммы.

Однако система Яндекса также использует BERT в своем пайплайне, поэтому в какой-то момент документы и запросы конвертируются во вложения, а для ранжирования используются методы поиска ближайших соседей.

Яндекс метапоиск 742x600

Процесс ранжирования — это то место, где все становится интереснее.

В Яндексе есть слой под названием « Метапоиск », где кешированные результаты популярных поисковых запросов обслуживаются после обработки запроса. Если результаты там не найдены, то поисковый запрос отправляется на несколько тысяч разных машин на уровне базового поиска одновременно. Каждый создает список соответствующих документов для публикации, а затем возвращает его в MatrixNet, приложение нейронной сети Яндекса для повторного ранжирования, чтобы построить поисковую выдачу.

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

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

В кодовой базе 17 854 фактора ранжирования.

В пятницу после утечки неподражаемый Мартин Макдональд охотно поделился файлом из кодовой базы под названием web_factors_info/factors_gen.in. Файл взят из архива «Kernel» в утечке кодовой базы и содержит 1922 фактора ранжирования.

Естественно, SEO-сообщество использовало этот номер и этот файл, чтобы охотно распространять новости о содержащихся в нем выводах. Многие люди перевели описания и создали инструменты или Google Sheets и ChatGPT, чтобы разобраться в данных. Все они являются прекрасными примерами силы сообщества. Однако число 1922 представляет собой лишь один из многих наборов факторов ранжирования в кодовой базе.

Файлы фактора ранжирования Yandex Codebase 408x600

Более глубокое погружение в кодовую базу показывает, что существует множество файлов факторов ранжирования для различных подмножеств систем обработки запросов и ранжирования Яндекса.

Прочесывая их, мы обнаруживаем, что всего существует 17 854 фактора ранжирования. В эти факторы ранжирования входят различные показатели, связанные с:

  • Клики.
  • Время выдержки.
  • Использование аналога Google Analytics от Яндекса, Метрики.
Яндекс 17854 Факторы ранжирования 555x600

Существует также серия ноутбуков Jupyter, которые имеют дополнительные 2000 факторов помимо тех, что указаны в основном коде. Предположительно, эти блокноты Jupyter представляют собой тесты, в ходе которых инженеры рассматривают дополнительные факторы для добавления в кодовую базу. Опять же, вы можете просмотреть все эти функции с метаданными, которые мы собрали по всей кодовой базе, по этой ссылке.

Формула ранжирования Яндекса

В документации Яндекса также уточняется, что у них есть три класса факторов ранжирования: статические, динамические и те, которые связаны конкретно с поиском пользователя и тем, как он был выполнен. По их собственным словам:

Классы фактора ранжирования документации Яндекса 800x179

В кодовой базе они указаны в файлах ранговых факторов с тегами TG_STATIC и TG_DYNAMIC. Факторы, связанные с поиском, имеют несколько тегов, таких как TG_QUERY_ONLY, TG_QUERY, TG_USER_SEARCH и TG_USER_SEARCH_ONLY.

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

Матрикснет Яндекс Документация 800x283

Это указывает на то, что среда ранжирования очень динамична, как и среда Google. Согласно патенту Google «Структура для оценки функций подсчета очков», у них уже давно есть что-то похожее, когда запускаются несколько функций и возвращается лучший набор результатов.

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

Onboarding Documentation Missing Directorys Yandex 800x503

Например, я подозреваю, что в каталоге /semantic-search/ есть еще что-то связанное с DSSM.

Начальное взвешивание факторов ранжирования

Сначала я исходил из предположения, что кодовая база не имеет весов для факторов ранжирования. Затем я был потрясен, увидев, что файл nav_linear.h в каталоге /search/relevance/ содержит начальные коэффициенты (или веса), связанные с факторами ранжирования, в полном отображении.

Этот раздел кода выделяет 257 из более чем 17 000 факторов ранжирования, которые мы выявили. ( Спасибо Райану Джонсу за то, что он вытащил их и сопоставил с описаниями факторов ранжирования.)

Для ясности: когда вы думаете об алгоритме поисковой системы, вы, вероятно, думаете о длинном и сложном математическом уравнении, по которому каждая страница оценивается на основе ряда факторов. Хотя это упрощение, следующий снимок экрана является выдержкой из такого уравнения. Коэффициенты показывают, насколько важен каждый фактор, а полученный в результате расчетный балл — это то, что будет использоваться для оценки релевантности страниц выбора.

Рейтинг релевантности Яндекса 554x600

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

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

Однако возникает следующий вопрос: что мы знаем о MatrixNet?

В архиве ядра есть код нейронного ранжирования, и в кодовой базе есть многочисленные ссылки на MatrixNet и «mxnet», а также множество ссылок на глубоко структурированные семантические модели (DSSM).

В описании одного из факторов ранжирования FI_MATRIXNET указано, что MatrixNet применяется ко всем факторам.

Фактор {

Индекс: 160

CppName: «FI_MATRIXNET»

Название: «Матрикснет»

Теги: [TG_DOC, TG_DYNAMIC, TG_TRANS, TG_NOT_01, TG_REARR_USE, TG_L3_MODEL_VALUE, TG_FRESHNESS_FROZEN_POOL]

Описание: «MatrixNet применяется ко всем факторам — формула»

}

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

Что сразу становится ясно, так это то, что существует несколько уровней ранжирования (L1, L2, L3) и существует набор моделей ранжирования, которые можно выбрать на каждом уровне.

Яндекс Модели рейтинга 1 730x600

В файле selection_rankings_model.cpp предполагается, что на каждом уровне процесса можно рассматривать разные модели ранжирования. Примерно так работают нейронные сети. Каждый уровень — это аспект, который завершает операции, и их комбинированные вычисления дают переупорядоченный список документов, который в конечном итоге отображается в виде SERP. Я продолжу более глубокое погружение в MatrixNet, когда у меня будет больше времени. Для тех, кому нужен краткий обзор, ознакомьтесь с патентом ранжирования результатов поиска.

А пока давайте взглянем на некоторые интересные факторы ранжирования.

Топ-5 отрицательно взвешенных факторов начального ранжирования

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

  1. FI_ADV: -0,2509284637 — этот фактор определяет, что на странице есть реклама любого рода, и назначает самый высокий взвешенный штраф за один фактор ранжирования.
  2. FI_DATER_AGE: -0,2074373667 — этот коэффициент представляет собой разницу между текущей датой и датой документа, определенной функцией датирования. Значение равно 1, если дата документа совпадает с сегодняшней, 0, если документ старше 10 лет или если дата не определена. Это говорит о том, что Яндекс отдает предпочтение более старому контенту.
  3. FI_QURL_STAT_POWER: -0,1943768768 — этот коэффициент представляет собой количество показов URL-адреса, связанного с запросом. Похоже, они хотят понизить URL-адрес, который появляется во многих поисковых запросах, чтобы повысить разнообразие результатов.
  4. FI_COMM_LINKS_SEO_HOSTS: -0,1809636391 — этот коэффициент представляет собой процент входящих ссылок с «коммерческим» якорным текстом. Коэффициент возвращается к 0,1, если доля таких ссылок превышает 50%, в противном случае устанавливается в 0.
  5. FI_GEO_CITY_URL_REGION_COUNTRY: -0,168645758 — этот фактор — географическое совпадение документа и страны, из которой пользователь выполнял поиск. Это не совсем понятно, если 1 означает, что документ и страна совпадают.

Таким образом, эти факторы указывают на то, что для наилучшего результата вы должны:

  • Избегайте рекламы.
  • Обновляйте старый контент, а не создавайте новые страницы.
  • Убедитесь, что большинство ваших ссылок имеют фирменный анкорный текст.

Все остальное в этом списке находится вне вашего контроля.

Топ-5 положительно взвешенных факторов начального ранжирования

Чтобы продолжить, вот список положительных факторов ранжирования с наибольшим весом.

  1. FI_URL_DOMAIN_FRACTION: +0.5640952971 — этот фактор представляет собой странное маскирующее перекрытие запроса по сравнению с доменом URL-адреса. В качестве примера приведена Челябинская лотерея, сокращенно chelloto. Чтобы вычислить это значение, Яндекс находит перекрытые трехбуквенные слова (че, хел, лот, оло), смотрит, какая доля всех трехбуквенных сочетаний приходится на доменное имя.
  2. FI_QUERY_DOWNER_CLICKS_COMBO: +0.3690780393 — описание этого фактора таково: «умное сочетание FRC и псевдо-CTR». Непосредственных указаний на то, что такое FRC, нет.
  3. FI_MAX_WORD_HOST_CLICKS: +0.3451158835 — этот фактор кликабельность самого важного слова в домене. Например, для всех запросов, в которых есть слово «википедия», нажмите на страницы википедии.
  4. FI_MAX_WORD_HOST_YABAR: +0.3154394573 — В описании фактора указано «наиболее характерное слово запроса, соответствующее сайту, согласно бару». Я предполагаю, что это означает ключевое слово, которое чаще всего ищут в панели инструментов Яндекса, связанную с сайтом.
  5. FI_IS_COM: +0.2762504972 — Дело в том, что домен .COM.

Другими словами:

  • Играйте в словесные игры со своим доменом.
  • Убедитесь, что это точка ком.
  • Поощряйте людей искать ваши целевые ключевые слова в панели Яндекса.
  • Продолжайте получать клики.

Существует множество неожиданных факторов начального ранжирования.

Что более интересно в начальных взвешенных факторах ранжирования, так это неожиданные факторы. Ниже приводится список из семнадцати выделяющихся факторов.

  1. FI_PAGE_RANK: +0,1828678331 — PageRank является 17-м по значимости фактором в Яндексе. Ранее они полностью удалили ссылки из своей системы ранжирования, так что неудивительно, насколько низко она находится в списке.
  2. FI_SPAM_KARMA: +0.00842682963 — Спам-карма названа в честь «антиспамеров» и представляет собой вероятность того, что хост является спамом; на основе информации Whois
  3. FI_SUBQUERY_THEME_MATCH_A: +0,1786465163 — насколько тесно тематически совпадают запрос и документ. Это 19-й самый взвешенный фактор.
  4. FI_REG_HOST_RANK: +0.1567124399 — у Яндекса есть фактор ранжирования хоста (или домена).
  5. FI_URL_LINK_PERCENT: +0.08940421124 — отношение ссылок, анкорный текст которых является URL-адресом (а не текстом), к общему количеству ссылок.
  6. FI_PAGE_RANK_UKR: +0.08712279101 — существует конкретный украинский PageRank
  7. FI_IS_NOT_RU: +0.08128946612 – Хорошо, если домен не .RU. Судя по всему, российский поисковик не доверяет русским сайтам.
  8. FI_YABAR_HOST_AVG_TIME2: +0,07417219313 — это среднее время пребывания, согласно данным YandexBar.
  9. FI_LERF_LR_LOG_RELEV: +0.06059448504 — это релевантность ссылки, основанная на качестве каждой ссылки.
  10. FI_NUM_SLASHES: +0.05057609417 — количество косых черт в URL является фактором ранжирования.
  11. FI_ADV_PRONOUNS_PORTION: -0.001250755075 — Доля местоимений на странице.
  12. FI_TEXT_HEAD_SYN: -0.01291908335 — Наличие [запросных] слов в заголовке с учетом синонимов
  13. FI_PERCENT_FREQ_WORDS: -0.02021022114 — Процент количества слов, которые являются 200 наиболее часто встречающимися словами языка, от количества всех слов текста.
  14. FI_YANDEX_ADV: -0.09426121965 — Уточняя неприязнь к рекламе, Яндекс наказывает страницы с рекламой Яндекса.
  15. FI_AURA_DOC_LOG_SHARED: -0.09768630485 — логарифм количества черепиц (областей текста) в документе, которые не являются уникальными.
  16. FI_AURA_DOC_LOG_AUTHOR: -0.09727752961 — Логарифм количества гонтов, на которых данный владелец документа признан автором.
  17. FI_CLASSIF_IS_SHOP: -0.1339319854 — Судя по всему, Яндекс будет меньше любить вас, если ваша страница — магазин.

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

Я подозреваю, что заявленные Google «200 сигналов» на самом деле представляют собой 200 классов сигналов, где каждый сигнал является составным, состоящим из множества других компонентов. Во многом так же, как в Google Analytics есть параметры со многими связанными показателями, в поиске Google, вероятно, есть классы сигналов ранжирования, состоящие из многих функций.

Яндекс избавился от Google, Bing, YouTube и TikTok

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

Яндекс Парсеры 308x600

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

Google Web Parser Яндекс 800x533

Есть и другой код, который указывает, что Яндекс использует некоторые данные Google как часть расчетов DSSM, но сами по себе 83 названных Google фактора ранжирования ясно показывают, что Яндекс довольно сильно опирался на результаты Google.

Яндекс с использованием вычислений Google Data DSSM 800x540

Очевидно, что Google никогда не воспользуется ходом Bing, скопировав результаты другой поисковой системы, и не будет полагаться на нее для расчетов основного рейтинга.

У Яндекса есть анти-SEO верхние границы для некоторых факторов ранжирования

315 факторов ранжирования имеют пороговые значения, при которых любое вычисленное значение, превышающее это значение, указывает системе на то, что эта функция страницы чрезмерно оптимизирована. 39 из этих факторов ранжирования являются частью первоначально взвешенных факторов, которые могут препятствовать включению страницы в первоначальный список публикаций. Вы можете найти их в электронной таблице, на которую я дал ссылку выше, отфильтровав по столбцу «Коэффициент ранга» и «Анти-SEO».

Яндекс Анти SEO факторы ранжирования 800x432

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

Яндекс продвигает «Живые хосты»

В кодовой базе Яндекса есть ряд механизмов повышения. Это искусственные улучшения определенных документов, чтобы обеспечить более высокие оценки при рассмотрении для ранжирования.

Ниже приведен комментарий от «мастера повышения», который предполагает, что более мелкие файлы лучше всего выигрывают от алгоритма повышения.

Мастер повышения

Есть несколько типов бустов; Я видел один буст, связанный со ссылками, и я также видел серию «HandJobBoosts», которые, я могу только предположить, являются странным переводом «ручных» изменений.

Handjobboosts Яндекс 800x234

Одно из таких усилений, которое мне показалось особенно интересным, связано с «Жизненно важными хостами». Где важным хостом может быть любой указанный сайт. В переменных конкретно упоминается NEWS_AGENCY_RATING, что наводит меня на мысль, что Яндекс дает повышение, которое искажает его результаты в пользу определенных новостных организаций.

Яндекс Витал Хост 800x331

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

Структура сервера документов

Кодовая база показывает, как документы хранятся на сервере документов Яндекса. Это полезно для понимания того, что поисковая система не просто делает копию страницы и сохраняет ее в своем кеше, она фиксирует различные функции в качестве метаданных, чтобы затем использовать их в последующем процессе ранжирования.

На приведенном ниже снимке экрана выделено подмножество тех функций, которые особенно интересны. Другие файлы с SQL-запросами предполагают, что сервер документов имеет около 200 столбцов, включая дерево DOM, длину предложений, время выборки, ряд дат и оценку защиты от спама, цепочку перенаправления и информацию о том, переведен ли документ. Самый полный список, с которым я столкнулся, находится в файле /robot/rthub/yql/protos/web_page_item.proto.

Яндекс Симхэши 527x600

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

Дублированный контент Яндекса 800x101

Кроме того, в рамках процесса индексации кодовая база включает TF-IDF, BM25 и BERT в конвейере обработки текста. Непонятно, почему все эти механизмы существуют в коде, потому что в их использовании есть некоторая избыточность.

Ссылочные факторы и расстановка приоритетов

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

Калькулятор ссылочного спама Яндекса учитывает 89 факторов. Все, что помечено как SF_RESERVED, устарело. Там, где это предусмотрено, вы можете найти описания этих факторов в таблице Google, указанной выше.

Спам-факторы Яндекса 457x600
Спам-факторы Яндекса 2

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

Еще одна вещь, которую делает Яндекс, — это просмотр копии в домене и определение наличия дублированного контента с этими ссылками. Это могут быть размещения ссылок по всему сайту, ссылки на дубликаты страниц или просто ссылки с одинаковым анкорным текстом с одного и того же сайта.

Приоритет ссылок Яндекса 800x529

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

Что мы можем применить от Яндекса к тому, что мы знаем о Google?

Естественно, этот вопрос до сих пор волнует всех. Хотя между Яндексом и Google, безусловно, есть много аналогов, по правде говоря, только инженер-программист Google, работающий над поиском, может окончательно ответить на этот вопрос.

Тем не менее, это неправильный вопрос.

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

Понимание многих особенностей и факторов утечки Яндекса должно дать больше гипотез о вещах, которые нужно проверить и рассмотреть для ранжирования в Google. Они также должны ввести больше вещей, которые можно анализировать и измерять с помощью SEO-сканирования, анализа ссылок и инструментов ранжирования.

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

Во многом так же, как журналы поиска AOL позволили нам не угадывать распределение кликов в поисковой выдаче, кодовая база Яндекса уводит нас от абстрактного к конкретному, и наши утверждения «это зависит» могут быть лучше квалифицированы.

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

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

В то же время юристы Google, вероятно, готовят агрессивные письма о прекращении и воздержании, связанные со всей очисткой данных.

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

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


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