Страница в топ-7, а трафика почти нет
Есть у меня контентный портал, на котором я слежу за позициями почти рефлекторно — открыл Google Search Console, глянул на топ страниц, закрыл. Обычно там всё скучно и предсказуемо. Но однажды взгляд зацепился за одну страницу: позиция стабильно держится в районе 7, показов прилично, а вот кликов — почти нет. CTR около 0,5%.
Для позиции 7 это ненормально мало. На седьмом месте в выдаче обычно ловишь заметный процент кликов — люди ещё листают первую страницу, а не только топ-3. Реальный CTR должен быть в разы выше. Когда цифра просела настолько сильно, это не шум и не сезонность — это симптом. И симптом почти всегда означает, что где-то в системе есть скрытая поломка, которую просто так глазами не видно.
Первая гипотеза — и почему она не сработала
Первым делом я, как обычно, заподозрил сниппет: может, тайтл скучный, может, дескрипшен обрезается, может, страницу не так подают в выдаче. Переписал мета-теги, сделал заголовок конкретнее, добавил цифру в дескрипшен — стандартный набор действий, который в девяти случаях из десяти решает проблему с низким CTR.
Не помогло. Позиция осталась той же, CTR почти не сдвинулся. Значит, дело не в оформлении сниппета — раз внешний вид объявления не влияет на клик, проблема сидит глубже, в самой механике выдачи для этого запроса.
Диагноз: страница конкурирует сама с собой
Я открыл в Search Console отчёт «Запросы» и для конкретного проблемного запроса посмотрел не только позицию, но и все страницы сайта, которые вообще получали по нему показы. И вот тут стало видно: по одному и тому же запросу в выдаче светился не один URL с моего сайта, а несколько. То одна страница, то другая, то третья — поисковик буквально перебирал их между собой от показа к показу.
Это классическая каннибализация запросов: разные страницы портала отвечают на один и тот же интент пользователя. Поисковая система не понимает, какую из них считать «главной» по этому запросу, и вместо того чтобы стабильно продвигать одну сильную страницу, распыляет позицию сразу на несколько слабых. Клики, ссылки, поведенческие сигналы — всё это делится на части вместо того, чтобы копиться в одном месте.
Позиция в топе — это ещё не сигнал здоровья страницы. Если несколько ваших же страниц конкурируют за один запрос, поисковик видит не «сильный сайт», а путаницу — и наказывает за неё именно там, где вы теряете деньги: в кликах.
Чтобы не проверять руками каждый подозрительный запрос, я написал небольшой Python-скрипт (analyze.py), который выгружает данные из Search Console, группирует запросы по страницам и подсвечивает те случаи, где на один и тот же запрос претендуют два и больше URL одновременно. Это превратило разовую находку в повторяемую диагностику — теперь можно гонять такой аудит по всему порталу, а не искать аномалии вручную по одной странице за раз.
Как я лечил каннибализацию
Диагноз подсказал и лечение. Правило простое и жёсткое: один интент — одна страница. Если на один и тот же поисковый запрос отвечают несколько URL, они не должны сосуществовать — их нужно объединить в одну сильную страницу.
- Собрать все страницы-дубли по интенту. С помощью analyze.py и ручной проверки в Search Console выписал все URL, которые получали показы по конфликтующему запросу.
- Выбрать главную страницу. Из группы дублей выбрал ту, у которой лучше исторические позиции, больше ссылок и более полный контент — она и осталась «канонической» под этот интент.
- Консолидировать контент. Полезные куски текста, структуру и внутренние ссылки со слабых страниц перенёс на главную, чтобы она стала действительно исчерпывающим ответом на запрос.
- Убрать конкурентов. Более слабые страницы либо закрыл 301-редиректом на главную, либо, если контент всё же нужен под чуть другой оттенок интента, проставил canonical, явно указав поисковику, какая страница приоритетная.
- Проверить остальной портал. Прогнал тот же скрипт по всем ключевым кластерам запросов, а не только по проблемной странице — нашлись ещё несколько похожих, но менее выраженных случаев.
Что изменилось после склейки
После редиректов и канониклов поисковику стало нечего перебирать: по запросу осталась одна страница, и весь сигнал — ссылочный вес, поведенческие метрики, история кликов — начал копиться на ней одной, а не размазываться по трём-четырём URL. Позиция подтянулась, но главное — исчезла аномалия с CTR: показатель кликабельности на этой позиции вернулся к нормальным для такого места в выдаче значениям.
Отдельный побочный эффект — стало проще следить за аналитикой. Когда по запросу отвечает одна страница, метрики читаются однозначно: вижу, растёт позиция или падает, вижу реальный CTR, вижу, что именно работает. Пока данные размазаны по нескольким URL, любые выводы о «что сработало, а что нет» превращаются в гадание.
Урок: высокие позиции не равны трафику
Главный вывод из этой истории простой, но его легко забыть, когда смотришь только на позиции в отчётах: сама по себе хорошая позиция ничего не гарантирует. Если несколько ваших страниц дерутся за один и тот же запрос, вы конкурируете сами с собой — и в этой конкуренции проигрывают все стороны сразу, включая вас.
Красный флаг — это не низкая позиция, а несостыковка между позицией и кликами. Топ-7 с CTR 0,5% говорит о поломке громче, чем позиция 25 с честным нулём показов.
Что я теперь делаю регулярно:
- Периодически прогоняю отчёт «запросы → страницы» в Search Console и ищу случаи, где по одному запросу светится больше одного URL с сайта.
- Держу в голове правило «один интент — одна посадочная страница» ещё на этапе планирования новых материалов, чтобы не создавать будущие дубли руками.
- Смотрю не только на позицию, но и на CTR относительно этой позиции — расхождение почти всегда указывает на скрытую техническую проблему, а не на «плохой» заголовок.
Каннибализация запросов редко бросается в глаза — она прячется за нормальными на первый взгляд позициями. Но стоит один раз сопоставить позицию и CTR и заметить нестыковку, и дальше это уже вопрос техники: найти дубли, выбрать главную страницу, склеить сигналы в одном месте.