Короткий ответ
Каннибализация запросов — это когда несколько страниц вашего сайта претендуют на один и тот же запрос, и Google каждый раз заново решает, какую из них показать. Итог: вместо одной страницы в топ-5 у вас две страницы в районе восьмой-пятнадцатой позиции, каждая с половиной сигналов.
Диагноз ставится не по совпадению слов в заголовках, а по данным: если по одному запросу в Search Console чередуются разные URL и средняя позиция скачет от месяца к месяцу — каннибализация есть. Если один URL стабильно держит запрос, а второй иногда мелькает с единичными показами, это норма, лечить нечего.
Почему это вообще вредит
Механика простая: всё, что делает страницу сильной, делится между конкурентами.
Делятся внешние ссылки. Кто-то сослался на статью, кто-то — на страницу услуги. Вместо одного URL с десятью ссылками получается два по пять.
Делятся внутренние ссылки и анкоры. Это самая частая внутренняя причина: одинаковый анкор из меню и из статей ведёт то на одну страницу, то на другую. Как это распутывается, я разбирал в статье про внутреннюю перелинковку — там же типовая ошибка «анкоры одной фразой ведут на обе страницы».
Делятся поведенческие сигналы. Клики и возвраты в выдачу размазываются по двум URL, и ни один не накапливает историю по запросу.
Google тратит обход впустую. Две страницы под один интент — это две страницы, которые нужно краулить, рендерить и переоценивать. На небольшом сайте это неважно, на каталоге в десятки тысяч URL — уже заметная часть краулингового бюджета.
Отдельный неприятный эффект — нестабильность. Даже если суммарный трафик держится, вы не можете внятно отчитаться о позициях: они прыгают не потому, что что-то менялось, а потому что Google переключается между вашими же страницами.
Как отличить каннибализацию от нормы
Две страницы про одно и то же — не всегда проблема. Разница в интенте.
| Ситуация | Каннибализация? | Что с этим делать |
|---|---|---|
| «Что такое X» в блоге и «Услуга X» в разделе услуг | Нет, если тексты не пересекаются | Развести формулировки, поставить ссылку из статьи на услугу |
| Две статьи в блоге под один вопрос разными словами | Да | Объединить в одну, вторую — под 301 |
| Страница категории и страница фильтра по той же категории | Да | Canonical на категорию или закрыть фильтр от индексации |
| Русская и эстонская версии одной страницы | Нет | Проверить hreflang |
| Страница услуги и страница «услуга + город» | Зависит | Если города различаются только названием в заголовке — да, это дубли |
| Статья и её же версия для печати / AMP | Да | Canonical на основную версию |
Проверочный вопрос, который я задаю себе перед тем, как что-то менять: если бы обе страницы существовали у конкурента, какую я бы открыл по этому запросу? Если ответ «любую, разницы нет» — их надо объединять. Если «зависит от того, что мне нужно» — интенты разные, и правильная работа здесь не слияние, а более чёткое разведение.
Как найти каннибализацию в Search Console
Основной инструмент бесплатный, и он же самый точный, потому что показывает реальную выдачу для вашего сайта, а не догадки.
- Откройте отчёт «Эффективность» и поставьте период 3–6 месяцев. На двух неделях чередование URL просто не наберёт статистики.
- Перейдите на вкладку «Запросы» и выберите запрос, который вас интересует, — обычно начинают с тех, где много показов и мало кликов.
- Не снимая фильтр по запросу, переключитесь на вкладку «Страницы». Здесь и виден диагноз: сколько URL показывалось по этому запросу.
- Посмотрите распределение. Один URL с 95% показов — нормально. Два URL по 40–50% — каннибализация.
- Проверьте динамику. Сравните два соседних периода: если ведущий URL по запросу сменился, Google до сих пор не определился.
- Повторите в обратную сторону: возьмите страницу, отфильтруйте по ней и посмотрите её запросы. Если страница собирает показы по запросам, под которые она вообще не писалась, — она перетягивает чужой кластер.
Вспомогательный приём — поиск оператором site: по ключевой фразе: site:вашсайт.ee фраза. Он показывает, какие страницы Google вообще считает релевантными теме. Это грубая проверка и не замена Search Console, но за минуту даёт список кандидатов.
Что не является методом диагностики: сравнение заголовков глазами и плагины, которые ищут пересечение ключей в текстах. Они находят совпадение слов, а совпадение слов — не конкуренция за запрос.
Откуда каннибализация берётся
По моим наблюдениям, в большинстве случаев её создаёт не автор текстов, а сама система.
Движок и шаблоны. Теги в WordPress, страницы архивов по датам и авторам, пагинация категорий, версии для печати. Всё это генерируется автоматически и попадает в индекс, если никто не сказал обратного.
Фильтры и параметры в магазине. Категория «диваны» и она же с параметром «сортировка по цене» — для Google это две страницы с почти одинаковым содержимым.
Рост блога без плана. Три статьи, написанные в разные годы под один и тот же вопрос разными словами. Это следствие того, что материалы пишутся по темам, а не по кластерам запросов: без кластеризации новая статья почти неизбежно перекрывает старую.
Отсутствие структуры под ядро. Если страницы не разложены по интентам заранее, перекрытия появляются сами. Это чинится на уровне структуры сайта, выведенной из семантического ядра, а не правкой отдельных текстов.
Страницы «услуга + город». Пять страниц, различающихся названием города в заголовке, — классический источник каннибализации на локальных рынках. Если на странице нет ничего локального, кроме подстановки, Google справедливо считает их одной страницей.
Что делать: четыре сценария
Универсального «удалите лишнюю» не существует. Выбор зависит от того, что несёт слабая страница.
1. Объединить. Подходит, когда обе страницы про одно и то же и обе слабые. Берёте лучшую как основу, переносите в неё уникальные куски второй, ставите с неё 301 на первую и переписываете внутренние ссылки на новый адрес. Редирект без переноса содержимого — половина работы: вы сохраните ссылочный вес, но потеряете текст, за который страница что-то собирала.
2. Развести интенты. Подходит, когда страницы всё-таки разные, но написаны нечётко. Из информационной статьи убираются коммерческие формулировки («заказать», «цена», «стоимость»), из коммерческой — попытка объяснить теорию на три экрана. После этого статья ссылается на услугу, а не конкурирует с ней.
3. Свести техническими средствами. Для фильтров, пагинации, параметров и служебных страниц: rel="canonical" на основную версию либо noindex, если страница вообще не нужна в выдаче. Здесь важно не перепутать: canonical — подсказка, и Google её иногда игнорирует; noindex — команда.
4. Удалить. Последний вариант, и только для страниц без трафика, без ссылок и без смысла. Всё остальное лучше перенаправить.
После любой из операций проверьте, что на изменённые страницы не осталось ссылок со старыми анкорами — иначе вы восстановите конкуренцию своими руками через месяц.
Что я вижу на своих проектах
Каннибализация почти никогда не бывает единственной проблемой сайта, и я не встречал случая, когда её устранение само по себе меняло картину трафика в разы. Она работает иначе: снимает потолок там, где страница уже близка к топу и не может через него пройти.
Три наблюдения из практики.
Первое: чаще всего пары находятся не там, где их ждёшь. Владелец сайта подозревает две похожие статьи, а по данным конкурируют страница услуги и страница тега, о существовании которой он не знал. Поэтому диагностика начинается с отчёта, а не с гипотезы.
Второе: на многоязычных сайтах в Эстонии я регулярно вижу мнимую каннибализацию — эстонская и русская версии одной страницы, у которых не размечен hreflang. Выглядит как конкуренция, лечится не слиянием, а разметкой. Ошибка дорогая: пользователь получает в выдаче версию на языке, которым не пользуется, и уходит.
Третье, про границы применимости: на сайте до 30–40 страниц каннибализацию проще предотвратить структурой, чем искать. На каталоге в десятки тысяч URL ручной разбор по запросам невозможен, и работа идёт с шаблонами — правилами индексации фильтров, canonical и пагинации, а не с отдельными страницами. Метод из этой статьи рассчитан на первый случай.
Если после объединения страниц позиции просели на пару недель — это нормально: Google переоценивает объединённый URL. Тревожиться стоит, если через месяц ситуация не выправилась.
Чек-лист: разобрать каннибализацию за один заход
- Выпишите 15–20 главных запросов сайта — из семантического ядра или из отчёта по показам.
- По каждому посмотрите в Search Console, сколько URL по нему показывалось за 3–6 месяцев.
- Отметьте запросы, где два и более URL делят показы, а позиция нестабильна.
- Для каждой пары ответьте, разный ли у страниц интент.
- Выберите победителя — по трафику, ссылкам и соответствию интенту, а не по дате публикации.
- Примените сценарий: объединить, развести, свести canonical или удалить.
- Перепишите внутренние ссылки и анкоры так, чтобы ключевая фраза вела на одну страницу.
- Проверьте языковые версии — не считает ли Google их дублями.
- Вернитесь к отчёту через месяц и убедитесь, что по запросу остался один URL.
Если по ходу выяснится, что перекрытия идут не от текстов, а от шаблонов — плодятся страницы фильтров, тегов и пагинации, — правкой контента это не закрывается: нужны правила индексации на уровне движка, то есть веб-разработка. А когда таких перекрытий десятки и они завязаны на структуру каталога, разбирать их поштучно бессмысленно — это работа по SEO-продвижению с пересборки структуры.
