Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

Дубли страниц на сайте: как найти и убрать без потери позиций

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

Дубли страниц на сайте — проблема, которую владелец не видит в браузере и узнаёт о ней последним: сайт открывается, страницы на месте, а в выдаче вместо карточки услуги показывается её копия с «?utm_source» в адресе. У обычного магазина на WordPress в отчёте Вебмастера адресов со статусом «дубль» бывает больше, чем страниц, участвующих в поиске. Ниже — откуда дубли берутся, как найти их без платных сервисов и чем убирать каждый тип, чтобы вместе с мусором не выкинуть из поиска нужные страницы.

Что поиск считает дублем

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

Дальше происходит то, что и создаёт проблему. Из группы одинаковых адресов поиск выбирает один, который считает основным, и показывает в выдаче именно его. Выбор делает алгоритм, а не вы: в результатах может оказаться адрес с «?replytocom=412», страница фильтра вместо категории или версия для печати. Остальные адреса уходят в исключённые со статусом «дубль».

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

Откуда берутся дубли: полный список источников

За двадцать лет работы с чужими сайтами я не видел ни одного источника, которого не было бы в этом перечне. Проверяйте по пунктам.

Технические варианты адреса. Один документ открывается с www и без, по http и по https, со слешем на конце и без него, с /index.php и без. Каждая комбинация — отдельный адрес для робота. Классика: сайт переехал на защищённый протокол, а старые адреса продолжают отдавать код 200 вместо перенаправления.

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

Пагинация и фильтры каталога. Вторая, третья, десятая страница списка часто наследуют текст и заголовок первой. Фильтры в интернет-магазине генерируют адреса комбинациями: цвет плюс размер плюс цена — и так сотнями. Отдельный разбор того, как поиск обходит такие каталоги, есть в материале про страницы пагинации без специальных атрибутов.

WordPress по умолчанию. Архивы по тегам, по датам, по авторам, ленты фидов, вложения как отдельные страницы, ветки комментариев с параметром replytocom. Свежеустановленный движок сам плодит по несколько адресов на каждую запись.

Ручные копии. Страница услуги для Москвы и точно такая же для области, где изменено одно слово. Формально разные адреса, для алгоритма — одно и то же. Сюда же версии для печати: отдельный адрес, тот же текст.

Как найти дубли: три способа без платных сервисов

Начинать нужно с данных самого поиска, а не с краулера. Краулер покажет, что есть на сайте; Вебмастер покажет, что из этого поиск уже счёл копией.

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

Способ второй — уведомления о GET-параметрах. Если на сайте много адресов с незначащими параметрами, сервис сообщает об этом отдельно. Что означает такое уведомление и как на него реагировать, разобрано в статье про найденные страницы-дубли с GET-параметрами.

