Как запретить индексацию отдельных страниц в WordPress через robots, noindex и canonical

В WordPress чаще всего проблема не в том, что сайт «плохо индексируется», а в том, что в индекс попадают лишние URL: страницы поиска, архивы с пустым или дублирующимся содержимым, служебные разделы, пагинация, параметры фильтров. Если просто закрыть всё подряд в robots.txt, можно получить обратный эффект: поисковик перестанет видеть нужные сигналы, но URL всё равно останутся в выдаче как «известные», только без нормальной обработки.

Нормальный сценарий обычно такой: для части страниц нужен noindex, для части — канонический URL, а robots.txt оставляют для технических ограничений, а не как универсальную кнопку «не индексировать». Ниже разберём, как это сделать в WordPress без выдуманных костылей и с проверкой результата.

Какие страницы обычно стоит закрывать

Не все «неполезные» страницы одинаковы. Одни лучше отдать с noindex, follow, другие — вообще не генерировать, третьи — оставить открытыми, но указать каноническую версию. Для WordPress типичный список выглядит так:

  • страницы внутреннего поиска;
  • архивы авторов на небольших сайтах, где один автор и дублируется контент;
  • архивы тегов, если они пустые или почти пустые;
  • страницы пагинации с тонким содержимым;
  • служебные шаблоны, если они доступны по прямому URL;
  • страницы с параметрами сортировки и фильтрации, если они создают дубли.

Если у вас уже есть статья про дубли страниц и архивов, здесь задача уже более прикладная: не искать проблему, а настроить точечное закрытие и проверить, что поисковик понял именно вашу логику.

Диагностика: где именно возникает лишняя индексация

Перед правками нужно понять, какой тип URL вы закрываете. Это важно, потому что для поиска, архивов и параметров фильтрации решения отличаются.

Что проверить вручную

  • Откройте проблемный URL в браузере и посмотрите исходный код: есть ли <meta name="robots" и какой там статус.
  • Проверьте HTTP-заголовки через DevTools или curl -I: иногда noindex отдается не в HTML, а в заголовке.
  • Посмотрите, не прописан ли канонический URL на другую страницу, хотя контент уникален.
  • Убедитесь, что страница не закрыта в robots.txt раньше, чем вы добавили noindex — поисковик может не увидеть мета-тег.

Пример быстрой проверки через консоль:

curl -I https://example.com/?s=wordpress

Если в ответе нет X-Robots-Tag, это не ошибка само по себе. Но если вы рассчитывали на заголовок, а его нет, значит правило не сработало.

Пошаговое решение: noindex, canonical и robots.txt

Самый безопасный подход — разделить задачи. noindex отвечает за исключение из индекса, canonical помогает склеить дубли, а robots.txt ограничивает обход там, где это действительно нужно.

1. Добавить noindex для выбранных типов страниц

Если вы не хотите ставить SEO-плагин только ради одной настройки, можно добавить мета-тег через wp_head. Ниже пример для поиска, архивов авторов и тегов. Логику можно расширить под свои условия.

<?php
add_action('wp_head', function () {
    if (is_search() || is_author() || is_tag()) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
}, 1);

Этот вариант подходит, если вы понимаете, какие типы архивов закрываете. Не копируйте его бездумно на любой сайт: на новостном проекте архивы авторов могут быть полезны для индексации.

2. Задать canonical для страниц с параметрами

Если проблема в URL с параметрами вроде ?sort=price или ?filter=color, часто лучше оставить страницу доступной, но указать каноническую версию без параметров. В WordPress это можно сделать через фильтр wpseo_canonical, если используется Yoast SEO, или через собственный вывод в wp_head для простых случаев.

Пример без привязки к SEO-плагину:

<?php
add_action('wp_head', function () {
    if (is_page('catalog')) {
        $canonical = remove_query_arg(array('sort', 'filter', 'page'));
        echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
    }
}, 5);

Здесь важно не ломать уже существующий canonical, если его выводит тема или SEO-плагин. Перед внедрением проверьте исходный код страницы, чтобы не получить два canonical одновременно.

3. Ограничить обход в robots.txt только там, где это оправдано

robots.txt полезен для технических URL, которые не должны расходовать краулинговый бюджет. Но он не заменяет noindex. Если закрыть страницу в robots и надеяться, что она исчезнет из индекса, можно получить старый URL в выдаче без возможности переобхода.

