Перейти до основного вмісту
17 854 факторів ранжування Яндекс які сталі відомі після витіку кодової бази в мережу

Мабуть всі вже чули новину про те, як колишній співробітник нібито злив у мережу сховища вихідного коду Яндекса, де можливо було розібрати які сами фактори ранжування Яндекс використовує, та які є найбільш важливішими (принаймні станом на липень 2022 року, це дата актуальності баз які злили)

Я писав раніше що відтепер не буду писати про просування сайтів на території країни агресора, але цей матеріал буде дуже цікавий для загального розуміння як, можуть працювати пошукові системи. Ця стаття є в більшості урізаним та місцями виправленим перекладом поста Майкла Кінга на searchengineland.com, хто хоче почитати оригінал тицяйте сюди

Яндекс то не Google

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

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

17 854 факторів ранжування Яндекс

Після витоку Мартін Макдональд охоче поділився файлом з кодової бази під назвою web_factors_info/factors_gen.in. Файл походить з архіву "Kernel" у витоку кодової бази і містить 1 922 фактори ранжування.

Звісно, SEO-спільнота побігла з цим числом і цим файлом, щоб з нетерпінням поширювати новини про інсайти, що містяться в ньому. Багато людей переклали описи і створили інструменти або Google Sheets і ChatGPT, щоб розібратися в даних. Все це є чудовими прикладами сили спільноти. Однак, 1 922 - це лише один з багатьох наборів факторів ранжування в кодовій базі.

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

Проаналізувавши їх, ми виявили, що загалом існує 17 854 фактори ранжування. Ці фактори ранжування включають різноманітні метрики, пов'язані з:

  • Кліками.
  • Час перебування на сайті.
  • Використання Яндекс Метрики

У документації Яндекса також пояснюється, що у них є три класи факторів ранжування: Статичні, Динамічні та ті, що пов'язані безпосередньо з пошуком користувача і тим, як він здійснювався. Їхніми ж словами:.

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

Хоча ми виявили потенційні 18 тис. факторів ранжування на вибір, документація, пов'язана з MatrixNet, вказує на те, що ранжування будується на основі десятків тисяч факторів і налаштовується на основі пошукового запиту.

Нарешті, враховуючи, що документація посилається на десятки тисяч факторів ранжування, ми також повинні мати на увазі, що є багато інших файлів, на які є посилання в коді, але які відсутні в архіві. Отже, швидше за все, відбувається щось більше, чого ми не бачимо. Це можна проілюструвати, переглянувши зображення в документації по завантаженню, де показані інші каталоги, які відсутні в архіві

яндекс код

Початкова оцінка факторів ранжування

Коли ви думаєте про алгоритм пошукової системи, ви, ймовірно, уявляєте довге і складне математичне рівняння, за допомогою якого кожна сторінка оцінюється на основі ряду факторів. Коефіцієнти показують, наскільки важливим є кожен фактор, а отримана в результаті оцінка - це те, що буде використовуватися для оцінки сторінок селектора на релевантність.

Жорстке кодування значень свідчить про те, що це, безумовно, не єдине місце, де відбувається ранжування. Швидше за все, ця функція є тим місцем, де відбувається первинне оцінювання релевантності для створення серії списків публікацій для кожного шарда, який розглядається для ранжування. У деяких патентах,  вони говорять про це як про концепцію незалежної від запиту релевантності (QIR), яка потім обмежує документи, перш ніж перевіряти їх на релевантність, що залежить від запиту (QSR). Отримані списки публікацій потім передаються до MatrixNet з характеристиками запитів для порівняння.

Однак, виникає наступне питання: що ми знаємо про MatrixNet?

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

Factor {

    Index:              160

    CppName:            “FI_MATRIXNET”

    Name:               “MatrixNet”

    Tags:               [TG_DOC, TG_DYNAMIC, TG_TRANS, TG_NOT_01, TG_REARR_USE, TG_L3_MODEL_VALUE, TG_FRESHNESS_FROZEN_POOL]

    Description:        “MatrixNet is applied to all factors – the formula”

}

Опис одного з факторів ранжування FI_MATRIXNET вказує на те, що MatrixNet застосовується до всіх факторів. Існує також купа бінарних файлів, які можуть бути самими попередньо навченими моделями. Одразу зрозуміло, що існує декілька рівнів ранжування (L1, L2, L3), і на кожному рівні можна вибрати різні моделі ранжування.

Наразі, давайте розглянемо деякі цікаві фактори ранжування.

Топ-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 - Цей фактор - географічний збіг документа і країни, з якої користувач здійснював пошук.

Підсумовуючи, ці фактори вказують на те, що слід:

  • Уникати реклами.
  • Оновлювати старий контент, а не створювати нові сторінки.
  • Переконайтеся, що більшість ваших посилань мають брендовий якірний текст.

Топ-5 факторів початкового ранжування, що мають найбільшу вагу

  1. FI_URL_DOMAIN_FRACTION: +0.5640952971 - Цей фактор є дивним маскуванням збігу запиту з доменом URL-адреси. Прикладом є Челябінська лотерея, скорочено chelloto. Щоб обчислити це значення, Яндекс знаходить три літери, які перекриваються (che, hel, lot, olo), і дивиться, яка частка всіх трилітерних комбінацій припадає на доменне ім'я.
  2. FI_QUERY_DOWNER_CLICKS_COMBO: +0.3690780393 - Опис цього фактору такий: "хитромудре поєднання FRC і псевдо-CTR". Немає безпосередньої вказівки на те, що таке FRC але CTR в видачі як показує це майже не найголовніше що Яндекс використовує для оцінки якості
  3. FI_MAX_WORD_HOST_CLICKS: +0.3451158835 - Цей фактор - клікабельність найважливішого слова в домені. Наприклад, за всіма запитами, в яких є слово "вікіпедія", клікають на сторінки вікіпедії.
  4. FI_MAX_WORD_HOST_YABAR: +0.3154394573 - В описі фактора сказано "найбільш характерне слово запиту, що відповідає сайту, згідно з баром".  Можливо припустити, що це ті ключові слова, які найчастіше шукають в панелі інструментів Яндекса, пов'язане з сайтом.
  5. FI_IS_COM: +0.2762504972 - Фактор який дає бонуси доменам .COM. Дивно так?

