Дубли, которые вы не видите: пагинация, фильтры, UTM и сессионные параметры

Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога hozyindachi.ru о продвижении и доработке сайтов.

Когда мне присылают сайт на аудит со словами «у нас всё чисто, дублей нет», я почти всегда нахожу их в первые двадцать минут. Не потому что владелец врёт — он действительно их не видит. Дубли, о которых пойдёт речь, не лежат на поверхности в виде двух одинаковых статей. Они прячутся в технике: в адресах с параметрами, в номерах страниц каталога, в хвостах рекламных ссылок. Глазами по сайту вы их не поймаете, а робот Яндекса находит их тысячами и честно тащит в индекс.

За двадцать лет работы я убедился: именно эти «невидимые» дубли чаще всего стоят бизнесу позиций. Не переспам, не плохой контент, а банальные технические копии, которые никто не закрыл вовремя. Давайте разберём четыре главных источника по порядку — пагинацию, фильтры, UTM и сессии — и я покажу, что с каждым делать на практике, а не в теории.

Дубли, которые вы не видите: пагинация, фильтры, UTM и сессионные параметры

Почему скрытые дубли опаснее тех, что видно глазами

Обычный дубль — например, две одинаковые карточки товара под разными адресами — заметит даже начинающий оптимизатор. Открыл сайт, прошёлся по разделам, нашёл повтор. Скрытые дубли так не ловятся, и в этом вся беда. Они рождаются автоматически: движок сам генерирует адрес при каждом клике по фильтру, при каждом переходе со второй страницы на третью, при каждом заходе из рекламы. Владелец видит один красивый URL, а в индексе их пятьсот.

Чем это бьёт по сайту? Во-первых, размывается ссылочный и поведенческий вес. Вместо одной сильной страницы категории поисковик видит десяток её клонов, и сигналы доверия делятся между ними. Ни одна копия не набирает достаточно, чтобы выйти в топ. Во-вторых, тратится краулинговый бюджет — то самое ограниченное количество страниц, которое робот готов обойти за визит. Пока он ходит по мусорным адресам с параметрами, до новых важных страниц у него руки не доходят, и они неделями ждут индексации.

В-третьих, и это самое неприятное, Яндекс может сам выбрать в качестве основной не ту страницу, что вам нужна. Вы оптимизировали чистый адрес категории, а в выдачу попадает её версия с хвостом ?sort=price&page=3 — без нормального заголовка, с обрезанным текстом и кривым сниппетом. Пользователь видит это в поиске, не кликает, поведенческие падают, позиции сползают. Замкнутый круг, который начинается с одной незакрытой технической мелочи.

Пагинация: как страницы 2, 3, 4 растаскивают вес категории

Пагинация — это разбивка списка товаров или статей на страницы. В каталоге из тысячи позиций их физически нельзя показать на одном экране, поэтому появляются адреса вида /category/?page=2, /category/?page=3 и так далее. Сами по себе они нужны и пользователю, и роботу для обхода. Проблема начинается, когда их оформляют неправильно.

Самая частая ошибка, которую я вижу годами: на всех страницах пагинации стоит canonical на первую страницу категории. Логика вроде здравая — «это же одна категория, пусть склеивается в одну». Но на практике это говорит роботу: страниц 2, 3, 4 как будто не существует, индексируй только первую. А товары, которые лежат на глубоких страницах, в итоге выпадают из индекса вообще, потому что других путей к ним часто нет. Я лично разгребал интернет-магазины, где половина ассортимента была недоступна поиску именно из-за такого «удобного» canonical.

Когда-то спасал тег rel="next" и rel="prev" — он связывал страницы пагинации в цепочку. Google официально перестал его учитывать ещё несколько лет назад, и сегодня закладываться на него бессмысленно. Что работает сейчас: каждая страница пагинации должна ссылаться canonical сама на себя, оставаться открытой для индексации и иметь хотя бы минимально уникальный title с указанием номера страницы — «Категория — страница 2». Так робот спокойно обходит весь каталог, добирается до всех товаров, но при этом понимает, где «материнская» страница, по которой надо ранжировать.

