wphierarchy.ru wordpress Структура шаблонов WordPress

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

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

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

Какая именно проблема у вас: дубли, мусорные архивы или служебные страницы

Перед правками стоит понять, что именно нужно убрать из индекса. Для WordPress это обычно один из четырёх сценариев:

  • архивы тегов и рубрик с одинаковыми сниппетами;
  • страницы внутреннего поиска вида ?s=;
  • страницы автора на сайте с одним автором;
  • пагинация и параметры сортировки, которые создают дубли.

Проверка простая: откройте URL в браузере и посмотрите исходный код. Если в <head> уже есть <meta name="robots" content="noindex,follow">, но страница всё равно индексируется, значит проблема может быть в каноническом URL, внутренней перелинковке или в том, что поисковик ещё не переобходил страницу.

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

Что выбрать: robots.txt, noindex или canonical

Эти инструменты решают разные задачи. Ошибка многих сайтов — пытаться закрыть всё через robots.txt. Это не всегда работает так, как ожидается.

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

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

Пошаговое решение через код темы или mu-plugin

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

1. Закрываем внутренний поиск WordPress

Страницы поиска почти всегда создают шум: у них нет стабильной ценности для индекса, а запросы пользователя могут генерировать тысячи URL. Для таких страниц обычно ставят noindex,follow.

<?php
add_filter('wp_robots', function ($robots) {
    if (is_search()) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
});

Этот вариант работает в современных версиях WordPress, где используется фильтр wp_robots. Он безопаснее, чем ручная вставка мета-тега в шаблон, потому что не ломает разметку и не требует правки header.php.

2. Убираем из индекса архивы автора на сайте с одним автором

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

<?php
add_filter('wp_robots', function ($robots) {
    if (is_author() && count_users()['total_users'] === 1) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
});

Здесь есть нюанс: count_users() возвращает массив с данными по ролям, поэтому для сложных сайтов с несколькими ролями и скрытыми авторами лучше заранее проверить логику на staging. Если на сайте несколько авторов, закрывать архивы автоматически уже не стоит.

3. Добавляем canonical для страниц с параметрами

Если у вас есть фильтры, сортировка или UTM-метки, поисковику нужно показать основной URL. Для этого на страницах с параметрами можно принудительно указывать canonical на чистую версию адреса.

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_singular() && !empty($_GET)) {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

Если используете SEO-плагин: где смотреть настройки

В большинстве проектов проще и безопаснее закрывать индексацию через SEO-плагин, а не кодом. У плагина обычно уже есть логика для мета-тегов, sitemap и canonical, а значит меньше шансов сломать шаблон.

Проверьте три места:

  • настройки индексации архивов рубрик, тегов и авторов;
  • правила для страниц поиска и 404;
  • канонические URL для пагинации и параметров.

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

Диагностика после внедрения: как понять, что всё сработало

Проверять нужно не только HTML-код, но и то, как страница отдается сервером и как её видит поисковик.

  1. Откройте страницу и посмотрите исходный код: есть ли noindex или корректный canonical.
  2. Проверьте заголовки ответа, если закрываете доступ на уровне сервера или плагина безопасности.
  3. В Google Search Console отправьте URL на повторную проверку и посмотрите, как он определяется после переобхода.
  4. Убедитесь, что страница не выпала из внутренней навигации, если она всё ещё нужна пользователям.

Для быстрой проверки в терминале можно использовать curl:

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

Если вы закрывали страницу через мета-тег, в ответе не будет видно noindex, потому что он находится в HTML. Тогда смотрите сам документ:

curl -s https://example.com/?s=test | grep -i robots

На практике этого достаточно, чтобы поймать типовые ошибки до отправки сайта на переобход.

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

Закрыли URL в robots.txt, но он всё равно в индексе

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

Поставили noindex на страницу, которую поисковик не может обойти

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

Сделали canonical на главную для всех страниц с параметрами

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

Скрыли страницу от индексации, но оставили на неё десятки внутренних ссылок

Поисковик будет продолжать тратить обход на этот URL. Если страница не нужна ни пользователям, ни поиску, уберите её из меню, хлебных крошек, блоков «похожие материалы» и XML-карты сайта.

Чек-лист перед публикацией правок

  • Проверен тип страницы: поиск, архив, тег, автор, параметрический URL.
  • Выбран один основной способ: noindex, canonical или robots.txt.
  • Страница доступна для обхода, если на ней используется noindex.
  • Canonical указывает на реальный основной URL, а не на случайную страницу.
  • URL убран из sitemap, если он не должен индексироваться.
  • После правок страница проверена через исходный код и Search Console.

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

Не стоит массово прятать всё подряд только ради «чистого индекса». Чем меньше технических страниц остаётся доступным для обхода, тем проще поддерживать сайт, но слишком агрессивная фильтрация может скрыть полезный контент и усложнить диагностику.

Если на сайте много дублей из-за параметров, лучше сначала решить источник проблемы: нормализовать ссылки, убрать лишние параметры в шаблонах, проверить генерацию canonical и sitemap. Для этого полезно использовать инструменты, которые помогают чистить лишние мета-данные и дубли в WordPress, например Clearfy Pro: https://wpshop.ru/plugins/clearfy.

Если после внедрения закрытия индексации страница всё ещё появляется в выдаче, не ищите «магическую кнопку». Сначала проверьте, что именно увидел поисковик: HTML, canonical, sitemap, внутренние ссылки и статус переобхода. В WordPress технические проблемы почти всегда решаются не одной настройкой, а связкой из двух-трёх корректных правок.

×
-15%
на премиум-тему
Reboot

Создай сайт мечты
на WordPress!

Купить со скидкой »