Іншими словами:

  • Яндекс приділяє велику увагу входженню ключа у назві домена.
  • Як не дивно, але перевага надається доменним зонам 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 - Це середній час перебування на сайті за даними ЯндексБару
  9. FI_LERF_LR_LOG_RELEV: +0.06059448504 - це релевантність посилання на основі якості кожного посилання
  10. FI_NUM_SLASHES: +0.05057609417 - Кількість косих рисок в URL-адресі є фактором ранжування. Тож це можливо стверджувати що таки глубина вкладання яке відображає 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 табличці

Яндекс парсить Google, Bing, YouTube і TikTok

З кодової бази також видно, що у Яндекса є багато парсерів для інших сайтів та їхніх сервісів. Одразу помітно, що парсери є повнофункціональними. Кожен значущий компонент пошукової видачі Google витягується.

яндекс парсер

яндекс парсер

Існує й інший код, який вказує на те, що Яндекс використовує деякі дані Google як частину розрахунків DSSM, але 83 фактори ранжування, названі Google, самі по собі ясно дають зрозуміти, що Яндекс досить сильно спирається на результати Google. Тобто тепер є пояснення тому, що мали помічати SEO раніше як при падінні чи зросту позицій у Google, мінялися позиції і в Яндексі.

як яндекс спирається на гугл

Фактори переоптимізації

315 факторів ранжування мають порогові значення, перевищення яких свідчить про те, що система вважає цю характеристику сторінки надмірно оптимізованою. 39 з цих факторів ранжування є частиною початково зважених факторів, які можуть перешкоджати включенню сторінки в початковий список публікацій.

Ви можете знайти їх у таблиці, на яку я дав посилання вище, відфільтрувавши за коефіцієнтом ранжування та колонкою AntiSeoUpperBound

Вітальні хости

Яндекс має низку механізмів просування по всій своїй кодовій базі. Це штучні покращення певних документів, щоб забезпечити їм вищі бали під час ранжування.

Одне з цих нововведень, яке мені здалося особливо цікавим, пов'язане з "Вітальними запитами". Де життєво важливим хостом може бути будь-який вказаний сайт. Серед змінних особливо згадується NEWS_AGENCY_RATING, що наводить на думку про те, що Яндекс надає переваги певним новинним організаціям, упереджуючи їх у своїх результатах. Вдаючись у геополітику, слід зазначити, що це дуже відрізняється від Google, який категорично не допускає подібних упереджень у своїх системах ранжування. Але для Яндекса який зараз під контролем держави цей фактор є край важливим.

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

У кодовій базі показано, як документи зберігаються на сервері документів Яндекса. Це допомагає зрозуміти, що пошукова система не просто робить копію сторінки і зберігає її у своєму кеші, вона фіксує різні особливості у вигляді метаданих, щоб потім використовувати їх у подальшому процесі ранжування.

Файли з SQL-запитами свідчать про те, що сервер документів має близько 200 стовпців, включаючи DOM-дерево, довжину речень, час вибірки, серію дат, оцінку антиспаму, ланцюжок перенаправлень і те, чи є документ перекладеним чи ні.

Найцікавішим у цій підмножині є кількість використаних симхешів. Симхеші - це числове представлення контенту, і пошукові системи використовують їх для блискавичного порівняння для визначення дубльованого контенту. В архіві роботів є різні приклади, які вказують на те, що дубльований контент явно знижується у пошуку

Крім того, як частина процесу індексування, кодова база використовує старі добрі TF-IDF, BM25 та BERT.

Посилкові фактори

Яндекс неодноразово на своїх виступах стверджував, що не враховує більше посилкових факторів або надає їм мінімального значення. Але що кажуть в Росії та як воно є ми знаємо. Яндекс працює з факторами посилань. У кодовій базі також можна знайти багато інформації про фактори посилань і про те, як визначаються пріоритети посилань.

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

Варто зазначити, що в Яндексі є рейтинг хостів і деякі показники, які, як видається, зберігаються надовго після того, як сайт або сторінка набуває репутації спаму.

Ще одна річ, яку робить Яндекс - переглядає копії в домені та визначає, чи є дублікат контенту з цими посиланнями. Це може бути розміщення посилань на всьому сайті, посилання на дублікатах сторінок або просто посилання з однаковим анкорним текстом, що походять з одного й того ж сайту.

Це ілюструє, наскільки тривіальним є дисконтування декількох посилань з одного джерела, і пояснює, наскільки важливо орієнтуватися на більше унікальних посилань з більш різноманітних джерел.

Навіщо я це писав?

Не дивлячись на те, що мало хто з української SEO спільноти зараз ще працює, чи дивиться в сторону розвитку своїх проектів під пошукову систему Яндекс, цей приклад та куски коду повинні допомогти нам розширити наше уявлення про сучасний пошук.

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

ПІдписка

Про автора

Автор цього блогу. У SEO понад 10 років. Окрім SEO цікавлюся всім, що пов'язано з технологіями та заробітком в інтернеті про що й стараюся ділитися з читачами.