В WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за штатных механизмов: архивы тегов и авторов, страницы пагинации, результаты поиска, версии с параметрами, вложения медиафайлов, а иногда и одинаковые записи в нескольких таксономиях. Если это не контролировать, поисковик тратит обход на мусорные URL, а в индексе остаются страницы, которые не должны конкурировать с основными.
Ниже — рабочая схема: сначала быстро диагностируем, какие именно дубли у вас есть, затем закрываем лишнее от индексации, не ломая сайт и не выкидывая из поиска полезные страницы.
Какие дубли в WordPress встречаются чаще всего
Перед правками важно понять, что именно вы хотите убрать. Одно дело — закрыть внутренний поиск, другое — случайно убрать из индекса архивы категорий, которые реально приводят трафик.
Типовые источники дублей
- страницы с параметрами в URL:
?replytocom=, UTM, сортировка, фильтры; - архивы тегов, авторов, дат, если они дублируют основную структуру;
- страницы вложений медиафайлов;
- страницы поиска по сайту;
- пагинация архивов, если она индексируется без необходимости;
- одинаковый контент в категориях, рубриках и на главной.
Если у вас уже стоит SEO-плагин, часть настроек может быть доступна там. Но не стоит полагаться на «галочку от дублей» без проверки фактических URL в индексе.
Диагностика: где искать проблему
Начните с простого списка URL, которые поисковик уже видит. Для этого удобно использовать Google Search Console, а на самом сайте — посмотреть, какие архивы и служебные страницы реально открываются.
Что проверить вручную
- откройте несколько URL с параметрами и посмотрите, меняется ли контент;
- проверьте архивы тегов и авторов: есть ли у них уникальный смысл;
- посмотрите, не индексируются ли страницы вложений;
- сравните title и H1 у похожих страниц;
- проверьте, не создаёт ли тема отдельные шаблоны для одинакового контента.
Если вы работаете через серверный доступ, полезно быстро посмотреть заголовки ответа и robots-метки. Например:
curl -I https://example.com/tag/wordpress/В ответе ищите X-Robots-Tag и статус страницы. Но отсутствие этого заголовка ещё не значит, что страница должна индексироваться — иногда мета-тег noindex выводится в HTML.
Пошаговое решение: как убрать дубли без лишнего риска
Лучше идти от самых безопасных изменений к более жёстким. Сначала закрываем служебные страницы, потом смотрим на архивы, и только затем трогаем шаблоны и код.
Шаг 1. Закройте внутренний поиск и служебные страницы
Результаты поиска по сайту почти всегда не нужны в индексе. То же касается страниц вложений, если они не используются как самостоятельные посадочные.
Если у вас есть SEO-плагин, проверьте, умеет ли он ставить noindex для search, attachment и архивов. Если нужно сделать это кодом, можно добавить фильтр в functions.php дочерней темы или в мини-плагин:
add_action('wp_head', function () {
if (is_search() || is_attachment()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Для вложений часто лучше не только закрыть их от индексации, но и перенаправить на сам файл или родительскую запись, если это соответствует структуре сайта.
Шаг 2. Уберите индексирование мусорных архивов
Теги и архивы авторов полезны не всегда. Если у вас один автор или теги используются хаотично, такие страницы часто становятся дублями категорий.
Варианта здесь три:
| Подход | Когда подходит | Минус |
|---|---|---|
| Плагин SEO | Нужно быстро и без кода | Меньше контроля над логикой |
| Код в теме/плагине | Нужна точечная настройка | Требует аккуратности при обновлениях |
| Смешанный вариант | Часть архивов полезна, часть нет | Нужно не забыть про проверку шаблонов |
Если архивы тегов вам не нужны, не ограничивайтесь noindex. Лучше ещё убрать их из внутренних ссылок и меню, иначе бот будет продолжать тратить на них обход.
Шаг 3. Нормализуйте параметры URL
Параметры сортировки, фильтров и трекинга часто создают десятки версий одной и той же страницы. Для UTM это обычно не проблема, если каноникал указывает на чистый URL. Но параметры, которые меняют контент, нужно обрабатывать отдельно.
Минимум, который стоит проверить:
- есть ли на странице корректный
rel="canonical"; - не создаёт ли плагин фильтрации отдельные индексируемые URL;
- не попадают ли параметрические страницы в sitemap;
- не открываются ли они со статусом 200 без нужды.
Если вы пишете логику сами, можно задать канонический адрес для конкретных шаблонов:
add_filter('get_canonical_url', function ($canonical, $post) {
if (is_search() || is_attachment()) {
return home_url('/');
}
return $canonical;
}, 10, 2);Этот пример не решает всё подряд, но показывает принцип: каноникал должен вести на ту страницу, которую вы считаете основной, а не на случайную версию с параметром.
Шаг 4. Проверьте sitemap и robots.txt
Если страница закрыта от индексации, но продолжает попадать в sitemap, вы создаёте противоречивые сигналы. Поисковик это обычно переживает, но лишняя нагрузка и путаница остаются.
Проверьте, что в sitemap нет:
- страниц поиска;
- вложений;
- архивов, которые вы закрыли;
- страниц с параметрами;
- черновых или технических URL.
Важно: robots.txt не заменяет noindex. Если страница уже в индексе, запрет в robots может помешать её переобходу, но не гарантирует удаление. Для удаления дублей обычно нужен именно noindex или каноникал, а не только disallow.
Как проверить, что решение сработало
После правок не ориентируйтесь только на «в коде всё добавили». Нужна проверка на уровне ответа сервера и HTML.
Чек-лист проверки
- откройте закрытую страницу в браузере и убедитесь, что в исходном коде есть
noindex; - проверьте, что каноникал указывает на нужный URL;
- посмотрите, исчезла ли страница из sitemap;
- проверьте статус в Search Console после переобхода;
- сравните количество страниц в индексе до и после, но не делайте выводы по одному дню;
- убедитесь, что важные категории и записи не потеряли доступность.
Для быстрой проверки HTML можно использовать:
curl -s https://example.com/search/test/ | grep -i robotsЕсли у вас несколько шаблонов, проверьте каждый отдельно: архив категории, тег, поиск, вложение, пагинацию. Ошибка часто сидит не в «общей настройке SEO», а в одном кастомном шаблоне темы.
Частые ошибки и как их исправить
Закрыли от индексации полезные страницы
Самая неприятная ошибка — поставить noindex на все архивы подряд. Если категория даёт трафик и хорошо отвечает на запрос, её нельзя убирать только потому, что она похожа на другие страницы. Решение: оставляйте индексируемыми только те архивы, которые реально несут самостоятельную ценность.
Поставили noindex, но оставили URL в sitemap
Это не критично, но плохо для чистоты сигналов. Уберите такие страницы из карты сайта или настройте генерацию sitemap так, чтобы она учитывала статус индексации.
Сделали disallow в robots.txt вместо noindex
Если страница уже известна поисковику, запрет обхода не равен удалению из индекса. Для дублей это частая ловушка. Сначала решите, нужна ли страница в индексе вообще, потом выбирайте метод.
Не учли тему и плагины фильтрации
Некоторые темы и плагины создают собственные архивы, хлебные крошки, AJAX-фильтры и страницы с параметрами. Если после правок дубли остались, ищите источник не в SEO-плагине, а в шаблоне вывода или в фильтрующем плагине.
Практические советы по безопасности и производительности
Чем меньше мусорных URL вы оставляете открытыми, тем меньше лишней работы у бота и у самого сайта. Но не стоит превращать SEO-настройки в хаотичный набор запретов.
- не правьте
functions.phpосновной темы, если обновления могут затереть изменения; - для точечных правил лучше сделать маленький mu-plugin или мини-плагин;
- перед массовыми изменениями проверьте резервную копию и возможность отката;
- если используете кеш, очищайте его после правок мета-тегов и каноникалов;
- не закрывайте от индексации страницы, которые уже получают переходы из поиска, без анализа данных.
Если нужна более системная чистка дублей и служебных страниц, имеет смысл смотреть в сторону инструментов, которые умеют управлять архивами, мета-тегами и техническими настройками в одном месте. Например, у Clearfy Pro есть набор функций для удаления дублей и чистки WordPress: https://wpshop.ru/plugins/clearfy.
Но даже с плагином принцип не меняется: сначала находите конкретный тип дубля, потом закрываете его, потом проверяете результат в индексе и в sitemap. Иначе можно получить красивую настройку без реального эффекта.