Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы авторов, вложения медиафайлов, служебные параметры в URL, пагинация и результаты поиска по сайту. Если оставить это как есть, поисковик тратит краулинговый бюджет на мусорные страницы, а в индексе остаются не те URL, которые вы хотите продвигать.
Ниже разберём, что именно закрывать через robots.txt, где нужен noindex, а где лучше вообще не трогать индексацию, чтобы не сломать обход сайта.
Какие дубли в WordPress встречаются чаще всего
Сначала полезно понять источник проблемы. Не все похожие URL — это дубль в строгом смысле, но для SEO они часто ведут себя одинаково: показывают одинаковый или почти одинаковый контент.
Типовые источники дублей
- архивы тегов и дат, если они не несут самостоятельной ценности;
- страницы авторов на сайтах с одним автором;
- вложения медиафайлов, которые открываются как отдельные страницы;
- внутренний поиск по сайту с параметрами в URL;
- пагинация архивов и категорий;
- URL с UTM-метками и другими параметрами;
- служебные страницы, которые не должны попадать в поиск.
Если у вас уже есть SEO-плагин, часть этих настроек может быть доступна в интерфейсе. Но важно понимать логику: robots.txt не убирает URL из индекса сам по себе, он только ограничивает обход. Для удаления из индекса нужен noindex или корректный канонический URL.
Диагностика: как понять, что именно индексируется лишнего
Перед правками проверьте, какие URL реально попали в поиск. Самый практичный путь — посмотреть отчёты в Google Search Console и сопоставить их с типами архивов в WordPress.
Что проверить вручную
- Откройте поиск по сайту в Google с оператором
site:вашдомен.ru. - Посмотрите, не всплывают ли страницы тегов, авторов, вложений и служебные URL.
- Проверьте, есть ли в индексе URL с параметрами, например
?replytocom=или UTM-метками. - Сравните заголовок и содержимое подозрительной страницы с основной страницей, которую она дублирует.
Если у вас есть доступ к серверным логам или аналитике обхода, посмотрите, не тратит ли бот много запросов на архивы, которые не нужны пользователю. Это особенно заметно на больших сайтах с тысячами записей и тегов.
Что закрывать через robots.txt, а что через noindex
Это ключевой момент. Ошибка многих сайтов — закрыть всё подряд в robots.txt, а потом удивляться, что дубли всё равно висят в индексе или что поисковик не может нормально переобходить нужные страницы.
| Подход | Когда использовать | Плюс | Минус |
|---|---|---|---|
robots.txt | Для ограничения обхода служебных разделов и бесполезных URL | Снижает нагрузку на обход | Не гарантирует удаление из индекса |
noindex | Для страниц, которые можно открыть, но не нужно индексировать | Работает именно на индекс | Нужно, чтобы бот мог страницу увидеть |
| Каноникал | Для похожих страниц с одной основной версией | Сигнализирует предпочтительный URL | Не всегда убирает дубль мгновенно |
Практическое правило простое: если страницу не надо индексировать, но поисковик должен её увидеть и прочитать мета-теги, используйте noindex. Если URL вообще не нужен для обхода, можно ограничить его в robots.txt, но только после проверки, что это не мешает важным страницам.
Пошаговое решение: закрываем лишние архивы и служебные страницы
Ниже — рабочая схема, которую можно адаптировать под большинство сайтов на WordPress.
Шаг 1. Ограничьте индексацию там, где это действительно уместно
Если вы используете SEO-плагин, сначала проверьте настройки архивов: теги, авторы, даты, вложения. На небольшом корпоративном сайте архивы тегов и дат часто не нужны в поиске вообще. На медиа-сайте или блоге с сильной структурой тегов ситуация может быть другой — там решение надо принимать по контенту, а не по шаблону.
Если нужно сделать это кодом, можно добавить noindex для конкретных типов архивов через wp_head:
<?php
add_action('wp_head', function () {
if (is_tag() || is_author() || is_date() || is_search()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Этот вариант рабочий, но у него есть минус: он не убирает уже проиндексированные URL мгновенно. Зато поисковик сможет увидеть страницу и понять, что её не нужно держать в индексе.
Шаг 2. Закройте лишние параметры в robots.txt
robots.txt имеет смысл для URL, которые создают лишний шум при обходе. Например, внутренний поиск, служебные параметры или вложения, если вы точно не используете их как отдельные страницы.
User-agent: *
Disallow: /?s=
Disallow: /search/
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-content/uploads/*/feed/
Sitemap: https://example.com/sitemap_index.xmlЗдесь важно не переусердствовать. Не закрывайте в robots.txt CSS, JS и важные разделы темы. Если бот не может рендерить страницу, это иногда ухудшает понимание контента и может создать новые проблемы вместо старых.
Шаг 3. Уберите индексацию вложений медиафайлов
Страницы вложений — частый источник дублей. Пользователь открывает картинку, а WordPress показывает отдельную страницу с почти пустым содержимым. Если такие URL уже в индексе, лучше перенаправить их на сам файл или на родительскую запись.
Для этого можно использовать фильтр attachment_link или настроить редирект на уровне SEO-плагина. Если нужен простой вариант без лишней логики, можно отключить отдельные страницы вложений через редирект в template_redirect:
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_the_ID());
if ($parent) {
wp_redirect(get_permalink($parent), 301);
} else {
wp_redirect(home_url('/'), 301);
}
exit;
}
});Это решение стоит тестировать аккуратно, особенно если у вас есть старые ссылки на страницы вложений из внешних источников.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно то, что вы задумали.
Чек-лист проверки
- Откройте несколько закрытых URL в браузере и проверьте исходный код страницы.
- Убедитесь, что на нужных архивных страницах есть
<meta name="robots" content="noindex,follow" />. - Проверьте, что
robots.txtдоступен по адресу/robots.txtи не содержит лишних запретов. - В Search Console отправьте на повторную проверку страницы, которые должны уйти из индекса.
- Посмотрите, не исчезли ли из обхода важные CSS/JS или страницы пагинации, которые должны индексироваться.
Если вы используете плагин кеширования, очистите кеш после изменения шаблонов и мета-тегов. Иначе можно смотреть на старую версию страницы и думать, что правка не сработала.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но он всё ещё в индексе
Это нормальная ситуация. robots.txt не удаляет URL из индекса автоматически. Если страница уже известна поисковику, добавьте noindex или настройте редирект/каноникал, а потом дождитесь переобхода.
Поставили noindex на страницу, но бот не может её прочитать
Если вы одновременно закрыли URL в robots.txt, поисковик может не увидеть мета-тег noindex. В таком случае запрет на обход мешает удалению из индекса. Для таких страниц сначала уберите блокировку в robots.txt, дождитесь переобхода, потом уже оценивайте результат.
Закрыли слишком много архивов и потеряли полезный трафик
Иногда теги и авторские архивы реально приводят посетителей. Если архив собирает тематический трафик и содержит уникальный контент, не надо автоматически ставить на него запрет. Сначала проверьте, есть ли у страницы самостоятельная ценность.
Использовали одинаковый каноникал на все страницы
Это частая ошибка в кастомных темах и самописных SEO-решениях. Канонический URL должен указывать на ближайшую логичную основную версию, а не на главную страницу сайта для всего подряд.
Когда лучше решить задачу через плагин, а когда через код
Если сайт ведётся редактором без доступа к коду, удобнее использовать SEO-плагин или инструмент для чистки дублей. Если же проблема точечная и повторяется из-за особенностей темы, код даёт больше контроля.
Для сайтов, где нужно не только закрыть дубли, но и убрать лишние служебные элементы, иногда удобнее подключить специализированный набор оптимизаций вроде Clearfy Pro. Но даже в этом случае стоит понимать, какие именно правила он применяет, чтобы не закрыть лишнее.
Код уместен, если
- нужно закрыть только один тип архивов;
- тема генерирует лишние страницы вложений;
- нужно быстро проверить гипотезу без установки нового плагина;
- у вас есть разработчик, который контролирует изменения.
Плагин уместен, если
- на сайте много редакторов и нужна настройка через админку;
- нужно управлять индексированием без правки темы;
- важно централизованно настраивать canonical, noindex и sitemap.
Практические советы по безопасности и производительности
Закрытие дублей — это не только про SEO. Чем меньше мусорных URL бот обходит, тем меньше лишней нагрузки на сервер и кеш. Но не стоит превращать robots.txt в свалку правил.
- не закрывайте важные ресурсы темы и плагинов, если они нужны для рендеринга;
- не удаляйте массово архивы, не проверив внешние ссылки и внутреннюю перелинковку;
- после изменения правил проверьте кеш страниц и кеш объекта, если он используется;
- если правите кодом, держите изменения в дочерней теме или в небольшом mu-plugin, а не в ядре темы.
Если задача шире и включает чистку служебных страниц, дубли метаданных и лишние архивы, имеет смысл сначала описать карту индексации сайта: что должно быть в поиске, что должно быть доступно только пользователю, а что вообще не нужно ни ботам, ни посетителям. Тогда настройка robots.txt и noindex перестаёт быть набором случайных запретов и становится управляемой схемой.