Марина вела блог о ремонте кухонь, а на сайте висели десять landing-страниц услуг. Клиент искал «фартук за плитой» — поиск выдал «Ремонт под ключ» и «Гарантия». Страшно лезть в код и сломать тему, а обзоры SearchWP и Relevanssi зовут платить за «умный поиск», хотя нужна одна галочка по смыслу: искать только записи блога. Сегодня поставите или проверите виджет «Поиск», ограничите фронтовую выдачу типом post и за две минуты убедитесь, что «Контакты» больше не перебивают статьи.
Отдельной настройки «только для виджета» в WordPress нет: поле в сайдбаре и в шапке ведут на один адрес поиска. Ограничить зону можно для всего гостевого поиска — через дочернюю тему или плагин сниппетов и хук pre_get_posts, либо точечно спрятать страницы плагином Search Exclude. Платный поиск нужен, если важны опечатки и фильтры, а не просто «не показывать услуги».
На сайте есть и услуги, и блог; гость вводит тему статьи, а в выдаче первыми идут «Доставка» и «О нас». WordPress по умолчанию ищет и записи (post), и страницы (page) — это не поломка виджета. Ниже: кнопки в админке, одна безопасная вставка, без тяжёлого плагина ради одной задачи.
- Проверьте, что мешает читателю: страницы вместо статей
- Добавьте блок или виджет «Поиск» туда, где читают статьи
- Ограничьте поиск только записями блога через дочернюю тему
- Выберите путь без кода, если нужно спрятать пару страниц
- Уточните, когда хватит скрытого поля post_type в форме
- Прогоните проверку за две минуты и зафиксируйте критерий успеха
- Частые вопросы
- Можно ли настроить только виджет в сайдбаре, не трогая поиск в шапке?
- Почему поиск всё равно показывает страницы после кода?
- Нужно ли покупать Relevanssi для блога на WordPress?
- Исчезнут ли товары WooCommerce из поиска, если оставить только post?
- Влияет ли ограничение поиска на индексацию в Google?
- Как убрать поле поиска с главной, но оставить в блоге?
- Где взять готовый сниппет, если страшно копировать код?
Проверьте, что мешает читателю: страницы вместо статей

Типичная ошибка — сразу ставить Relevanssi или SearchWP и крутить индексацию, хотя задача узкая. Сначала диагностика на живом сайте без кода.
- Откройте сайт как гость (не админку).
- В поле поиска введите уникальное слово из заголовка любой статьи блога.
- Посмотрите список результатов: если рядом с заголовком указан тип «Страница» или всплывают услуги — поиск не ограничен блогом.
- Повторите запрос словом, которое есть только на странице «Контакты» или «О компании» — запомните, что именно выводится сейчас.
- Запишите, где стоит поле поиска: сайдбар, футер, шапка — после правки оно должно остаться на месте.
Документация WP_Query (developer.wordpress.org) описывает поиск по заголовку и тексту. Виджет бьёт в тот же URL, что и форма в шапке — отдельного «режима виджета» нет (wordpress.stackexchange.com).
Добавьте блок или виджет «Поиск» туда, где читают статьи

Без видимого поля гости уходят в Google. В 2026 году путь зависит от темы: классическая или блочная (Twenty Twenty-Five и похожие).
| Тип темы | Где искать в админке | Что вставить |
|---|---|---|
| Классическая | Внешний вид → Виджеты (или редактор виджетов на блоках) | Блок «Поиск» (core/search) в сайдбар блога или футер |
| Блочная | Внешний вид → Редактор сайта → шаблон или часть шаблона | Тот же блок «Поиск»; пункта «Виджеты» в старом виде может не быть |
| Шапка | Редактор сайта или настройки темы | Блок поиска рядом с меню; ширину и кнопку настраивают в панели блока |
Справка wordpress.org по блоку «Поиск» описывает кнопку и ширину поля. Сохраните шаблон и проверьте блог с телефона. Подпись «Искать в статьях» готовит читателя, даже если фильтр post_type включите следующим шагом.
Ограничьте поиск только записями блога через дочернюю тему

