Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: одинаковые записи доступны по разным URL, архивы дублируют контент, а пагинация и параметры сортировки создают лишние страницы. Если это не разбирать системно, поисковик начинает индексировать не ту версию, а в отчётах Search Console растёт число «Просканировано, но не проиндексировано» и похожих страниц.
Ниже — рабочий сценарий: как сначала найти источник дублей, потом выбрать способ исправления и проверить, что после правок сайт не потерял нужные страницы.
Какие дубли встречаются чаще всего
В WordPress под «дублями» часто понимают не только одинаковый текст, но и URL, которые ведут к одному и тому же контенту или почти к нему. Это важно различать: иногда нужно убрать именно URL-дубль, а иногда — пересобрать шаблон архива или закрыть техническую страницу от индексации.
Типовые сценарии
- запись открывается и по постоянной ссылке, и по архиву рубрики;
- страница доступна с
wwwи без него, поhttpиhttps; - один и тот же материал доступен через теги, автора и поиск по сайту;
- пагинация архивов создаёт множество похожих страниц;
- параметры
?replytocom=, UTM и фильтры порождают лишние URL; - страницы вложений, если они не отключены, дублируют медиа-контент.
Диагностика: где именно появляются дубли
Начинать стоит не с удаления, а с проверки того, какие URL реально существуют и как они отвечают. Иначе легко закрыть не ту страницу или случайно убрать полезный трафик с архивов.
- Откройте несколько типовых URL вручную: запись, её архив, пагинацию, версию с параметром.
- Проверьте код ответа в браузере или через
curl. - Сравните заголовок
canonicalна разных вариантах страницы. - Посмотрите отчёты Search Console по страницам с дублирующимся, выбранным не пользователем каноническим URL.
Если у вас есть доступ к серверу, удобно быстро проверить редиректы и коды ответа так:
curl -I https://example.com/sample-post/
curl -I https://example.com/sample-post/?utm_source=test
curl -I https://example.com/category/news/page/2/Если на разных URL возвращается 200 OK и контент визуально одинаковый, это уже кандидат на дубль. Если один адрес должен быть основным, а остальные — техническими, нужно не просто «скрыть» их, а привести к одной логике.
Что делать: выбрать один из трёх вариантов
Для WordPress обычно есть три безопасных подхода: поставить 301-редирект, закрыть страницу от индексации или убрать сам источник дубля на уровне шаблона/настроек. Выбор зависит от того, нужен ли URL пользователю и есть ли у него внешние ссылки.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| 301-редирект | Есть явный дубль основного URL | Передаёт сигнал на канонический адрес, убирает путаницу | Нужно аккуратно настроить правила |
noindex | Страница полезна пользователю, но не нужна в поиске | Просто внедрить через SEO-плагин или код | URL остаётся доступным для обхода |
| Удаление источника дубля | Дубль создаёт тема, плагин или шаблон архива | Решает проблему на уровне причины | Требует правки кода или настроек темы |
Вариант 1: поставить 301-редирект на канонический URL
Если у страницы есть очевидный основной адрес, а остальные варианты не нужны, редирект — самый чистый путь. Например, когда сайт доступен и с www, и без него, или когда старый URL нужно перевести на новый.
Для простого случая можно добавить правило в .htaccess на Apache:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]Если проблема в конкретной странице, лучше использовать редирект на уровне WordPress, чтобы не ломать другие адреса. Для этого подойдёт template_redirect:
add_action('template_redirect', function () {
if (is_page('old-page')) {
wp_redirect(home_url('/new-page/'), 301);
exit;
}
});Такой код стоит размещать в дочерней теме или в своём мини-плагине, а не в файле основной темы.
Вариант 2: закрыть технические страницы от индексации
Если URL нужен для навигации, но не должен попадать в поиск, используйте noindex. Это типично для архивов, страниц поиска, пагинации или страниц с параметрами фильтрации.
В SEO-плагинах это обычно настраивается без кода. Но если нужен точечный контроль, можно добавить мета-тег для конкретных шаблонов:
add_action('wp_head', function () {
if (is_search() || is_paged()) {
echo "<meta name=\"robots\" content=\"noindex,follow\" />\n";
}
});Важно: не ставьте noindex на всё подряд. Если закрыть важные посадочные страницы или рубрики, можно потерять трафик, а не убрать дубли.
Вариант 3: убрать источник дубля в теме или плагине
Если дубли создаёт шаблон, лучше исправить причину. Например, когда тема выводит одинаковый контент в нескольких блоках или плагин генерирует лишние архивы.
Для архивов автора, тегов и рубрик полезно проверить, не дублируют ли они друг друга по смыслу. Если архивы не несут отдельной ценности, их можно закрыть от индексации в настройках SEO-плагина или через код. Если ценность есть, оставляйте только один тип архива как основной.
Пошаговое решение без лишнего риска
- Соберите список URL, которые выглядят как дубли: Search Console, краулер, ручная проверка.
- Определите канонический адрес для каждой группы страниц.
- Для явных дублей поставьте 301-редирект.
- Для технических страниц добавьте
noindex,follow. - Проверьте, не создаёт ли дубль тема, плагин или параметры в ссылках.
- После правок обновите sitemap и отправьте важные URL на переобход.
Если у вас много похожих архивов, иногда помогает не редирект, а настройка канонического URL. WordPress и SEO-плагины обычно уже выводят rel=canonical, но это нужно проверить на реальной странице. Если canonical указывает не туда, поисковик может выбрать неправильную версию.
Проверка результата после внедрения
После изменений не ограничивайтесь открытием страницы в браузере. Нужно проверить и ответ сервера, и мета-теги, и то, как URL видит поисковый робот.
- основной URL отдаёт
200 OK; - дублирующий URL отдаёт
301на канонический адрес; - техническая страница содержит
noindex, если это было задумано; - в HTML указан правильный
canonical; - в sitemap нет мусорных URL;
- в Search Console уменьшается число страниц с дублирующимся контентом.
Быстро проверить canonical можно так:
curl -s https://example.com/sample-post/ | grep -i canonical
curl -s https://example.com/sample-post/?utm_source=test | grep -i canonicalЕсли canonical указывает на основной URL, а параметризированная версия не индексируется, вы двигаетесь в правильную сторону. Если же обе версии отдают 200 и одинаковый canonical, значит редирект или закрытие от индексации не сработали.
Частые ошибки и как их исправить
Ставят noindex вместо редиректа
Это частая ошибка, когда у страницы есть явный дубль, но вместо перенаправления её просто закрывают от индексации. В результате поисковик всё равно тратит краулинговый бюджет на лишний URL. Если страница не нужна, делайте 301.
Закрывают важные рубрики и теги без анализа
Не все архивы бесполезны. Если рубрика даёт стабильный трафик и содержит уникальные описания, её нельзя закрывать только потому, что у неё есть похожий тег. Сначала сравните спрос, трафик и реальную ценность страницы.
Редиректят всё на главную
Это плохая практика. Если у дубля есть релевантная замена, редирект должен вести именно туда, а не на главную страницу. Иначе теряется смысл запроса и ухудшается поведение пользователей.
Не проверяют параметры URL
UTM, сортировка, replytocom и другие параметры часто создают отдельные URL. Если они попадают в индекс, нужно либо нормализовать ссылки, либо закрыть такие варианты от индексации, либо настроить редирект на чистый адрес.
Что ещё стоит проверить для безопасности и производительности
Когда вы чистите дубли, заодно проверьте, не создают ли лишние URL старые плагины, неиспользуемые шаблоны или нестандартные правила в .htaccess. Иногда проблема не в SEO-настройках, а в том, что сайт генерирует слишком много почти одинаковых страниц и нагружает сервер.
Если вы используете SEO-плагин для управления canonical, robots и архивами, не дублируйте эти же правила в коде темы. Два источника правды часто приводят к конфликтам: один плагин ставит noindex, другой перезаписывает canonical, а в итоге страница ведёт себя непредсказуемо.
Для сайтов с большим количеством архивов и технических страниц удобно использовать один инструмент для чистки дублей и управления индексированием. Например, в Clearfy Pro есть набор настроек для удаления лишних элементов и контроля технических страниц, но даже с таким плагином всё равно нужно проверять итоговый HTML и ответы сервера на реальных URL.
Главный критерий простой: если URL не должен быть основным, он должен либо редиректить на нужную версию, либо быть явно помечен как технический, либо вообще не создаваться. Всё остальное — временная маскировка проблемы.