Альтернатива для крупных каталогов — страница «Показать всё», на которую и ведёт canonical со всех частей пагинации. Решение хорошее, но капризное: если товаров слишком много, такая страница грузится медленно и проваливает Core Web Vitals, а это уже отдельная техническая боль. Если у вас сложный каталог и вы не уверены, какую схему выбрать, это как раз тот случай, когда лучше заказать технический SEO-аудит сайта и получить решение под конкретную структуру, а не наугад.

Фильтры и сортировки: бесконечные комбинации адресов

Фильтры — это вообще отдельная вселенная дублей. Представьте каталог обуви: цвет, размер, бренд, цена, материал, сортировка по популярности и по цене. Каждая галочка добавляет в адрес параметр. Пользователь выбрал «чёрные кроссовки 42 размера до 5000 рублей, сортировка по новизне» — и движок сгенерировал уникальный URL. Теперь посчитайте, сколько комбинаций даёт пересечение всех значений всех фильтров. Тысячи. Десятки тысяч. И каждый — отдельная страница в глазах робота.

Это явление называют фасетной навигацией, и она способна раздуть индекс до неприличных размеров. Контент на таких страницах почти одинаковый — те же товары, переставленные местами или слегка отфильтрованные. Для поисковика это near-duplicate, почти-дубли, и относится он к ним соответственно: тратит на них бюджет обхода, путается, какую считать главной, и в худшем случае помечает раздел как низкокачественный из-за обилия тонких однотипных страниц.

Но рубить все фильтры под корень тоже неправильно — и вот тут начинается искусство. Часть фильтрованных страниц имеет реальный поисковый спрос. «Купить чёрные кроссовки» люди ищут, и под такой запрос фильтрованная страница может и должна ранжироваться. Поэтому я всегда делю фильтры на две группы. Первая — коммерчески ценные комбинации, под которые есть частотность: их превращаем в полноценные посадочные страницы с уникальным заголовком, текстом и человекопонятным адресом, открываем для индексации и продвигаем. Вторая — всё остальное, бесконечные сочетания без спроса: их закрываем от индексации и склеиваем canonical на базовую категорию.

Технически непродвигаемые фильтры закрывают несколькими способами в связке. Canonical с фильтрованной страницы на чистую категорию убирает дубль из ранжирования. Мета-тег robots со значением noindex, follow на мусорных комбинациях убирает их из индекса, но оставляет робота ходить по ссылкам. А в robots.txt директивой Disallow можно закрыть от обхода целые шаблоны параметров, чтобы не жечь краулинговый бюджет. Какой инструмент применять, зависит от движка и от того, что важнее — убрать из индекса или сэкономить обход. Часто грамотная настройка фильтров требует правок прямо в коде CMS, и тогда без технической доработки сайта не обойтись — шаблонными галочками в админке тут не закроешь.

UTM-метки: рекламный трафик, который плодит копии страниц

UTM-метки — это параметры, которые маркетологи цепляют к ссылкам, чтобы в аналитике видеть, откуда пришёл трафик. Выглядят они как хвост ?utm_source=yandex&utm_medium=cpc&utm_campaign=spring. Штука полезная и нужная — без меток вы не поймёте, какая реклама окупается. Но для индексации это головная боль: каждая метка создаёт новый адрес той же самой страницы.

Сценарий, который я вижу постоянно. Запустили рекламу в Яндекс Директе, в рассылке, в соцсетях — для каждого канала своя метка. Люди переходят, делятся ссылками, копируют их в мессенджеры. Эти размеченные адреса попадают на форумы, в чаты, кто-то на них даже ссылается. Робот их находит, заходит — а там полная копия вашей продающей страницы, только с хвостом в URL. И вот уже в индексе пять версий одной посадочной, и непонятно, какую Яндекс посчитает основной.

