На WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за штатных механизмов: архивы авторов, теги, страницы вложений, результаты поиска, служебные URL, пагинация и параметры. Если сайт небольшой, это может не мешать. Но когда в индексе начинают жить десятки бесполезных страниц, поисковику сложнее понять, что считать основной версией контента.
Ниже разберём, как аккуратно убрать такие URL из robots.txt и XML-карты сайта, что именно можно закрывать, а что лучше оставить доступным для обхода. Сразу оговорка: robots.txt не удаляет страницы из индекса сам по себе. Он только ограничивает обход. Если URL уже проиндексирован, одной правкой robots проблему не решить.
Какие дубли обычно создаёт WordPress
Перед правками полезно понять источник. В типовой установке чаще всего всплывают такие группы URL:
- архивы авторов на сайте с одним автором;
- архивы тегов, если теги создавались без системы;
- страницы вложений медиафайлов;
- внутренний поиск по сайту;
- служебные страницы пагинации и фильтров;
- параметры вида
?replytocom=, UTM и другие query string; - черновые таксономии и пустые архивы.
Не все из них нужно закрывать. Например, архивы категорий часто полезны, а вот пустые теги и страницы вложений обычно только размазывают вес и создают шум в индексе.
Диагностика: что именно уже попало в индекс
Сначала проверьте, какие URL поисковик уже видит как отдельные страницы. Самый простой способ — поиск по оператору site: и просмотр отчётов в Google Search Console. Если у вас есть доступ к консоли, откройте разделы «Страницы» и «Файлы Sitemap» и посмотрите, какие типы URL индексируются чаще всего.
Полезно также проверить сам сайт на наличие типовых дублей:
site:example.com inurl:tag
site:example.com inurl:author
site:example.com inurl:attachment
site:example.com inurl:?replytocomЕсли в выдаче видны архивы, которые не несут ценности, их можно убирать из карты сайта и ограничивать в robots. Но если это важные разделы, например категории с трафиком, закрывать их не стоит.
Что проверять в первую очередь
- есть ли на сайте один автор или несколько;
- используются ли теги как полноценная навигация или они пустые;
- нужны ли страницы вложений как отдельные URL;
- не генерирует ли тема или плагин лишние архивы;
- какие типы записей реально должны индексироваться.
Пошаговое решение: убираем лишнее из robots.txt и sitemap
Есть два рабочих подхода: через плагин и через код. Если нужен быстрый и безопасный вариант без правки темы, удобнее использовать SEO-плагин с настройками индексации. Если нужен точечный контроль, лучше сделать это кодом в дочерней теме или через mu-plugin.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Плагин | Нужно быстро отключить архивы и карты сайта без разработки | Меньше риска сломать сайт, есть интерфейс | Не всегда даёт точечную настройку |
| Код | Нужен контроль над конкретными URL и типами архивов | Прозрачная логика, нет лишней нагрузки | Нужно аккуратно тестировать |
| Компромисс | Часть настроек в плагине, часть в коде | Удобно для поддержки | Важно не дублировать правила в двух местах |
1. Закрываем страницы вложений и внутренний поиск
Если на сайте не используется отдельная логика для attachment-страниц, их обычно лучше редиректить на сам файл или родительскую запись. Для этого можно использовать стандартный фильтр WordPress:
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);
exit;
}
wp_redirect(home_url('/'), 301);
exit;
}
});Для страниц поиска отдельный индекс обычно не нужен. Их можно оставить доступными для пользователей, но убрать из sitemap и не давать поисковику лишних сигналов. Если используется SEO-плагин, проверьте, не попадают ли search-URL в карту сайта через кастомные правила.
2. Исключаем архивы автора на сайте с одним автором
Если у сайта один автор, архив автора почти всегда дублирует главную страницу блога или страницу автора. В таком случае его можно отключить из индекса и убрать из sitemap. В коде это делается через noindex и редирект, если архив не нужен вообще:
add_action('template_redirect', function () {
if (is_author() && !is_admin()) {
wp_redirect(home_url('/'), 301);
exit;
}
});Если архив автора нужен для навигации, не делайте редирект. Тогда лучше оставить страницу доступной, но убрать её из XML-карты и добавить noindex,follow через SEO-плагин или шаблон темы.
3. Убираем пустые теги и служебные таксономии из sitemap
С тегами важно не переборщить. Полностью отключать их стоит только если они не используются как часть структуры сайта. Если теги нужны, но часть из них пустые, лучше не индексировать именно пустые архивы. Для этого можно использовать фильтр sitemap в популярных SEO-плагинах, но названия фильтров зависят от конкретного плагина. Универсальный вариант — не создавать пустые термины и регулярно чистить таксономии.
Если вы работаете без SEO-плагина и используете собственный XML sitemap, логика должна быть простой: в карту попадают только те архивы, у которых есть контент и которые реально нужны в поиске.
Как настроить robots.txt без лишних запретов
Ошибка многих сайтов — закрыть в robots слишком много. Например, запретить /tag/, /category/ и /search/ «на всякий случай». Это не всегда полезно: поисковик перестаёт обходить разделы, а вы теряете контроль над тем, что именно он видит.
Более безопасный вариант — закрывать только очевидно служебные URL, которые не должны участвовать в обходе. Пример базового robots.txt:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlОбратите внимание: запрет поиска через Disallow: /?s= не гарантирует удаление уже известных URL из индекса. Он лишь ограничивает обход. Если поисковик уже знает такие страницы, дополнительно нужен noindex или редирект, если это оправдано.
Проверка результата после внедрения
После правок не стоит сразу ждать изменений в выдаче. Сначала проверьте техническую сторону:
- открывается ли
/robots.txtбез ошибок; - обновилась ли XML-карта сайта;
- не исчезли ли из sitemap нужные разделы;
- нет ли циклических редиректов на attachment-страницах;
- не отдают ли служебные URL статус
200 OK, если вы ожидали301илиnoindex.
Для быстрой проверки можно использовать curl:
curl -I https://example.com/robots.txt
curl -I https://example.com/sitemap_index.xml
curl -I https://example.com/sample-attachment/В Google Search Console проверьте, как меняется отчёт по страницам. Если вы закрыли архивы и убрали их из sitemap, они не должны активно пополняться новыми URL. Уже проиндексированные страницы могут исчезать постепенно, после повторного обхода.
Частые ошибки и как их исправить
Закрыли URL в robots, но они остались в индексе
Это нормальная ситуация. robots.txt не удаляет страницу из индекса. Если нужно убрать URL быстрее, используйте noindex или редирект, а затем дождитесь переобхода.
Случайно закрыли полезные категории
Так бывает, когда в robots добавляют слишком общий запрет на весь каталог таксономий. Исправление простое: уберите массовый запрет, оставьте только служебные URL, а категории с трафиком верните в sitemap.
Удалили страницу из sitemap, но она всё ещё доступна
Это не ошибка само по себе. Sitemap — это подсказка для поисковика, а не блокировка. Если URL должен быть недоступен для индекса, нужен noindex, редирект или корректный HTTP-статус.
Редирект на главную для всех вложений сломал медиа-раздел
Если на сайте есть каталог изображений или отдельные страницы вложений нужны для SEO, не применяйте универсальный редирект. В таком случае лучше настраивать поведение точечно: редиректить только те типы вложений, которые не используются, а нужные оставить как есть.
Практические советы по безопасности и производительности
Чем меньше мусорных URL генерирует сайт, тем проще его обслуживать. Но не стоит превращать SEO-настройки в набор жёстких запретов. Лучше поддерживать чистую структуру на уровне контента и шаблонов:
- не создавайте теги ради тегов;
- не плодите архивы без контента;
- проверяйте, не создаёт ли тема отдельные страницы для всего подряд;
- следите за редиректами после смены структуры URL;
- не правьте
robots.txtвручную, если его уже генерирует SEO-плагин — сначала выясните источник файла.
Если нужен более системный контроль над дублями, чисткой служебных URL и SEO-настройками, можно посмотреть в сторону Clearfy Pro. Но даже с плагином важно понимать, какие URL вы отключаете и зачем: автоматическая галочка не заменяет проверку в Search Console и тест ответа сервера.
В итоге рабочая схема обычно такая: сначала находите лишние URL, потом решаете, что из них нужно убрать из индекса, что оставить доступным, а что редиректить. Если делать это по шагам, без массовых запретов, сайт становится чище, а поисковику проще понять его структуру.