Дубли в WordPress обычно появляются не из-за одной «ошибки», а из-за набора мелких причин: параметры в URL, архивы с сортировкой, страницы пагинации, версии с ?replytocom, UTM-метки, технические страницы плагинов и темы. Если такие адреса попадают в индекс, поисковик начинает тратить обход на мусорные URL, а каноническая страница теряет вес.
Ниже — рабочий сценарий: как быстро найти источник дублей, что закрывать в robots.txt, что лучше отдать через noindex, а что исправлять на уровне шаблона или плагина.
Как понять, что у вас именно дубли, а не просто много страниц
Сначала смотрим не на количество URL, а на их тип. Проблема обычно видна по одному из признаков:
- в поиске индексируются адреса с параметрами вроде
?sort=,?filter=,?utm_; - одна и та же статья открывается по нескольким адресам: с
/page/2/, с архивной страницы, через теги и рубрики; - в выдаче есть страницы поиска по сайту, авторские архивы, служебные страницы плагинов;
- в Search Console растёт число «Просканировано, но не проиндексировано» или «Дубликат, Google выбрал другой канонический URL».
Полезно сразу проверить три места: Search Console, логи сервера и исходный код проблемной страницы. В исходнике ищите <link rel="canonical"> и мета-тег robots. Если canonical указывает на один адрес, а в индекс попадает другой, значит где-то есть конфликт: либо шаблон генерирует разные версии, либо плагин SEO не успевает их нормализовать.
Что смотреть в первую очередь
- адреса с параметрами после
?; - страницы пагинации рубрик и архивов;
- страницы поиска
?s=; - дубли с http/https и www/без www;
- версии с и без слеша в конце, если сервер и CMS настроены непоследовательно.
Откуда берутся дубли в WordPress
В WordPress дубли часто создаются автоматически, даже если контент один и тот же. Это нормальная особенность CMS, но её нужно контролировать.
Параметры URL от фильтров и аналитики
Параметры utm_*, gclid, fbclid и внутренние фильтры каталога создают отдельные URL. Для аналитики это нормально, для индекса — нет. Если такие адреса доступны без ограничений, поисковик может начать считать их отдельными страницами.
Архивы, рубрики и теги
Одна запись может быть доступна через рубрику, тег, архив автора и пагинацию. Если на сайте слабая структура рубрик, один и тот же материал размножается по множеству путей. Это не всегда ошибка, но без каноникализации и логичной индексации возникают дубли.
Технические страницы и служебные URL
Страницы поиска, вложений, архивы дат, результаты сортировки, страницы с комментариями через replytocom — всё это часто не нужно в поиске. Их лучше либо закрывать от индексации, либо вообще не допускать к обходу, если они не несут ценности.
Пошаговое решение: что исправлять в каком порядке
Сначала убираем источник дубля, потом настраиваем индексацию, и только после этого проверяем каноникал и карту сайта. Если сделать наоборот, проблема вернётся.
1. Нормализуйте канонический URL
Проверьте, что на каждой странице есть один корректный canonical. В большинстве случаев его должен генерировать SEO-плагин или тема, а не ручной код. Если вы добавляли собственные фильтры, убедитесь, что они не ломают стандартный вывод.
Пример, как задать canonical вручную для нестандартного шаблона:
<?php
if ( is_singular() ) {
echo '<link rel="canonical" href="' . esc_url( get_permalink() ) . '" />' . "\n";
}
?>Это не замена SEO-плагину, а страховка для шаблонов, где canonical по какой-то причине не выводится.
2. Закройте служебные параметры от индексации
Если сайт активно использует параметры сортировки или фильтров, не пытайтесь «лечить» это только robots.txt. Поисковик может продолжать видеть URL, если на них есть ссылки. Для таких страниц чаще подходит noindex,follow.
Пример для WordPress: добавить noindex на страницы поиска и на URL с параметрами фильтра.
<?php
add_filter( 'wp_robots', function( $robots ) {
if ( is_search() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
if ( ! empty( $_GET['sort'] ) || ! empty( $_GET['filter'] ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Здесь важно не переборщить: если параметр влияет только на сортировку и не меняет смысл страницы, noindex часто разумнее, чем полное закрытие от обхода.
3. Уберите генерацию дублей на уровне шаблона
Если тема выводит одинаковый контент в нескольких местах, ищите повторяющиеся циклы, лишние блоки «похожие записи» и дублирующиеся хлебные крошки. Иногда проблема в том, что один и тот же фрагмент подключён и в шаблоне записи, и в сайдбаре через виджет.
Типичный пример: на странице записи выводится список последних постов из той же рубрики, а внизу — ещё один блок с теми же материалами. Для пользователя это шум, для поисковика — повторяющийся шаблонный контент.
4. Настройте карту сайта и внутренние ссылки
Если URL не должен индексироваться, он не должен попадать и в sitemap. Это частая ошибка: страницу закрыли мета-тегом, но оставили в XML-карте сайта. Поисковик получает противоречивые сигналы.
Проверьте, что в sitemap нет:
- страниц поиска;
- архивов автора, если они не нужны;
- URL с параметрами;
- вложений без содержимого;
- служебных страниц плагинов.
Сравнение подходов: плагин, код или настройка сервера
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, теги, поиск, пагинацию | Меньше кода, проще поддержка | Не решает проблему, если тема сама плодит URL |
| Код в теме/плагине | Есть нестандартные параметры, кастомные фильтры, особая логика | Точный контроль | Нужна аккуратная поддержка после обновлений |
| Настройка сервера | Нужно убрать http/https, www, слеши, кэширование параметров | Стабильно на уровне инфраструктуры | Не исправляет ошибки шаблона и контента |
Как проверить, что решение сработало
Не ограничивайтесь просмотром исходника. Проверка должна быть на уровне индексации и обхода.
- Откройте проблемный URL с параметром и проверьте заголовки ответа и мета robots.
- Убедитесь, что canonical указывает на чистый URL без параметров.
- Проверьте, исчез ли URL из sitemap.
- В Search Console отправьте проверку URL и посмотрите, какой canonical выбрал Google.
- Через несколько дней сравните отчёт по страницам с дублями и параметрами.
Если у вас есть доступ к командной строке, можно быстро проверить ответ сервера:
curl -I "https://example.com/post/?sort=popular"В ответе смотрите на X-Robots-Tag, Location при редиректе и код ответа. Если страница должна быть закрыта, но отдаёт 200 OK без noindex, настройка ещё не применена.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но оставили в индексе
Если страница уже известна поисковику, запрет в robots.txt не удалит её из индекса мгновенно. Более того, поисковик может не увидеть мета-тег noindex, если вы полностью запретили обход. Для таких страниц сначала лучше дать доступ и поставить noindex, а уже потом при необходимости ограничивать обход.
Поставили noindex на важные страницы пагинации
Пагинация рубрик и архивов не всегда мусор. Если через неё пользователь реально добирается до старых материалов, полное закрытие может ухудшить обход сайта. В этом случае смотрите на структуру: иногда лучше сократить глубину архивов, чем закрывать всё подряд.
Оставили внутренние ссылки на параметры
Даже если URL закрыт от индексации, ссылки на него внутри сайта продолжают создавать обход и расходовать краулинговый бюджет. Уберите генерацию параметров в меню, фильтрах и блоках сортировки, если они не нужны для SEO.
Смешали canonical и редиректы
Если страница с параметром редиректит на чистый URL, canonical должен быть на конечный адрес. Не стоит одновременно отдавать 200 OK, ставить canonical на один URL и в то же время редиректить на другой — это создаёт лишний шум для поисковика.
Что делать с безопасностью и производительностью
Чем больше на сайте параметров и служебных страниц, тем выше нагрузка на кэш и тем проще случайно открыть лишние точки входа. Это особенно заметно на сайтах с фильтрами, поиском по каталогу и активными комментариями.
- не генерируйте бесконечное число URL для одной и той же выборки;
- ограничивайте индексацию страниц поиска и сортировки;
- проверяйте, не создают ли плагины отдельные архивы без необходимости;
- не храните в открытом доступе технические страницы, которые не нужны посетителю;
- следите, чтобы кэш не раздувался из-за параметров, не влияющих на контент.
Если нужен более системный подход к чистке дублей, технических страниц и SEO-правил, имеет смысл смотреть в сторону инструментов, которые умеют управлять такими настройками централизованно. Например, в Clearfy Pro есть набор функций для удаления дублей и технической чистки сайта: https://wpshop.ru/plugins/clearfy.
Главное здесь не «запретить всё подряд», а привести сайт к одному понятному сценарию: одна страница — один канонический адрес — одна логика индексации. Тогда поисковик перестаёт тратить ресурсы на мусорные версии, а вы получаете предсказуемую структуру без лишних дублей.