Способ третий — оператор поиска. Наберите в Яндексе site:вашсайт.ру и добавьте кусок текста в кавычках — первое предложение описания услуги. Если фраза находится по нескольким адресам, это кандидаты в дубли. Оператор url: проверяет конкретный адрес или группу: url:вашсайт.ру/catalog/*. Оговорка: site: даёт ориентировочную выборку и не показывает точное число страниц в индексе, так что используйте его для примеров, а не для подсчёта.

Ручная проверка технических вариантов занимает пять минут. Откройте по очереди адрес с www, без www, по http, со слешем и без, с /index.php. Каждый вариант, который отдаёт код 200 и показывает содержимое вместо перенаправления, — готовый дубль.

Дубль главной страницы: отдельный случай

Главная собирает больше всего внешних ссылок, и дубли у неё встречаются чаще всего: логотип в шапке ссылается на «/», меню — на полный адрес с доменом, пагинация блога — на «/page/1/», старый баннер — на «/index.php».

Порядок разбора такой. Сначала определяетесь, какой адрес основной: с www или без, обязательно с https. Затем проверяете, что все остальные варианты отдают постоянное перенаправление на выбранный, а не открываются сами по себе. Отдельно проверьте «/page/1/» у блога и «/index.php». И последнее: ссылки в шапке, подвале и меню должны вести на основной адрес напрямую, без промежуточных шагов.

Частая ошибка на WordPress — атрибут canonical на главной, указывающий на адрес с www, при том что сайт давно работает без www. Один символ в теге заставляет поиск выбирать не ту страницу; я разбирал этот механизм в материале про то, как одна лишняя буква в canonical убирает страницу из выдачи.

Чем убирать: четыре инструмента и границы их применения

Справка Яндекса по дублированию страниц называет три основных способа указать роботу нужную страницу: постоянное перенаправление с кодом 301, атрибут rel=»canonical» и директива Clean-param в robots.txt. Четвёртый инструмент — настройки самого движка. Запрет в robots.txt в этот список не входит, и это принципиально.

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

Canonical — когда обе страницы нужны людям. Карточка товара, доступная из двух категорий; страница с параметром сортировки; вариант для печати. Посетитель видит обе, а поиску вы говорите, какая основная. Тег работает как рекомендация, а не приказ: робот может её не учесть, если содержимое страниц сильно различается. Проверять корректность canonical нужно отдельно — как именно, описано в разборе про канонические адреса, которые работают против вас.

Clean-param — когда дело в параметрах адреса. Это директива именно для робота Яндекса. Синтаксис: Clean-param: p0[&p1&p2&..&pn] [путь]. Первое поле — параметры, которые нужно игнорировать, второе — префикс пути, где правило действует. Длина одного правила ограничена 500 символами, регистр учитывается, директива работает независимо от секции robots.txt и не требует пары с Disallow. Рабочий пример для меток и сортировок:

User-agent: Yandex
Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content
Clean-param: sort&order /catalog/

Принципиальное отличие от запрета: Clean-param склеивает показатели адресов с параметрами и без, а Disallow просто отрезает роботу доступ, и накопленное теряется. Разницу между тремя инструментами с примерами я разбирал в отдельной статье — Clean-param, canonical и 301: что куда ставить.

Настройки движка — когда дубли создаёт сам сайт. Отключение архивов по датам и авторам, отключение страниц вложений, отключение древовидных комментариев или хотя бы параметра в их адресах, единый формат постоянных ссылок. Для магазинов на WooCommerce отдельная история с фильтрами и сортировками — как их закрывать, не потеряв трафик, описано в материале про фильтры и сортировки, которые плодят дубли.

⚠️ Перед любой правкой robots.txt, .htaccess или файлов темы сохраните копию файла на компьютер. Ошибка в одной строке robots.txt способна убрать из поиска весь сайт, и обнаруживается это обычно через две-три недели, когда страницы уже выпали.

Таблица: тип дубля, чем убрать, чем нельзя

Тип дубля Чем убирать Чем нельзя и почему
www и без www, http и https Постоянное перенаправление 301 на выбранный основной адрес Canonical — вариант останется доступен и будет обходиться роботом
Слеш на конце, /index.php 301 на единый формат адреса Запрет в robots.txt — адрес останется в обращении, ссылки повиснут
Метки кампаний в адресе Clean-param в robots.txt, дополнительно canonical на чистый адрес Disallow — потеряете склейку показателей адреса с меткой и без
Сортировки и переключатели вида Clean-param с указанием раздела каталога 301 — посетитель не сможет отсортировать список
Фильтры каталога с одинаковым содержимым Canonical на категорию, нужные комбинации оставить открытыми Массовый 301 на категорию — фильтр перестанет работать для людей
Пагинация с повтором текста первой страницы Убрать повторяющийся текст со второй страницы и дальше, уникальный title Полный запрет пагинации — робот перестанет доходить до глубоких карточек
Архивы по датам и авторам на WordPress Отключить в настройках темы или плагина Запрет в robots.txt как единственная мера — страницы уже в индексе
Ветки комментариев с параметром Отключить древовидные комментарии либо Clean-param на параметр Canonical без отключения — робот продолжит обходить тысячи адресов
Версия для печати Canonical на основную страницу 301 — кнопка печати перестанет работать
Две похожие страницы услуг, сделанные вручную Оставить одну, со второй 301; либо переписать вторую под другой спрос Canonical между коммерческими страницами — обе перестанут продвигаться самостоятельно

Порядок работ, при котором позиции не проседают

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

Шаг Что делаете Как проверить результат
1 Выгружаете исключённые адреса со статусом «дубль» в таблицу В выгрузке видно, какой адрес поиск считает основным
2 Сортируете список по фрагментам адреса: utm_, ?sort, /tag/, /page/, replytocom Каждая группа — одна причина, а не сотня отдельных проблем
3 Отмечаете адреса, которые приносили переходы из поиска Отчёт Метрики по страницам входа за последние полгода
4 Чините технические варианты адреса: протокол, www, слеш Проверка кода ответа: должен быть 301, а не 200
5 Добавляете Clean-param для меток и сортировок Инструмент анализа robots.txt в Вебмастере не показывает ошибок
6 Правите canonical там, где он указывает не туда В коде страницы один тег canonical с абсолютным адресом
7 Отключаете лишние типы архивов в движке Адреса архивов отдают 404 или перенаправляют
8 Правите внутренние ссылки на новые адреса В коде шапки, меню и подвала нет ссылок на старые варианты
9 Отправляете изменившиеся страницы на переобход Статус задания в Вебмастере меняется на выполненный
10 Через три недели сверяете отчёт заново Число адресов со статусом «дубль» уменьшилось

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

Пять ошибок, которые превращают чистку в потерю трафика

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

Поставить canonical между двумя коммерческими страницами. Если у вас страница «ремонт квартир» и страница «ремонт квартир под ключ», и вы соединили их каноническим тегом, вторая перестанет ранжироваться самостоятельно. Иногда это нужно, но решение принимается по спросу, а не из соображения «они похожи».

Перенаправить все дубли на главную. Поиск расценивает массовое перенаправление на главную как ошибку, а посетитель, кликнувший по ссылке из выдачи, не находит того, что искал. Об этом есть отдельный разбор — почему редирект на главную вместо 404 портит весь сайт.

Забыть про внутренние ссылки. Вы поставили перенаправления, но меню и кнопки по-прежнему ведут на старые адреса. Формально всё работает, фактически каждый переход посетителя и робота идёт через лишний шаг, а цепочки перенаправлений съедают вес страницы.

Когда это не сработает и когда нужен специалист

Чистка дублей помогает не всегда. Если страница не растёт потому, что на неё нет спроса или содержимое слабее, чем у конкурентов в выдаче, устранение копий ничего не изменит — поиск просто перестанет выбирать между вариантами одной и той же неинтересной страницы.

Своими силами не стоит браться за три случая. Первый — сайт на конструкторе или самописном движке, где нет доступа к robots.txt и коду шаблона. Второй — магазин, где фильтры дают десятки тысяч адресов: там решают, какие комбинации должны быть в поиске как посадочные страницы, а это работа с коммерческой логикой, а не с тегами. Третий — сайт, где дубли появились после переезда: сначала заканчивают переезд, потом чистят.

Частые вопросы

Сколько дублей — это много?

Смотреть надо не на абсолютное число, а на соотношение. Если в поиске участвует 300 страниц, а исключено со статусом «дубль» 40 — это рабочая ситуация, чаще всего метки и сортировки. Если участвует 300, а исключено 4 000 — робот тратит на ваш сайт время впустую, и до новых страниц он доходит в последнюю очередь.

Дубли — это фильтр или санкция?

Нет. Статус «дубль» в отчёте об исключённых страницах означает решение алгоритма о том, какой адрес из группы показывать. Это не нарушение и не наказание, записей об этом в разделе безопасности не появляется.

Надо ли закрывать страницы пагинации целиком?

Нет. Через пагинацию робот добирается до глубоких карточек каталога. Правильнее убрать со второй и последующих страниц повторяющийся текст и сделать уникальные заголовки, чем закрывать их от обхода.

После чистки трафик упал. Что проверять первым?

Коды ответа страниц, которые приносили переходы. В девяти случаях из десяти под общее правило попала нужная страница: она отдаёт 301 туда, куда не должна, или закрыта директивой, написанной слишком широко.

Коротко

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

Искать надо в отчёте об исключённых страницах в Вебмастере, фильтруя по статусу «дубль», а не в платных сервисах. Это данные самого поиска, а не чья-то гипотеза, и они выгружаются в таблицу.

Инструментов четыре: 301 — когда старого адреса быть не должно; canonical — когда обе страницы нужны посетителю; Clean-param — когда дело в параметрах адреса; настройки движка — когда копии создаёт сам сайт. Запрет в robots.txt не решает задачу, а прячет её.

Порядок важнее скорости. Сначала выгрузка и группировка, потом технические варианты адреса, потом параметры, потом canonical, в конце — внутренние ссылки и переобход. Результат смотрят через три недели.

Чистка дублей не заменяет работу над содержимым. Она убирает шум, из-за которого поиск не может понять, какую страницу показывать, но спрос на страницу не создаёт.

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

Проверить формулировки можно в первоисточниках: справка Яндекса о дублировании страниц и описание директивы Clean-param.

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

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

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

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

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

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

Комментарии

Наталья

Выгрузила исключённые — 2 300 адресов со статусом «дубль», и почти все с replytocom. Сайт на WordPress, блогу семь лет, комментариев много. Отключать древовидные комментарии жалко, читатели ими пользуются. Есть вариант без отключения?

Анатолий Кузнецов автор

Есть, и он рабочий. Добавьте в robots.txt строку Clean-param на этот параметр — адреса с ним склеятся с чистыми, а ветки комментариев останутся на месте для людей. Вторая часть решения на стороне темы: ссылка «Ответить» у многих шаблонов ведёт на адрес с параметром даже при включённом JavaScript, и робот её видит. Посмотрите исходный код записи с комментариями и найдите, как оформлена эта ссылка. Если она обычная, попросите того, кто правит тему, отдавать её через скрипт. После этого 2 300 адресов схлопнутся сами, но не за неделю — считайте три недели минимум.

Олег

Спасибо за таблицу с «чем нельзя». Забрал себе целиком. Один момент всё же не понял: почему нельзя ставить 301 со страницы фильтра на категорию, если фильтр всё равно мусорный?

Анатолий Кузнецов автор

Потому что перенаправление работает для всех, а не только для робота. Человек заходит в каталог, отмечает «белый» и «до 5 000 рублей», нажимает «Показать» — и его выбрасывает обратно в общую категорию без фильтра. Он думает, что сайт сломан, и уходит. Canonical этой проблемы не создаёт: посетитель видит отфильтрованный список, а поиск получает указание на основную страницу. Поэтому 301 — только для адресов, которых вообще не должно существовать, вроде старого варианта с www.

Светлана

У нас сайт услуг, страниц всего сорок. Плагин показывает «дубли title» на трёх страницах, а в Вебмастере в исключённых пусто. Кому верить?

Анатолий Кузнецов автор

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

Роман К.

Не соглашусь с тем, что Clean-param лучше Disallow. У меня магазин, фильтров на тысячи комбинаций, и Clean-param в 500 символов просто не помещается. Закрыл всё через Disallow — нагрузка на сервер упала вдвое, и ничего страшного не случилось.

Анатолий Кузнецов автор

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

Тамара

А как быть с фидами? У меня в исключённых куча адресов с /feed/ на конце. Закрывать?

Юрий

Тамара, у меня та же история была. Фиды поиск и так не показывает, они отдаются как XML. Я их не трогал вообще — просто висят в исключённых и ни на что не влияют. Нервы дороже.

Павел

Дополню про главную. У меня она открывалась и по адресу с /index.php, и через /page/1/ блога. Про index.php знал, а про page/1 даже не думал проверить. Нашёл после вашей статьи — ставил перенаправление, в исключённых стало на два адреса меньше. Мелочь, а раздражала.

Эльвира

Скажите, а три недели — это точно? У меня месяц прошёл, число дублей то же самое. Что делать дальше?

Анатолий Кузнецов автор

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

Станислав

Полезно. Отдельное спасибо за пункт про внутренние ссылки — про него все забывают. Поставил перенаправления, обрадовался, а меню полгода вело на старые адреса.

Оксана

У меня обратная ситуация: дублей нет, в исключённых чисто, а позиции всё равно не растут. Получается, вся эта чистка — вообще не про рост?

Фёдор

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

Ярослав

Вопрос про порядок. Вы пишете разносить правки на две-три недели, но если сайт небольшой и правок всего пять, есть смысл тянуть? Или можно за раз?

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

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

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

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