Контент при этом не меняется ни на байт — UTM-метка вообще не влияет на то, что видит пользователь, она нужна только для статистики. Именно поэтому решение здесь чистое и однозначное. Для Яндекса главный инструмент — директива Clean-param в robots.txt. Она прямо говорит роботу: эти параметры на содержимое не влияют, склей все адреса с ними в один чистый. Записывается так: Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content. После этого Яндекс перестаёт считать размеченные адреса отдельными страницами и передаёт весь их вес на чистый URL.

В дополнение к этому на всех страницах должен стоять корректный canonical на версию без параметров — это работает и для Google, у которого своего аналога Clean-param нет, и подстраховывает Яндекс. Связка «Clean-param плюс canonical» закрывает проблему UTM практически полностью. Важный нюанс: Clean-param — директива капризная к синтаксису, одна лишняя точка или неверный путь, и она просто не сработает, а вы будете думать, что всё закрыто. Проверять её обязательно в Яндекс.Вебмастере после внедрения.

Сессионные параметры и прочий технический мусор в URL

Сессионные параметры — это идентификаторы вроде ?sid=abc123, ?PHPSESSID=... или ?sessionid=..., которые старые или плохо настроенные движки подставляют в адрес, чтобы «помнить» пользователя между страницами. Беда в том, что для каждого посетителя, а иногда и для каждого визита, генерируется свой идентификатор. И если робот заходит на сайт несколько раз, он каждый раз получает один и тот же контент под новым уникальным адресом. Дубли множатся буквально в геометрической прогрессии.

Я сталкивался с проектами, где из-за сессий в URL индекс распухал в десятки раз относительно реального числа страниц. Робот ходил по призрачным адресам, которые при следующем заходе уже не существовали, получал ошибки, тратил бюджет впустую и почти не добирался до настоящего контента. Сайт при этом мог выглядеть абсолютно нормально для живого человека — проблему видно только в логах сервера и в отчётах вебмастера по проиндексированным страницам.

Правильное решение — на уровне сервера: сессия должна храниться в куках, а не в адресе. Это вопрос настройки движка, и его нужно закрывать в первую очередь, потому что бороться с симптомами бессмысленно, если генератор дублей работает. Если же переписать поведение CMS быстро нельзя, временно спасают те же инструменты: Clean-param для сессионного параметра в Яндексе и canonical на чистый адрес. Но это именно подпорка — корень проблемы в том, что движок вообще пишет сессию в URL, и убирать надо его.

Сюда же отнесу всякий прочий параметрический мусор: метки печати ?print=1, параметры партнёрских программ, идентификаторы рефералов, версии для слабовидящих, технические флаги CMS. Логика по всем одна: если параметр не меняет содержимое страницы — он не должен порождать отдельный индексируемый адрес. Разбор такого хвоста параметров — стандартная часть любого моего аудита, и почти на каждом проекте всплывает что-то, о чём владелец даже не подозревал.

Как найти все эти дубли на своём сайте

Теория теорией, но без диагностики вы не поймёте масштаб. Начинать я советую с Яндекс.Вебмастера — это бесплатно и честно показывает, что робот реально видит. Смотрите раздел со страницами в поиске и исключёнными страницами: там Яндекс прямо помечает дубли и причины, по которым он что-то выкинул из индекса. Если в исключённых вы видите кучу адресов с параметрами и пометкой про дубли — диагноз очевиден.

Дальше — сравните два числа: сколько страниц у вас на самом деле и сколько их в индексе. Если реально сто страниц, а в индексе три тысячи — у вас классическая фабрика дублей где-то в фильтрах или сессиях. Удобно загнать сайт в любой краулер-парсер (Screaming Frog, Netpeak Spider и подобные), который пройдёт по сайту как робот и вытащит все адреса с параметрами, дубли заголовков, страницы с одинаковыми title и description. Совпадающие метатеги — почти безошибочный маркер дублей.

