Если в Search Console растут «Просканировано, но не проиндексировано» или в индексе всплывают одинаковые страницы с разными URL, проблема часто не в контенте, а в структуре WordPress. Дубли появляются из-за архивов, пагинации, параметров сортировки, версий с www/non-www, а иногда — из-за темы или плагина, который генерирует несколько адресов для одного и того же материала.
Ниже разберём, как быстро найти источник дублей, что закрывать от индексации, а что лучше оставить и просто склеить через канонический URL.
Как понять, что у вас именно дубли, а не обычная проблема с индексацией
Сначала стоит отделить технические дубли от реального дефицита качества страницы. Если одна и та же запись доступна по нескольким адресам, поисковик может выбрать не тот URL, который вы хотите видеть в выдаче.
Типичные признаки
- в индексе есть страницы с одинаковым title и description, но разными URL;
- в отчётах Search Console много страниц с параметрами
?replytocom=,?amp,?utm_или сортировкой; - один и тот же пост открывается и по адресу записи, и через архив рубрики, и через пагинацию;
- в коде страницы встречается несколько
rel="canonical"или каноникал указывает на другой URL; - в логах краулинга видно, что бот ходит по страницам, которые не должны быть самостоятельными.
Что проверить в первую очередь
- Откройте проблемный URL и сравните его с каноническим адресом в исходном коде страницы.
- Проверьте, не создаёт ли тема отдельные архивы для таксономий, автора, дат и поиска.
- Посмотрите, есть ли у сайта параметры, которые меняют контент, но не URL-структуру.
- Сравните заголовки ответа сервера для дублей и основной страницы.
Какие дубли в WordPress встречаются чаще всего
В реальных проектах проблема обычно не одна. Часто на сайте одновременно есть архивы, пагинация и технические параметры, которые создают десятки похожих страниц.
| Источник дубля | Как выглядит | Что делать |
|---|---|---|
| Архивы рубрик и меток | Одинаковые записи доступны через разные списки | Оставить архивы нужными, лишние закрыть или удалить |
| Пагинация | /page/2/, /page/3/ | Не закрывать всё подряд, а проверить каноникал и индексацию |
| Параметры URL | ?sort=, ?filter=, ?replytocom= | Склеить, убрать из индексации или запретить генерацию |
| Версии домена | http/https, www/non-www | Настроить единый редирект 301 |
| Печатные версии и AMP | Отдельные URL с тем же контентом | Проверить каноникал и необходимость отдельной версии |
Пошаговое решение: как убрать дубли без лишнего риска
Логика простая: сначала убираем технический мусор, потом проверяем каноникал, и только после этого трогаем robots.txt или правила индексации. Если начать с жёсткой блокировки, можно случайно скрыть нужные страницы.
Шаг 1. Нормализуйте основной адрес сайта
Убедитесь, что сайт открывается только в одном варианте: с HTTPS и одним хостом. Это базовая точка, без которой дальше будет путаница в ссылках и каноникалах.
Проверьте:
https://example.ruиhttps://www.example.ruдолжны вести на один вариант;httpдолжен редиректить наhttps;- внутренние ссылки в теме и контенте должны быть уже в финальном виде.
Шаг 2. Уберите генерацию лишних архивов в теме
Если тема создаёт архивы, которые не несут пользы пользователю и только плодят страницы, их лучше отключить или закрыть от индексации. Для этого не нужно ломать шаблоны — достаточно аккуратно повлиять на поведение WordPress.
<?php
add_action('template_redirect', function () {
if (is_author() || is_date() || is_tag()) {
wp_redirect(home_url('/'), 301);
exit;
}
});Этот вариант грубый и подходит не всем. Если архивы нужны для навигации, лучше не редиректить их на главную, а оставить страницу доступной и управлять индексацией через noindex или SEO-плагин.
Шаг 3. Задайте канонический URL там, где есть варианты одной страницы
Каноникал нужен, когда одна и та же сущность доступна по нескольким адресам. Например, запись открывается через разные параметры или через альтернативный шаблон. В WordPress базовый каноникал обычно уже есть, но темы и плагины иногда его ломают.
Если нужно вручную поправить канонический адрес для конкретного типа записей, используйте фильтр wpseo_canonical только если у вас установлен Yoast SEO. Для ядра WordPress лучше не подменять каноникал без необходимости. Если задача локальная, безопаснее исправить генерацию ссылок или убрать лишний URL-формат.
Шаг 4. Закройте параметры, которые не должны индексироваться
Параметры вида ?replytocom= и служебные query string часто создают мусорные URL. Их не нужно превращать в отдельные страницы. Если параметр не меняет смысл контента, он не должен жить в индексе.
<?php
add_filter('redirect_canonical', function ($redirect_url, $requested_url) {
if (strpos($requested_url, 'replytocom=') !== false) {
return remove_query_arg('replytocom', $requested_url);
}
return $redirect_url;
}, 10, 2);Это не универсальная панацея, но для комментариев и похожих служебных параметров помогает убрать лишние варианты адресов.
Шаг 5. Проверьте robots.txt и мета robots
Не путайте запрет индексации и удаление дубля. Если страница уже существует и на неё ведут ссылки, Disallow в robots.txt не убирает её из индекса мгновенно. Для дублей чаще нужен noindex или редирект, а не только robots.
Хорошая практика:
- закрывать от индексации служебные страницы через
noindex, follow; - не блокировать в robots то, что нужно поисковику для понимания каноникала;
- не смешивать редирект,
noindexиDisallowбез понимания порядка обработки.
Когда лучше править код, а когда — использовать плагин
Если дублей немного и они типовые, кодом можно решить задачу точечно. Если на сайте много архивов, параметров и служебных страниц, проще использовать SEO-плагин или инструмент для чистки дублей. Но важно понимать, что плагин не заменяет диагностику.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в теме или mu-plugin | Точечно, прозрачно, без лишних зависимостей | Нужно тестировать и сопровождать |
| SEO-плагин | Удобно управлять мета-тегами и архивами | Легко скрыть проблему настройкой, а не исправить причину |
| Комбинированный подход | Можно закрыть системные дубли и оставить нужные архивы | Требует дисциплины и проверки каноникала |
Если нужен более системный контроль дублей и чистка технических страниц, можно посмотреть на Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже в этом случае сначала проверьте, какие именно URL создают проблему.
Как проверить, что решение сработало
После правок не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что поисковик видит правильную версию страницы и не получает новые дубли.
Чек-лист проверки
- основной URL отдаёт
200 OKи правильныйcanonical; - дубли либо редиректят на основной адрес, либо закрыты от индексации;
- в исходном коде нет нескольких каноникалов;
- страницы с параметрами не создают отдельные записи в индексе;
- в Search Console уменьшается число страниц с одинаковым содержимым;
- внутренние ссылки ведут только на один вариант URL.
Для быстрой проверки можно использовать команду:
curl -I https://example.ru/sample-page/Смотрите на статус ответа, Location при редиректе и наличие заголовков, которые могут конфликтовать с каноникалами. Если у вас есть доступ к Search Console, откройте проверку URL и сравните выбранный Google канонический адрес с вашим.
Частые ошибки и как их исправить
Закрыли всё в robots.txt и ждёте исчезновения дублей
Это частая ошибка. Если URL уже в индексе, одного запрета в robots недостаточно. Сначала нужен редирект, каноникал или noindex, а затем уже можно ограничивать обход.
Редиректите архивы на главную без анализа
Так делают, когда хотят быстро убрать страницы из индекса. В итоге теряется полезная навигация, а поисковик получает неочевидную структуру сайта. Если архив нужен пользователям, лучше оставить его доступным и управлять индексацией точечно.
Меняете каноникал, но не убираете внутренние ссылки на дубли
Если меню, хлебные крошки или блоки похожих материалов продолжают вести на разные варианты URL, поисковик будет снова и снова находить дубли. Каноникал помогает, но не исправляет плохую перелинковку.
Оставляете параметры UTM в индексируемых ссылках
UTM-параметры нужны для аналитики, но не для индексации. Если такие ссылки массово попадают в контент, лучше на уровне шаблона или редакторской дисциплины использовать чистые URL.
Практические советы по безопасности и производительности
Чем больше дублей, тем больше лишних обходов бота и тем выше нагрузка на сайт. Это особенно заметно на больших проектах с архивами, фильтрами и нестандартными шаблонами.
- не плодите архивы ради SEO, если они не несут пользы пользователю;
- не ставьте несколько SEO-плагинов одновременно — они часто конфликтуют в генерации мета-тегов;
- проверяйте, что редиректы не создают цепочки из двух-трёх переходов;
- если правите кодом, выносите изменения в
mu-pluginили дочернюю тему, а не в родительскую тему; - после правок очистите кеш страницы и объектный кеш, если он есть.
Если на сайте уже накопилось много технических дублей, иногда быстрее сначала навести порядок в мета-тегах, архивных страницах и служебных URL через специализированный плагин, а потом добить точечные случаи кодом. Это дешевле, чем вручную разбирать каждый URL в индексе.
Главная идея простая: не пытайтесь лечить все дубли одним правилом. Сначала найдите источник, потом решите, что должно редиректить, что должно быть noindex, а что вообще не должно генерироваться на сайте.