Как удалить или скрыть страницу из поиска WordPress

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

Почему важно контролировать результаты поиска WordPress

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

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

Как работает поиск WordPress: что нужно знать

Поиск в WordPress — это запрос к базе данных, который возвращает записи с типом post и page, статусом publish, соответствующие запросу пользователя. Для модификации результатов поиска нужно изменить WP_Query, который отвечает за выборку данных.

Это можно сделать двумя основными способами: с помощью фильтра pre_get_posts или через плагины, которые предоставляют удобный интерфейс для настройки.

Способ 1: Исключение страниц из поиска через фильтр pre_get_posts

Это самый гибкий и лёгкий способ, не требующий установки дополнительных плагинов. В functions.php вашей темы или в вашем собственном плагине добавьте следующий код:

function wpdo_exclude_pages_from_search($query) {
    if ($query->is_search() && $query->is_main_query()) {
        // ID страниц, которые нужно исключить из поиска
        $excluded_pages = array(12, 34, 56);
        $query->set('post__not_in', $excluded_pages);
    }
}
add_action('pre_get_posts', 'wpdo_exclude_pages_from_search');

Здесь в массиве $excluded_pages указываются ID страниц, которые нужно скрыть из поиска. Чтобы узнать ID страницы, откройте её в админке WordPress и посмотрите URL — там будет параметр post=ID.

Этот способ идеален, если у вас фиксированный список страниц для исключения.

Динамическое исключение по кастомному полю или метке

Если нужно исключать страницы динамически, например, по определённому мета-полю или категории, код можно расширить:

function wpdo_exclude_by_meta_from_search($query) {
    if ($query->is_search() && $query->is_main_query()) {
        $meta_query = array(
            array(
                'key' => '_wpdo_exclude_search',
                'value' => '1',
                'compare' => '='
            )
        );
        $query->set('meta_query', $meta_query);
    }
}
add_action('pre_get_posts', 'wpdo_exclude_by_meta_from_search');

Теперь достаточно у нужных страниц добавить мета-поле _wpdo_exclude_search со значением 1, чтобы они автоматически исключались из поиска.

Способ 2: Использование плагинов для исключения страниц из поиска

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

Плагин Search Exclude

Очень простой и удобный плагин, который добавляет на страницу редактирования записи или страницы чекбокс «Exclude from Search». Если поставить галочку, страница не будет отображаться в результатах поиска.

Плюсы:

  • Простота использования
  • Нет необходимости писать код
  • Работает с любыми типами записей

Минусы:

  • Мало настроек для сложных исключений

Плагин Relevanssi

Relevanssi — мощный плагин для улучшения поиска в WordPress. Помимо расширенного поиска, он позволяет исключать из результатов отдельные посты или страницы, а также настраивать индексацию по метаданным.

Как исключить страницы:

  1. Установите и активируйте Relevanssi.
  2. Перейдите в настройки плагина в админке.
  3. На вкладке Indexing добавьте ID страниц в поле «Exclude these posts from the index».

Relevanssi хорошо подходит для сайтов с большим объёмом контента и сложными требованиями к поиску.

Дополнительные рекомендации по оптимизации поиска

Чтобы сделать поиск на сайте ещё лучше, можно:

  • Использовать пользовательские поля для тонкой настройки результатов.
  • Добавлять пользовательские синонимы и стоп-слова (поддерживается, например, в Relevanssi).
  • Кэшировать результаты поиска с помощью плагинов кеширования (Clearfy Pro, WP Super Cache и др.), чтобы снизить нагрузку на сервер.
  • Добавлять подсказки и автодополнение с помощью AJAX-запросов — пример реализации можно найти в статье "WPDO: Как использовать AJAX в WordPress для динамического обновления контента".

Пример создания функции для массового исключения страниц из поиска по категории

Если на сайте используются категории и нужно исключить из поиска все страницы, принадлежащие определённой категории, можно сделать так:

function wpdo_exclude_category_pages_from_search($query) {
    if ($query->is_search() && $query->is_main_query()) {
        // Получаем ID категории
        $category = get_category_by_slug('skrytye-stranicy');
        if ($category) {
            $args = array(
                'post_type' => 'page',
                'cat' => $category->term_id,
                'fields' => 'ids',
                'posts_per_page' => -1
            );
            $pages = get_posts($args);
            if ($pages) {
                $query->set('post__not_in', $pages);
            }
        }
    }
}
add_action('pre_get_posts', 'wpdo_exclude_category_pages_from_search');

Этот код автоматически исключит из поиска все страницы категории с ярлыком skrytye-stranicy.

Выводы и практические советы

Удаление или скрытие страниц из поиска WordPress — задача частая, но решаемая несколькими способами. Если вам нужно быстро исключить несколько страниц — используйте фильтр pre_get_posts. Если хотите удобный интерфейс — плагин Search Exclude отлично подойдёт.

Для сложных сайтов с большим количеством контента и кастомными требованиями к поиску лучше выбрать Relevanssi. Он же поможет улучшить пользовательский опыт поисковой системы на сайте.

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

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

Для скачивания и подробного изучения плагинов советуем посещать официальные страницы на WPSHOP и WPSHOP.

WooCommerce: отладка проблем с отправкой писем после оформления заказа
30.04.2026
Как удалить Emoji из WordPress для ускорения сайта
11.03.2026
WooCommerce: отладка проблем с оплатой через PayPal после обновления
25.04.2026
WooCommerce: как установить и настроить отложенную оплату
08.05.2026
Как изменить URL адреса постов в WordPress без использования стандартных пермалинков
26.12.2025