Это, пожалуй, самая прямая улика во всей утечке исходников поиска применительно к ссылкам. Не косвенный признак, не мёртвый слот в корпусе факторов, а конкретное правило рантайма со списком факторов, которое на скоринге выключает весь ссылочный блок целиком - и делает это адресно, для самого денежного класса запросов. Разбираем по коду.
Где это лежит
Компонент находится в группе rearrange-правил, которые крутятся уже в рантайме формирования выдачи (срез search/, не робот-краулинг). Конкретное место:
Код: Выделить всё
web/rearrange/antiseo_reset_factors/antiseo_reset_factors.cpp:11-38
Код: Выделить всё
pron=disablefactorsgroup: <ResetFactors[]>
Что именно зануляется
Полный список ResetFactors[] из antiseo_reset_factors.cpp:11-38. Это не выборка - это весь ссылочный блок, который правило снимает со скоринга:
Код: Выделить всё
PR - PageRank документа
SR - SeoRank / статический ранг по ссылочному
NumLinks - число входящих ссылок
LinksWithWordsPercent - доля ссылок с вхождением слов запроса
LinksWithAllWordsPercent - доля ссылок со всеми словами запроса
LRWithStops - link-relevance с учётом стоп-слов
XLRGeoRelevRegionCountry - гео-релевантность ссылочного (страна/регион)
CommLinksSEOHosts - ссылки с коммерческих SEO-хостов
LRDocQuorum - кворум документа по ссылочной релевантности
LinkMaxForms - макс. число словоформ в анкорах
LinkWeightedForms - взвешенные словоформы анкоров
LinkForms - словоформы анкоров
LinkQualityFixed - фиксированное качество ссылок
NewLinkQualityFixed - новая версия качества ссылок
UkrainPageRank - региональная вариация PageRank
PeriodicLinkDatesPercent - доля ссылок с периодичными датами (накрутка)
LinkAlmostPeriod - почти-периодичность появления ссылок
QueryRefTrigramQuery - триграммы запроса в реферер-тексте
GeoDispersion - гео-дисперсия ссылочной массы
RelevGeoLinksPercent - доля гео-релевантных ссылок
LangDispersion - языковая дисперсия ссылочного
UrlLinkPercent - доля ссылок-URL (голый url как анкор)
StaticTitleLRBM25 - BM25 title по ссылочному статике
SeoInPayLinks - ссылки в проплаченных размещениях
TitleInLinksTrigrams - триграммы title в анкорах ссылок
SOMaxSumSourceRank - макс. сумма source-rank источников
Когда правило срабатывает
Условие включения в IsInterestedRequest:
Код: Выделить всё
antiseo_reset_factors.cpp:56 IsInterestedRequest():
locale == RL_RU
AND CommercialMxFactor > CommercialMxThreshold
AND RawGeo == 213 // Москва
- Локаль RL_RU - русскоязычная выдача.
- CommercialMxFactor выше порога CommercialMxThreshold - это отдельный обученный классификатор коммерческости запроса. Не эвристика по словам типа купить или цена, а ML-фактор, который ставит запросу оценку коммерческого интента. Порог отсекает информационку и оставляет именно транзакционные, денежные запросы.
- RawGeo == 213 - геопривязка к Москве, самому конкурентному и дорогому региону.
Что это значит для ссылок
Соберём логику воедино. Робот по-прежнему строит ссылочный граф и честно считает по нему статику - это видно по тому, как факторы вычисляются на стороне индексации (SeoMark в samovar/lemur, link-annotation в jupiter, разбор §D3 первого документа). PR, SR, NumLinks, LinkQualityFixed, NewLinkQualityFixed, SeoInPayLinks, CommLinksSEOHosts - всё это реально вычисляется и лежит в факторах документа.
Это прямое кодовое подтверждение тезиса о смерти ссылок (§F.4/§F.5 первого документа). Раньше можно было аргументировать, что ссылки обесценены пассивно - через мёртвые слоты в корпусе факторов и низкие выученные веса. Здесь мы видим активный механизм: явный рантайм-сброс группы. Это сильнее любого веса, потому что вес можно докрутить ссылочной массой, а disablefactorsgroup просто вырезает фактор из формулы для попавших под условие документов.Робот строит ссылочный граф добросовестно. Но на коммерческой выдаче по Москве рантайм берёт весь этот блок и обнуляет его до того, как он повлияет на скор. Ссылочное считается - и не применяется.
Про SeoInPayLinks отдельно
Наличие SeoInPayLinks (ссылки в проплаченных размещениях) прямо в списке зануляемых - это самостоятельное наблюдение. Сам факт существования такого фактора означает, что система детектирует покупные размещения как отдельный класс. А его присутствие в ResetFactors[] означает, что на коммерции этот сигнал тоже выключается заодно со всем остальным ссылочным. Логика тут не парадоксальна, а наоборот цельная: раз весь ссылочный блок снимается со скоринга, то отдельный учёт покупных ссылок (в плюс или в минус) на этом срезе уже не нужен - ссылки не участвуют в ранжировании в принципе. То же касается PeriodicLinkDatesPercent и LinkAlmostPeriod (детекторы периодичной накрутки) и CommLinksSEOHosts (ссылки с SEO-бирж и сеток): все три - в списке, все три снимаются.
SEO-вывод
Практически это означает: на коммерции по Москве бюджет в ссылочное (биржи, сетки, анкорная оптимизация, проплаченные размещения) не конвертируется в ранжирование, потому что соответствующие факторы вырезаны из формулы для этого среза. Ресурсы логичнее перекладывать в коммерческие и поведенческие сигналы, которые на этой выдаче остаются в игре.Для коммерческих запросов RU-локали в Москве покупка ссылок и анкорная накрутка нейтрализуются на уровне кода рантайма, а не на уровне весов модели. Ссылочный граф строится, но не доезжает до скора: PR, SR, NumLinks, анкорная семантика, качество ссылок и детекторы платных размещений выключаются группой через pron=disablefactorsgroup. Самый денежный класс запросов - именно тот, где ссылки максимально обнулены.
Дисклеймер
Срез примерно 2022 года. Имена факторов, имя правила, состав ResetFactors[] и пороги (включая CommercialMxThreshold и привязку RawGeo == 213) могли смениться. Конкретные веса в тексте иллюстративны - реальные обучаемы и проприетарны. Но структура механизма зафиксирована в исходнике однозначно: это явный рантайм-сброс ссылочной группы по условию коммерческости, локали и гео, а не предположение.