Отдельно загляните в логи сервера, если есть доступ. Они показывают, по каким именно адресам ходит робот и сколько бюджета он сжигает на мусор. Это самый честный источник правды, но и самый трудоёмкий в анализе. Если разбираться в логах самостоятельно некогда или непонятно, как — для этого и существует бесплатный экспресс-аудит сайта: он за пару минут покажет основные технические проблемы, включая параметрические дубли, и подскажет, куда копать дальше.

Что делать: canonical, Clean-param, robots — когда какой инструмент

Давайте сведу всё в понятную систему, потому что главная путаница в том, что инструменты похожи, а работают по-разному. Canonical не запрещает индексацию — он говорит, какую из похожих страниц считать главной, и передаёт ей вес. Применяйте его, когда страница нужна пользователю (фильтр, пагинация, UTM-ссылка работает), но в индексе должна быть другая версия.

Мета-тег noindex прямо убирает страницу из индекса, но оставляет её доступной для обхода и переходов по ссылкам, если стоит follow. Это инструмент для страниц, которые вообще не должны быть в поиске, — мусорные фильтры, служебные разделы. Директива Disallow в robots.txt запрещает роботу заходить на адрес вообще — экономит бюджет обхода, но имейте в виду: если страница уже в индексе, Disallow её оттуда не выкинет, для удаления нужен именно noindex, по которому робот должен сначала пройти. А Clean-param — это специфичный для Яндекса и самый элегантный способ разобраться с параметрами, которые не меняют контент: метки, сессии, сортировки.

Грубая ошибка — комбинировать их бездумно. Например, закрыть страницу в robots.txt через Disallow и одновременно повесить на неё noindex: робот не сможет зайти, не увидит noindex и не удалит страницу из индекса. Или поставить canonical на страницу, закрытую от обхода, — робот до canonical просто не доберётся. Каждый инструмент решает свою задачу, и сила в правильной комбинации под конкретный тип дубля, а не в том, чтобы навесить всё сразу. За двадцать лет и 300+ проектов у меня сложилась чёткая схема, какой параметр чем закрывать на каждом популярном движке, и именно поэтому я ни разу не получил фильтр Яндекса — потому что не ломал индексацию «на всякий случай».

Когда стоит передать это специалисту

Если вы дочитали досюда и поняли, что на вашем сайте, скорее всего, живёт целый зоопарк скрытых дублей, — это нормально. Параметрический мусор есть почти у всех, кто не занимался техническим SEO целенаправленно. Плохо другое: пока дубли растаскивают вес и краулинговый бюджет, ваши деньги на рекламу и контент работают вполсилы, а конкуренты с чистой технической базой обходят вас при меньших вложениях.

Я — частный SEO-специалист, работаю напрямую с владельцем бизнеса, без агентств и менеджеров-посредников, и беру только один проект в нише, чтобы не продвигать конкурентов одновременно. За 20 с лишним лет вывел в ТОП-3 Яндекса больше 300 сайтов и ни разу не словил фильтр — как раз потому, что техническую чистоту, включая дубли, навожу до того, как начинаю наращивать трафик. Если вашему сайту не хватает целевых заявок из поиска, я готов разобрать его по косточкам: найти все дубли, закрыть параметрический мусор, склеить вес на нужные страницы и выстроить рост позиций. Начните с бесплатного аудита — я покажу точки роста без воды, а дальше решим, нужно ли профессиональное SEO-продвижение сайта под ключ или достаточно точечной доработки. Первый шаг ни к чему не обязывает, а проблему с трафиком надо закрывать сейчас, а не через полгода стагнации.

