Если в Search Console всплывают дубли, а в индексе оказываются архивы, страницы пагинации, вложения изображений или служебные URL, проблема обычно не в «плохом SEO», а в том, что WordPress по умолчанию публикует слишком много адресов. В таких случаях нужно не «закрыть всё подряд», а аккуратно разметить, что индексировать, а что оставить для обхода поисковиком без участия в ранжировании.
Ниже разберём рабочую схему: где ставить noindex, когда нужен canonical, как не сломать важные страницы и как проверить, что поисковый робот видит именно то, что вы задумали.
Когда проблема действительно в индексации, а не в контенте
Сначала стоит убедиться, что речь именно о техническом дубле или лишней странице, а не о слабом контенте. Типичные признаки:
- в индексе есть страницы
/page/2/,/page/3/и они конкурируют с основной страницей раздела; - попадают архивы тегов, которые не несут самостоятельной ценности;
- индексируются страницы вложений изображений, хотя они дублируют медиафайл без контекста;
- в выдаче видны URL с параметрами сортировки, фильтрации или поиска по сайту;
- одна и та же запись доступна по нескольким адресам из-за неправильного canonical.
Что проверить в первую очередь
Откройте проблемный URL и посмотрите исходный код страницы. Важно найти два сигнала: мета-тег robots и canonical. Если canonical указывает на другой адрес, а страница при этом индексируется как самостоятельная, значит поисковик либо игнорирует подсказку, либо на сайте есть конфликтующие сигналы.
Для быстрой проверки удобно использовать:
curl -I https://example.com/page/2/И отдельно посмотреть HTML:
curl -s https://example.com/page/2/ | grep -iE 'canonical|robots'Если у вас нет доступа к серверу, аналогично можно проверить через просмотр исходного кода в браузере и инструменты для вебмастеров.
Что ставить: noindex или canonical
Эти механизмы решают разные задачи. canonical говорит поисковику, какая версия страницы основная. noindex просит не включать страницу в индекс. На практике они часто используются вместе, но не всегда.
| Сценарий | Что делать | Комментарий |
|---|---|---|
| Пагинация архивов | noindex,follow + canonical на саму страницу пагинации или на основной архив по ситуации | Главное — не плодить мусорные посадочные |
| Архивы тегов без ценности | noindex,follow | Если тег нужен только для навигации, индексировать его не обязательно |
| Страницы вложений | Редирект на файл или noindex | Лучше не оставлять отдельные attachment-страницы в индексе |
| Дубли из-за параметров | Canonical на чистый URL | Если страница полезна, не надо закрывать её полностью |
Ошибка многих настроек в том, что они ставят noindex на всё подряд. Так можно случайно убрать из индекса важные категории или записи, а потом долго разбираться, почему трафик просел.
Пошаговая настройка в WordPress через код
Если нужен точечный контроль, лучше не полагаться только на SEO-плагин. Небольшой сниппет в теме или в мини-плагине даёт предсказуемый результат и не зависит от лишних настроек.
1. Закрыть архивы тегов и страницы вложений
Ниже пример, который добавляет noindex,follow для архивов тегов и страниц вложений. Его можно положить в functions.php дочерней темы или в собственный плагин.
add_filter('wp_robots', function ($robots) {
if (is_tag() || is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант использует стандартный фильтр wp_robots, который есть в современных версиях WordPress. Он безопаснее, чем ручная вставка мета-тега в шаблон, потому что не ломает разметку и не конфликтует с основным выводом robots.
2. Настроить canonical для пагинации и дублей
Если у вас есть страницы с параметрами или нестандартные шаблоны архива, canonical можно поправить отдельно. Для базового случая WordPress уже выводит canonical сам, но при кастомизации темы часто это ломается.
add_filter('get_canonical_url', function ($canonical, $post) {
if (is_singular() && $post instanceof WP_Post) {
return get_permalink($post);
}
return $canonical;
}, 10, 2);Если canonical уже выводится корректно, этот фильтр не нужен. Его стоит применять только тогда, когда тема или плагин подменяют адреса и создают дубли.
3. Убрать индексацию страниц поиска по сайту
Встроенный поиск WordPress почти всегда не нужен в индексе. Он генерирует много низкоценного контента и может создавать бесконечные комбинации URL.
add_filter('wp_robots', function ($robots) {
if (is_search()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});Для поиска это особенно полезно на контентных сайтах, где пользователи часто ищут по коротким или случайным запросам.
Если используете SEO-плагин, где не ошибиться
В популярных SEO-плагинах логика похожая: отдельно настраиваются архивы, таксономии, вложения и мета-robots. Но важно не дублировать правила в плагине и в коде одновременно. Иначе одна настройка будет переопределять другую, а в исходнике появится конфликтующий набор сигналов.
Практический подход такой:
- если задача типовая — настройте её в SEO-плагине;
- если нужен точечный сценарий для одной таксономии или шаблона — используйте код;
- если уже есть плагин, проверьте, не выводит ли он собственный canonical и robots поверх ваших правил.
Если на сайте используется Clearfy Pro, его удобно применять для чистки дублей и служебных страниц, но всё равно стоит перепроверять итоговый HTML и не оставлять одновременно несколько источников управления индексацией: это частая причина неожиданных конфликтов. Подробности по продукту: Clearfy Pro.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой в админке. Нужно убедиться, что поисковый робот видит правильные сигналы.
- Откройте страницу в браузере и проверьте исходный код.
- Убедитесь, что у нужной страницы есть только один canonical.
- Проверьте, что на закрытых страницах стоит
noindex. - Прогоните URL через инструмент проверки в Search Console.
- Посмотрите, не появились ли ошибки в логах или конфликт с кешем.
Для быстрой локальной проверки можно использовать такой запрос:
curl -s https://example.com/tag/sample-tag/ | grep -iE 'robots|canonical'Если страница отдаётся из кеша, очистите кеш плагина и серверный кеш, затем повторите проверку. Иначе вы можете смотреть на старую версию HTML и сделать ложный вывод, что настройка не сработала.
Частые ошибки и как их исправить
Ставят noindex на важные страницы
Такое часто случается, когда закрывают все архивы разом, не разделяя теги, категории и страницы авторов. Исправление простое: верните индексирование там, где архив реально помогает пользователю и даёт уникальную структуру.
Добавляют canonical на главную вместо текущей страницы
Это ломает пагинацию и может мешать индексации полезных страниц. Canonical должен указывать на основную версию именно этого типа страницы, а не на произвольный URL.
Дублируют правила в теме и плагине
Если robots и canonical выводятся из двух мест, поисковик получает противоречивые сигналы. Оставьте один источник правды: либо SEO-плагин, либо код.
Не чистят кеш после изменений
На сайтах с кешированием проблема часто не в WordPress, а в том, что старый HTML продолжает отдаваться посетителям и ботам. После правок обязательно очищайте кеш страницы, объектный кеш и CDN, если он есть.
Короткий чек-лист перед публикацией
- Проверен исходный код страницы.
- На закрытых URL стоит
noindex. - У основных страниц корректный canonical.
- Нет двух SEO-плагинов, которые одновременно управляют robots.
- Кеш очищен после изменений.
- Проверка в Search Console показывает нужный URL и статус.
Когда лучше не закрывать страницу от индексации
Не стоит автоматически ставить noindex на всё, что выглядит «вспомогательным». Иногда архив тега или рубрики даёт хороший трафик, если он действительно собран вокруг одной темы и содержит достаточный объём материалов. В таком случае лучше доработать структуру и контент, чем прятать страницу от индекса.
То же касается canonical: если вы используете фильтры, сортировки или параметры, но они реально нужны пользователю, сначала проверьте, нельзя ли привести URL к одной логике без потери функциональности. Техническая настройка должна помогать сайту, а не маскировать архитектурные ошибки.