На WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за штатной структуры сайта: архивы авторов, рубрик, меток, дат, страниц вложений и служебные URL плагинов. Если сайт небольшой, это незаметно. На контентных проектах и блогах такие страницы быстро размывают индекс, а в Search Console начинают всплывать URL, которые не должны конкурировать с основными материалами.
Ниже — рабочая схема: что именно закрывать, чем отличается noindex от robots.txt, как не сломать каноникал и как проверить, что поисковик действительно перестал тратить краулинговый бюджет на мусорные страницы.
Какие дубли в WordPress встречаются чаще всего
Если смотреть на проблему технически, дубли обычно делятся на две группы: страницы, которые реально отдают контент, но не нужны в поиске, и URL, которые создаются автоматически и не несут самостоятельной ценности. Вторая группа особенно коварна: она может быть доступна по нескольким адресам, а иногда ещё и индексируется через внутренние ссылки.
Типичные источники дублей
- архивы авторов на сайтах с одним автором;
- архивы дат, если они не используются как навигация;
- метки, которые дублируют рубрики по смыслу;
- страницы вложений изображений;
- страницы пагинации с тонким контентом;
- служебные страницы поиска и фильтров;
- дубли из-за параметров URL, если их индексируют внутренние ссылки.
Если у вас уже есть SEO-плагин, не спешите закрывать всё подряд. Сначала проверьте, какие URL реально попадают в индекс и какие из них получают переходы. Иногда архив автора нужен, если это редакционный сайт с несколькими авторами и отдельными страницами профилей.
Диагностика: что именно мешает индексации
Начните не с правок, а с проверки фактов. Откройте Search Console и посмотрите отчёты по страницам: какие URL исключены, какие продублированы, где указан канонический URL, а где поисковик выбрал свой вариант. Параллельно проверьте исходный код проблемной страницы: есть ли meta robots, какой canonical указан и не конфликтует ли он с реальным адресом.
Для быстрой проверки удобно смотреть заголовки ответа и HTML. Если страница должна быть закрыта от индексации, но отдаёт index,follow, проблема не в robots.txt, а в настройках темы или SEO-плагина.
curl -I https://example.com/author/admin/В ответе ищите заголовки, которые могут влиять на индексацию: X-Robots-Tag, редиректы, код ответа 200 или 301. Если страница закрыта только через robots.txt, но уже попала в индекс, одного запрета на обход недостаточно: поисковику нужно дать сигнал через noindex или редирект.
Что закрывать через noindex, а что через robots.txt
Это ключевой момент. robots.txt управляет обходом, но не гарантирует удаление URL из индекса. noindex — прямой сигнал не индексировать страницу, но для его обработки поисковик должен страницу увидеть. Поэтому для страниц, которые уже в индексе, обычно безопаснее сначала поставить noindex, а не блокировать их в robots.txt.
| Подход | Когда использовать | Минус |
|---|---|---|
noindex | Для архивов, служебных страниц, пагинации, тонких страниц | Страница должна быть доступна для обхода |
robots.txt | Для технических разделов, которые не должны сканироваться | Не убирает URL из индекса сам по себе |
| 301-редирект | Если есть явный дубль и нужен один канонический адрес | Нужно аккуратно выбрать целевой URL |
На практике для WordPress чаще всего используют комбинацию: архивы авторов и дат — noindex, служебные каталоги — запрет в robots.txt, а дубли страниц вложений — редирект на родительскую запись или медиафайл, если он нужен.
Пошаговое решение для WordPress
1. Отключите индексацию ненужных архивов в SEO-плагине
Если у вас установлен плагин уровня Yoast SEO или Rank Math, сначала проверьте их настройки архивов. На сайтах с одним автором архив автора почти всегда лишний. Архив дат тоже редко даёт пользу, если вы не ведёте новостной журнал по дням.
Если нужен более точечный контроль, можно сделать это кодом в теме или небольшом mu-plugin. Пример ниже добавляет noindex,follow для архива автора и архива дат, а также убирает страницы вложений из индекса.
<?php
add_action('wp_head', function () {
if (is_author() || is_date() || is_attachment()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Этот вариант рабочий, но если у вас уже есть SEO-плагин, не дублируйте управление robots в двух местах. Иначе получите конфликт: один плагин ставит index, другой — noindex, а в коде страницы будет каша.
2. Закройте служебные URL в robots.txt только там, где это уместно
В robots.txt имеет смысл закрывать то, что не должно сканироваться вообще: внутренний поиск, технические каталоги, иногда параметры сортировки и фильтров, если они создают бесконечные комбинации URL. Но не используйте robots.txt как замену noindex для уже индексируемых страниц.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /cgi-bin/
Sitemap: https://example.com/sitemap_index.xmlЕсли сайт использует красивые URL поиска или фильтров, правила нужно адаптировать под реальную структуру. Слепое копирование robots.txt из чужой статьи часто ломает обход нужных страниц.
3. Уберите страницы вложений и лишние архивы через редирект
Страницы вложений в WordPress часто создаются автоматически и почти никогда не нужны как отдельные посадочные. Если изображение открывается на пустой странице вложения, лучше редиректить её на родительскую запись или на сам файл, если это осознанный сценарий.
<?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);
exit;
}
wp_redirect(home_url('/'), 301);
exit;
}
});Такой редирект снижает количество бесполезных URL и помогает убрать из индекса страницы, которые не должны конкурировать с основным контентом.
4. Проверьте canonical и пагинацию
Если у рубрики много страниц пагинации, не нужно ставить canonical на первую страницу для всех страниц подряд. Это частая ошибка, из-за которой поисковик начинает игнорировать пагинацию или считать её дубликатом. Для страниц категорий canonical должен указывать на саму страницу, а не на корень раздела, если страница имеет самостоятельный смысл.
Если используете SEO-плагин, проверьте, не переписывает ли он canonical на уровне шаблона. В кастомных темах это особенно важно: одна лишняя функция в functions.php может сломать всю логику индексации.
Как проверить, что решение сработало
После изменений не ограничивайтесь визуальной проверкой. Нужны минимум три проверки: исходный код страницы, заголовки ответа и данные в Search Console.
- Откройте проблемный URL и убедитесь, что в HTML есть
noindex,followили нужныйcanonical. - Проверьте, что страница не закрыта в
robots.txtраньше, чем поисковик успеет увидетьnoindex, если URL уже был в индексе. - Посмотрите в Search Console, изменился ли статус страницы в отчёте по индексированию.
- Проверьте, не остались ли внутренние ссылки на ненужные архивы в меню, хлебных крошках и блоках «Похожие записи».
Если вы используете кэш-плагин или серверный кэш, очистите кэш после правок. Иначе вы можете смотреть на старую версию страницы и думать, что настройки не применились.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt и ждёте удаления из индекса
Это самая распространённая ошибка. Если URL уже в индексе, поисковик может продолжать показывать его как «заблокированный robots.txt». Исправление: временно разрешите обход, поставьте noindex или сделайте 301 на нужную страницу.
Поставили noindex через код, но SEO-плагин перезаписывает тег
Так бывает, когда в теме и в плагине одновременно управляют мета-тегами. Решение простое: оставьте один источник правды. Если SEO-плагин уже умеет закрывать архивы, уберите дублирующий код из темы.
Закрыли архив автора, но оставили на него ссылки в шаблоне
Внутренние ссылки на закрытую страницу — не катастрофа, но это лишний шум. Если архив автора не нужен, уберите ссылку из блока автора в шаблоне или замените её на страницу профиля, если она есть.
Сломали пагинацию рубрик
Иногда после правок все страницы рубрики начинают канонизироваться на первую. В результате поисковик хуже понимает структуру раздела. Проверяйте canonical на страницах /category/page/2/, /page/3/ и аналогичных URL после каждого изменения шаблона.
Практические советы по безопасности и производительности
Чем меньше мусорных URL генерирует сайт, тем проще его обходить и тем меньше нагрузка на сервер и кэш. Это не магия, а обычная экономия на количестве запросов. Особенно заметно это на сайтах с большим числом архивов, фильтров и медиафайлов.
- не плодите архивы таксономий без необходимости;
- не создавайте отдельные страницы под каждую метку, если они дублируют рубрики;
- проверяйте, не генерирует ли тема лишние ссылки на страницы вложений;
- держите sitemap только с теми URL, которые реально должны индексироваться;
- после изменений тестируйте сайт в режиме инкогнито и с отключённым кэшем.
Если нужен более системный контроль дублей и служебных страниц, удобно использовать инструменты вроде Clearfy Pro: он помогает закрывать лишние архивы, чистить технический мусор и настраивать SEO-аспекты без ручного редактирования шаблонов. Но даже с плагином логику индексации всё равно стоит проверять вручную, особенно после обновлений темы или смены SEO-стека.
Главный критерий простой: в индексе должны оставаться только те URL, которые реально отвечают на запрос пользователя. Всё остальное — либо noindex, либо редирект, либо запрет на обход, если страница вообще не должна участвовать в сканировании.