Главное решение из pain_solution_map: на гостевом поиске оставить только тип post. Код вешают на хук pre_get_posts — это «перехват» запроса до выборки из базы, простыми словами — фильтр списка, а не отдельная кнопка в виджете.
Делать: дочерняя тема или плагин Code Snippets / WPCode — одна вставка, обновление родительской темы правку не сносит. Не делать: править functions.php родительской темы без бэкапа.
- Сделайте бэкап сайта или экспорт настроек хостинга.
- Установите дочернюю тему или активируйте Code Snippets (бесплатной версии хватает).
- Создайте сниппет «Только записи в поиске», выполнение — только на фронте.
- Вставьте код ниже и включите сниппет одним переключателем.
- Сразу проверьте админку: список записей и поиск в консоли должны открываться как раньше.
Шаблон (три проверки обязательны):
function smartdm_search_only_posts( $query ) {
if ( is_admin() || ! $query->is_main_query() || ! $query->is_search() ) { return; }
$query->set( ‘post_type’, ‘post’ );
}
add_action( ‘pre_get_posts’, ‘smartdm_search_only_posts’ );
Три условия из developer.wordpress.org: is_admin, is_main_query, is_search. Типичная ошибка — забыть is_admin() и сломать ленту в админке. Используйте add_action, не add_filter (StackExchange). Для портфолио передайте массив типов; для чистого блога хватает post.
Выберите путь без кода, если нужно спрятать пару страниц
Search Exclude (wordpress.org, 50 000+ установок) ставит галочку «исключить из поиска» на странице. Это не noindex для Google — только внутренний поиск. Подходит для пары служебных URL. Если landing-ов много, быстрее один раз задать post_type в pre_get_posts — так и вышло у Марины после отключения Relevanssi.
| Задача | Search Exclude | pre_get_posts → только post |
|---|---|---|
| Спрятать 2–3 служебные страницы | Да, галочка в редакторе | Избыточно |
| Весь поиск = только статьи блога | Долго отмечать каждую услугу | Да, одна правка |
| Влияние на Google / Яндекс | Нет, только внутренний поиск | Нет, только внутренний поиск |
noindex убирает URL из Google и Яндекса; здесь — удобство читателя на сайте. Внутренний поиск не поднимает позиции сам по себе, но удерживает гостя: нашёл гайд в /stati/, дочитал, оставил заявку.
Уточните, когда хватит скрытого поля post_type в форме
На странице блога можно добавить в форму поиска скрытое поле post_type со значением post — тогда в адресе результатов появится параметр post_type=post. WordPress учтёт его на странице выдачи (обсуждения StackExchange). На практике этого мало, если то же поле в шапке ведёт на общий поиск без параметра. Для одного поля на всём сайте надёжнее pre_get_posts; скрытое поле — запасной вариант для отдельной формы «только статьи».
Прогоните проверку за две минуты и зафиксируйте критерий успеха
Критерий успеха простой: слово только из поста находит запись без типа «Страница»; запрос по «Контактам» больше не выводит эту страницу; виджет или блок «Поиск» на прежнем месте в сайдбаре, футере или шапке; после обновления темы сниппет или дочерняя тема на месте. Если хоть один пункт не сходится — правка ещё не дошла до гостевого поиска.
- Введите уникальное слово из статьи — в списке только записи блога.
- Введите слово со страницы услуги — в результатах нет этой страницы (или пустая выдача).
- Откройте сайдбар и шапку: поле «Поиск» на прежнем месте.
- Если страницы всё ещё видны — отключите кэш плагина на пять минут и повторите; проверьте, не перехватывает ли поиск другой плагин (SearchWP, Relevanssi).
- Обновите родительскую тему на тестовой копии или после бэкапа — сниппет должен остаться включённым.
SearchWP и Relevanssi нужны для опечаток и весов полей, не для простого «только post». Соседние темы — в хабе статей. Спорные кэш и сниппеты — контакты или Telegram; настройка блога под заявки — услуги.
Материал проверен: Андрей Дикий (создаёт сайты и продвигает их статьями (SEO/GEO)).
Достоверность данных: WordPress Developer (pre_get_posts, WP_Query parse_search, блок core/search), wordpress.org Search Exclude и Block-based Widgets Editor, wpcodetips.com и wpschool.ru (исключение страниц), wordpress.stackexchange.com (поиск только по записям); Вордстат, сентябрь 2026 (MCP недоступен, LSI по SERP).
Частые вопросы
Можно ли настроить только виджет в сайдбаре, не трогая поиск в шапке?
Стандартный виджет и шапка используют один механизм. Развести зоны можно только двумя формами, например со скрытым post_type=post в блоге. Иначе pre_get_posts меняет весь гостевой поиск.
Почему поиск всё равно показывает страницы после кода?
Сбросьте кэш, отключите SearchWP/Relevanssi на минуту, проверьте is_admin(), is_main_query() и is_search() в сниппете.
Нужно ли покупать Relevanssi для блога на WordPress?
Нет, если цель — убрать страницы услуг. Платные плагины — про релевантность и морфологию, не про один фильтр post_type.
Исчезнут ли товары WooCommerce из поиска, если оставить только post?
Да. Добавьте product в массив post_type или уберите общий поиск с главной магазина.
Влияет ли ограничение поиска на индексацию в Google?
Нет, меняется только выдача поля на сайте. Услуги по меню и с noindex по-прежнему живут по своим правилам.
Как убрать поле поиска с главной, но оставить в блоге?
В редакторе сайта удалите блок «Поиск» на шаблоне главной; в архиве записей оставьте. В классической теме перенесите виджет в область «Блог».
Где взять готовый сниппет, если страшно копировать код?
Beplus Search Visibility или Code Snippets — оба безопаснее правки родительской темы.