Пример аккуратного правила:

User-agent: *
Disallow: /?s=
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Для поиска это спорный вариант: поисковые системы не всегда обрабатывают такие правила одинаково. Если цель — именно убрать страницу поиска из индекса, надежнее использовать noindex, а не только Disallow.

Когда лучше использовать плагин, а когда код

ПодходКогда подходитМинус
SEO-плагинНужно управлять индексированием без правки темыЛишняя зависимость и часть настроек может быть спрятана глубоко в интерфейсе
Код в теме или мини-плагинеНужна точечная логика для конкретных шаблоновТребует контроля при обновлении темы
robots.txtНужно ограничить обход технических разделовНе решает задачу исключения из индекса сам по себе

Если у вас уже стоит SEO-плагин, сначала проверьте его настройки. Если нужно быстро и прозрачно закрыть один тип страниц, код в мини-плагине обычно надежнее, чем правка functions.php активной темы.

Проверка результата после внедрения

После изменений не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что поисковик видит именно то, что вы задумали.

  • Откройте исходный код и проверьте наличие <meta name="robots" content="noindex,follow">.
  • Убедитесь, что canonical указывает на нужный URL без параметров.
  • Проверьте ответ сервера через curl -I, если используете X-Robots-Tag.
  • Посмотрите страницу в Google Search Console через проверку URL, если сайт уже добавлен.
  • Проверьте, не закрыли ли вы нужную страницу случайно вместе с дублем.

Полезный чек-лист перед публикацией правок:

  • нет двух canonical на одной странице;
  • noindex стоит только там, где он действительно нужен;
  • страницы поиска и фильтров не блокируются раньше времени в robots.txt;
  • архивы, которые должны индексироваться, не закрыты глобальным правилом;
  • после очистки кеша HTML не отдает старую версию мета-тегов.

Частые ошибки и как их исправить

Закрыли страницу в robots.txt и ждете исчезновения из индекса

Это самая частая ошибка. Если поисковик не может переобойти URL, он может оставить его в индексе надолго. Для удаления из индекса нужен noindex или корректная смена canonical, а не только запрет обхода.

Ставите noindex на все архивы подряд

Так легко потерять полезные страницы. На контентных сайтах архивы категорий часто дают нормальный трафик и помогают структуре. Закрывать нужно только те разделы, которые реально создают дубли или пустые страницы.

Добавляете canonical на страницу, которая уже канонизируется плагином

В итоге поисковик видит конфликтующие сигналы. Если SEO-плагин уже выводит canonical, либо используйте его фильтры, либо отключите дублирующий вывод в теме.

Не очищаете кеш после правок

Если на сайте стоит кеширование HTML, старый noindex может продолжать отдаваться из кеша. После внедрения правок очистите серверный кеш, кеш плагина и CDN, если он есть.

Практические советы по безопасности и производительности

Если вы вносите изменения кодом, лучше не править активную тему напрямую. Для таких задач удобнее мини-плагин или mu-plugin: так настройка не слетит после обновления темы.

Еще один момент — не плодите тяжелую логику в wp_head. Условие должно быть простым и предсказуемым. Если вы начинаете делать сложные запросы к базе на каждой странице ради решения с индексированием, это уже плохая цена за одну мета-строку.

Если задача шире и включает чистку дублей, тонких страниц и служебных архивов, имеет смысл сначала навести порядок в структуре сайта, а уже потом точечно закрывать оставшиеся URL. В некоторых проектах это удобнее делать через SEO-плагины вроде Clearfy Pro, но только если вам нужен именно набор готовых переключателей, а не кастомная логика.

Главная проверка простая: страница должна либо остаться доступной и правильно канонизироваться, либо быть явно закрыта от индексации, но не обе вещи одновременно и не «на глаз». Если после правок URL по-прежнему появляется в выдаче, смотрите не только в мета-теги, но и в кеш, canonical и старые ссылки, которые уже успели попасть в индекс.

}
WooCommerce: как автоматически удалять заказы после их архивирования
18.05.2026
WooCommerce: автоматическое отключение платежей при ошибках биллинга
17.07.2026
WooCommerce: автоматическое изменение стоимости товара при промо-акциях
25.07.2026
Автоматическая замена контента в WordPress: практическое решение с использованием WPRemark
15.04.2026
Как добавить поддержку Gutenberg блоков в собственный плагин WordPress
06.03.2026