Каннибализация поисковых запросов
1. Архитектура и принцип работы
Архитектура каннибализации уходит корнями в ранние алгоритмы, оценивавшие страницы изолированно. С развитием семантических моделей (LSA, нейросети) поисковики стали анализировать весь сайт как единую сущность. Яндекс с ПФ (поисковыми факторами) и Google с RankBrain начали штрафовать кластеры страниц с идентичными интентами. Триггер — пересечение семантических ядер страниц выше порога (например, косинусное сходство >0,7). Система выбирает каноническую страницу, остальные понижает в ранжировании или исключает из индекса. История фактора связана с ростом числа страниц на сайтах и необходимостью борьбы с дублированием контента.
2. Математическая механика и триггеры ранжирования
Технически каннибализация оценивается через векторное представление текстов и запросов. Формула релевантности страницы запросу: Rel = Σ (w_i * sim(q, d_i)), где sim — косинусное сходство эмбеддингов, w_i — вес поля (заголовок, тело, анкоры). При наличии нескольких страниц с Rel выше порога (0,65–0,75) включается механизм выбора лучшей: сравниваются поведенческие факторы (CTR, время на странице, отказы), авторитетность (ссылочные), свежесть. Проигравшие страницы получают понижение вплоть до фильтра «каннибализация» (в Яндексе — «понижение по запросу»). Веса факторов динамичны: для коммерческих запросов важнее конверсионные метрики, для информационных — глубина просмотра. Триггер пессимизации — устойчивое доминирование одной страницы над другой по одному запросу при отсутствии явного канонического указания.
3. Специфика в Яндекс (YATI) vs Google
Яндекс использует YATI (Yet Another Text Index) и матрицу ПФ, где каннибализация выявляется через кластеризацию запросов и страниц в рамках хоста. Алгоритм «Королевская карусель» и фильтр «Остров Мордовии» (для аффилированных страниц) напрямую подавляют конкурирующие URL. Google опирается на Entity Graph и Core Updates: страницы связываются с сущностями, и при дублировании интентов срабатывает механизм «выбора канонической» на основе PageRank и поведенческих сигналов. Google чаще использует 301-редиректы и канонические теги, тогда как Яндекс активнее применяет ручную пессимизацию через ПФ. Оба поисковика сходятся в том, что каннибализация снижает доверие к сайту в целом.
4. Нормативы SLA и диагностическая матрица
| Параметр / Метрика | Эталон по SLA | Критическая ошибка |
|---|---|---|
| Косинусное сходство семантических ядер | < 0,5 | > 0,7 |
| Доля запросов кластера, где в топ-10 >1 URL сайта | < 5% | > 20% |
| CTR канонической страницы по кластеру | > 3% (для информационных) | < 1% |
5. Пошаговый инженерный протокол внедрения
- Шаг 1: Соберите семантику и кластеризуйте запросы по интентам с помощью косинусного сходства эмбеддингов (например, TF-IDF + косинус).
- Шаг 2: Проведите аудит всех URL в кластере через краулинг, выявите страницы с пересечением семантики выше 0,6 по формуле сходства.
- Шаг 3: Определите каноническую страницу по метрикам: CTR, конверсия, ссылочный вес, возраст. Остальные пометьте для объединения.
- Шаг 4: Объедините контент на канонической странице, настройте 301-редиректы или canonical для второстепенных URL.
- Шаг 5: Мониторьте позиции и трафик кластера в Яндекс.Вебмастере и Google Search Console, при необходимости корректируйте.
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
# эмбеддинги страниц (например, TF-IDF)
vecs = vectorizer.transform([page1_text, page2_text])
sim = cosine_similarity(vecs)[0,1]
if sim > 0.7:
print('Каннибализация: требуется объединение или canonical')
6. Типичные ошибки при оптимизации
- Фатальная ошибка 1: Игнорирование каннибализации на этапе планирования контента. Избегайте: создавайте контент-план с проверкой пересечения семантики новых страниц с существующими.
- Фатальная ошибка 2: Слепое объединение страниц без анализа интентов. Избегайте: проверяйте, что запросы действительно синонимичны, а не разные стадии воронки.
- Фатальная ошибка 3: Отсутствие мониторинга после исправлений. Избегайте: настройте регулярный аудит (раз в месяц) и отслеживайте позиции кластера в динамике.