И ещё одно направление, которое сегодня нельзя игнорировать. Поиск меняется на глазах: всё больше людей получают ответы не в выдаче, а прямо от нейросетей — Поиск с Алисой, YandexGPT, GigaChat, ChatGPT, Perplexity. И вот что важно понимать про дубли в этом контексте: если ваш сайт замусорен параметрическими копиями и нейросети не могут чисто извлечь из него факты, вас просто не процитируют. GEO-продвижение — оптимизация под генеративный AI-поиск — начинается ровно с той же технической чистоты, что и классическое SEO. Я занимаюсь GEO с момента его появления на российском рынке и помогаю бизнесу попадать в ответы нейросетей, пока конкуренты об этом даже не задумались. Если хотите быть первыми в AI-поиске своей ниши, напишите мне на консультацию — разберём, как подготовить сайт и контент под генеративную выдачу. А разобраться в свежих материалах по теме можно в блоге со статьями по SEO и GEO.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

16 комментариев к “Дубли, которые вы не видите: пагинация, фильтры, UTM и сессионные параметры”

  1. Полина

    Забрала: невидимые дубли опасны; искать через Вебмастер и краулер; UTM, пагинация, фильтры, сессии; canonical на чистый URL; метод под тип мусора; убрать сессии из URL; дубли реально бьют по позициям; следить за индексом после чистки. Спасибо, займусь технической гигиеной каталога!

  2. Тимур

    Добавлю: после чистки дублей следите за индексом в Вебмастере. Число страниц в поиске должно снижаться до реального количества полезных, а исключённых мусорных — расти. Это подтверждает, что чистка работает. Плюс проверяйте, что канониклы и директивы применились и робот их учёл, это происходит не мгновенно. Контроль индекса после чистки показывает, что вы убрали хлам, а не просто настроили и забыли. Проверяйте результат по динамике индекса.

  3. Дарья

    Бьют существенно, особенно на средних и крупных сайтах. Дубли размывают вес между клонами, путают поиск, какую страницу показывать, тратят краулинговый бюджет на мусор вместо важного, снижают общую оценку качества сайта. Нередко чистка дублей сама по себе даёт заметный рост, без нового контента. Это не мелочь: на каталоге с тысячами параметрических клонов дубли могут быть главным тормозом. Техническая гигиена важна не меньше текстов.

  4. Станислав

    А насколько сильно эти скрытые дубли реально бьют по позициям? Или это мелочь на фоне контента?

  5. Спасибо, полезло проверять свой каталог. Забираю: опасны невидимые дубли; искать через Вебмастер и краулер; UTM склеивать канониклом; пагинацию правильно настроить; фильтры открывать выборочно, мусор закрывать; canonical на чистый URL; выбирать метод под тип мусора; убрать сессии из URL. Пойду искать дубли, о которых не знал.

  6. Евгений

    Сессионные параметры в URL — устаревшая, но встречающаяся беда. Когда движок добавляет идентификатор сессии в адрес, каждый заход плодит уникальный URL того же контента, и индекс засоряется бесконечно. Уберите передачу сессии через URL, используйте cookie. Это техническая проблема движка, которую надо чинить в корне. Параметры сессии в адресах способны наплодить дубли в промышленных масштабах, если их не устранить.

  7. Тамара

    Инструмент зависит от задачи. Canonical — когда страница нужна пользователю, но не должна индексироваться отдельно (склеиваем с основной). Специальная директива для параметров помогает поиску понять, какие параметры незначимы. robots закрывает обход того, что вообще не нужно роботу. Часто комбинируют. Главное — не запутаться: закрыть в robots то, что уже в индексе, не всегда убирает его оттуда. Выбор метода под конкретный тип мусорного URL.

  8. Владислав

    А чем закрывать мусорные параметры — robots, canonical или как-то ещё? Не пойму, что правильнее.

    1. Владислав, инструмент зависит от задачи. Canonical — когда страница нужна пользователю, но не должна индексироваться отдельно. Специальная директива для параметров помогает поиску понять, какие параметры незначимы. robots закрывает обход того, что вообще не нужно роботу. Часто комбинируют. Учтите: закрыть в robots то, что уже в индексе, не всегда убирает его оттуда. Выбор метода под конкретный тип мусорного URL.

  9. Ирина

    Канонический тег — основной инструмент против дублей. Он указывает поиску, какая версия страницы главная, и склеивает остальные с ней, передавая вес. Настройте rel canonical на чистый URL для всех параметрических вариантов. Но канониклы надо ставить правильно, иначе можно указать не на ту страницу и сделать хуже. Проверьте, что каноникл каждой страницы ведёт на верный адрес. Это база борьбы с параметрическими дублями.

  10. Артём

    Фильтры каталога — главный генератор дублей в магазинах. Каждая комбинация фильтров создаёт URL, и их тысячи, часто с почти одинаковым или пустым содержимым. Решают выборочно: полезные фильтры-посадочные с реальным спросом открывают и оптимизируют, мусорные комбинации закрывают от индексации. Бесконтрольная индексация всех фильтров раздувает индекс хламом. Управление фильтрами — ключевая часть техоптимизации каталога.

  11. Ксения

    Пагинация — не совсем дубли, но требует правильной настройки. Страницы 2, 3 каталога содержат разные товары, так что это не полные дубли. Проблема, когда на них дублируются мета, тексты, или когда параметры пагинации плодят лишние адреса. Настройте уникальные или шаблонные мета для страниц пагинации, канониклы по логике, чтобы поиск понимал структуру. Пагинация управляема, но кривая настройка превращает её в источник мусора и дублей.

  12. Роман

    А пагинация — это тоже дубли? У меня каталог на много страниц, вторая, третья и так далее.

    1. Роман, пагинация — не совсем дубли, но требует правильной настройки. Страницы 2, 3 каталога содержат разные товары, так что это не полные дубли. Проблема, когда на них дублируются мета или параметры плодят лишние адреса. Настройте уникальные или шаблонные мета для страниц пагинации и канониклы по логике, чтобы поиск понимал структуру. Кривая настройка превращает пагинацию в источник мусора.

  13. Жанна

    UTM-метки — частый источник дублей. Ссылки из рассылок и рекламы с метками создают отдельные адреса того же контента, и они лезут в индекс. Настройте канонический адрес без параметров и обработку меток, чтобы поиск склеивал их с чистым URL. Иначе одна страница множится на все варианты меток. UTM нужны для аналитики, но их параметрические версии не должны индексироваться как отдельные страницы.

  14. Начните с Вебмастера: там есть раздел со страницами-дублями и с исключёнными из индекса. Плюс прогоните сайт краулером, который покажет все URL, включая параметрические. Посмотрите, сколько адресов ведёт на один и тот же контент. Часто открывается, что на десяток реальных страниц приходятся сотни параметрических клонов. Вебмастер и краулер вскрывают дубли, которые в браузере вы никогда бы не заметили.

  15. Алина

    А как найти эти невидимые дубли, если я о них даже не подозреваю? С чего начать поиск?

    1. Алина, начните с Вебмастера: там есть раздел со страницами-дублями и с исключёнными из индекса. Плюс прогоните сайт краулером, который покажет все URL, включая параметрические. Посмотрите, сколько адресов ведёт на один и тот же контент. Часто открывается, что на десяток реальных страниц приходятся сотни клонов. Вебмастер и краулер вскрывают дубли, которые в браузере вы бы не заметили.

  16. Дмитрий

    Самые опасные дубли — те, о которых владелец не знает. Один товар доступен по десятку адресов с фильтрами, сортировками, UTM-метками, параметрами сессии — и поиск видит кучу почти одинаковых страниц. Вес размывается, робот путается, краулинговый бюджет тратится на хлам. Лечится канониклами, настройкой параметров, закрытием мусорных URL. Невидимые дубли тихо тянут сайт вниз, и их надо целенаправленно искать, а не ждать, пока прояснится.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх