Как найти и удалить дубли записей WordPress из-за пагинации и параметров URL

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

Задача здесь не в том, чтобы закрыть от индексации все URL подряд. Нужно понять, какие адреса являются рабочими страницами сайта, а какие только создают дубли. Для пагинации, сортировки и параметров правила разные.

Какие дубли появляются в WordPress и почему

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

  • /category/news/ и /category/news/page/2/ — обычная пагинация архива;
  • ?sort=popular, ?orderby=date — сортировка списка;
  • ?filter=red, ?price=100-500 — фильтры;
  • ?utm_source=... — служебные параметры, которые часто попадают в индекс, если их не контролировать;
  • ?replytocom=... — параметр комментариев, который тоже может плодить лишние URL.

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

Сначала определите, что именно дублируется

Перед правками проверьте, какие URL реально индексируются. Самый практичный способ — посмотреть отчёты в Google Search Console и поискать в индексе страницы с параметрами. Если у вас есть доступ к серверным логам или аналитике, полезно увидеть, какие адреса получают трафик и обходятся роботами.

Для ручной проверки откройте несколько вариантов одной и той же страницы:

  • основной URL без параметров;
  • тот же URL с параметром сортировки;
  • тот же URL с UTM-метками;
  • страницу пагинации архива.

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

Какие URL обычно нужно оставить, а какие закрыть

Здесь важнее логика, чем механическое правило. Для большинства сайтов полезно придерживаться такой схемы.

Тип URLЧто делатьПочему
Основные страницы рубрик, меток, архиваОставитьЭто канонические адреса разделов
Пагинация архива /page/2/, /page/3/Обычно оставитьНужна для навигации и обхода всех записей
Сортировка ?sort=, ?orderby=Чаще закрыть или канонизировать на основной URLОбычно не несёт отдельной ценности для поиска
Фильтры с параметрами ?filter=, ?color=, ?price=По ситуацииЕсли фильтр создаёт полезную посадочную страницу — можно оставить, иначе закрыть
UTM-метки и служебные параметрыЗакрыть от индексации на уровне каноникализации или правил сервераЭто не отдельные страницы контента
?replytocom=Обычно закрытьПорождает лишние URL без новой ценности

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

Как убрать дубли от параметров URL

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

В WordPress это часто делает SEO-плагин, если он умеет управлять canonical. Но если параметр генерируется темой или сторонним плагином, важно проверить, не создаёт ли он отдельные страницы в sitemap и не отдаёт ли индексируемый ответ с уникальным заголовком. Если параметр не нужен пользователю как отдельная посадочная страница, лучше не давать ему становиться самостоятельным URL.

Для UTM-меток и похожих параметров правильная стратегия обычно такая:

  • не использовать их как повод для создания новых страниц в sitemap;
  • не ставить на них внутренние ссылки;
  • оставлять canonical на чистый адрес;
  • при необходимости ограничить индексацию через правила сервера или настройки SEO-плагина.

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

Что делать с пагинацией архивов

Пагинация — отдельный случай. Страницы /page/2/, /page/3/ и дальше обычно не являются дублями в строгом смысле, потому что на них разный набор записей. Их не стоит закрывать только из-за того, что на них повторяется шапка, меню и часть шаблона.

Практически полезно проверить три вещи:

  1. страницы пагинации отдают код ответа 200, а не ошибку;
  2. на них есть ссылки на следующие и предыдущие страницы;
  3. они не дублируют основной архив через неправильный canonical.

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

Закрывать пагинацию через noindex стоит осторожно. Если вы уберёте её из индекса, но оставите в обходе, поисковик всё равно сможет проходить по ссылкам. Если же одновременно убрать и индексацию, и внутренние ссылки, часть записей может стать хуже доступна для обхода. Для обычного блога или новостного сайта это чаще вреднее, чем полезнее.

Как проверить canonical, robots и индексируемость

После правок откройте проблемный URL и посмотрите исходный код страницы. Вам нужно проверить три вещи: есть ли тег rel="canonical", не закрыта ли страница в robots.txt, и не стоит ли на ней noindex там, где он не нужен.

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

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

  • чистый адрес страницы;
  • тот же адрес с UTM;
  • адрес с сортировкой;
  • страницу пагинации.

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

Когда нужен код, а когда достаточно настроек

Если дубли создаёт тема или плагин, сначала ищите настройку. В WordPress это безопаснее, чем править код вручную. Код нужен только тогда, когда:

  • плагин не умеет отключить конкретный параметр;
  • тема генерирует лишние URL без настроек;
  • нужно точечно изменить поведение canonical или robots для одного типа страниц.

Вмешательство в код стоит делать только после резервной копии. Ошибка в правилах индексации может случайно закрыть от поиска нужные страницы или, наоборот, открыть лишние. Если вы не уверены, лучше ограничиться настройками SEO-плагина и проверкой шаблонов архивов.

Как понять, что проблема действительно решена

После исправлений не ждите мгновенного исчезновения старых URL из поиска. Сначала проверьте техническую сторону: у нужных страниц остался доступный статус 200, у лишних вариантов появился canonical на основной адрес или они перестали индексироваться, а в sitemap нет мусорных параметров.

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

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

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

⭐⭐⭐⭐⭐