Как настроить виджет поиска WordPress только по блогу?

poisk tolko blog wordpress cover Без рубрики
Поставьте блок «Поиск», ограничьте выдачу записями post через дочернюю тему или Search Exclude. Проверка за 2 минуты без программиста.

Марина вела блог о ремонте кухонь, а на сайте висели десять landing-страниц услуг. Клиент искал «фартук за плитой» — поиск выдал «Ремонт под ключ» и «Гарантия». Страшно лезть в код и сломать тему, а обзоры SearchWP и Relevanssi зовут платить за «умный поиск», хотя нужна одна галочка по смыслу: искать только записи блога. Сегодня поставите или проверите виджет «Поиск», ограничите фронтовую выдачу типом post и за две минуты убедитесь, что «Контакты» больше не перебивают статьи.

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

На сайте есть и услуги, и блог; гость вводит тему статьи, а в выдаче первыми идут «Доставка» и «О нас». WordPress по умолчанию ищет и записи (post), и страницы (page) — это не поломка виджета. Ниже: кнопки в админке, одна безопасная вставка, без тяжёлого плагина ради одной задачи.

Проверьте, что мешает читателю: страницы вместо статей

Карточки на столе: почему поиск WordPress выдаёт страницы услуг вместо статей

Типичная ошибка — сразу ставить Relevanssi или SearchWP и крутить индексацию, хотя задача узкая. Сначала диагностика на живом сайте без кода.

  1. Откройте сайт как гость (не админку).
  2. В поле поиска введите уникальное слово из заголовка любой статьи блога.
  3. Посмотрите список результатов: если рядом с заголовком указан тип «Страница» или всплывают услуги — поиск не ограничен блогом.
  4. Повторите запрос словом, которое есть только на странице «Контакты» или «О компании» — запомните, что именно выводится сейчас.
  5. Запишите, где стоит поле поиска: сайдбар, футер, шапка — после правки оно должно остаться на месте.

Документация WP_Query (developer.wordpress.org) описывает поиск по заголовку и тексту. Виджет бьёт в тот же URL, что и форма в шапке — отдельного «режима виджета» нет (wordpress.stackexchange.com).

Добавьте блок или виджет «Поиск» туда, где читают статьи

Чеклист на столе: куда поставить виджет поиска WordPress в блоге

Без видимого поля гости уходят в Google. В 2026 году путь зависит от темы: классическая или блочная (Twenty Twenty-Five и похожие).

Тип темы Где искать в админке Что вставить
Классическая Внешний вид → Виджеты (или редактор виджетов на блоках) Блок «Поиск» (core/search) в сайдбар блога или футер
Блочная Внешний вид → Редактор сайта → шаблон или часть шаблона Тот же блок «Поиск»; пункта «Виджеты» в старом виде может не быть
Шапка Редактор сайта или настройки темы Блок поиска рядом с меню; ширину и кнопку настраивают в панели блока

Справка wordpress.org по блоку «Поиск» описывает кнопку и ширину поля. Сохраните шаблон и проверьте блог с телефона. Подпись «Искать в статьях» готовит читателя, даже если фильтр post_type включите следующим шагом.

Ограничьте поиск только записями блога через дочернюю тему

Заметки на столе: pre_get_posts и поиск только по записям блога

Главное решение из pain_solution_map: на гостевом поиске оставить только тип post. Код вешают на хук pre_get_posts — это «перехват» запроса до выборки из базы, простыми словами — фильтр списка, а не отдельная кнопка в виджете.

Делать: дочерняя тема или плагин Code Snippets / WPCode — одна вставка, обновление родительской темы правку не сносит. Не делать: править functions.php родительской темы без бэкапа.

  1. Сделайте бэкап сайта или экспорт настроек хостинга.
  2. Установите дочернюю тему или активируйте Code Snippets (бесплатной версии хватает).
  3. Создайте сниппет «Только записи в поиске», выполнение — только на фронте.
  4. Вставьте код ниже и включите сниппет одним переключателем.
  5. Сразу проверьте админку: список записей и поиск в консоли должны открываться как раньше.

Шаблон (три проверки обязательны):

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.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
Задача 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; скрытое поле — запасной вариант для отдельной формы «только статьи».

Прогоните проверку за две минуты и зафиксируйте критерий успеха

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

  1. Введите уникальное слово из статьи — в списке только записи блога.
  2. Введите слово со страницы услуги — в результатах нет этой страницы (или пустая выдача).
  3. Откройте сайдбар и шапку: поле «Поиск» на прежнем месте.
  4. Если страницы всё ещё видны — отключите кэш плагина на пять минут и повторите; проверьте, не перехватывает ли поиск другой плагин (SearchWP, Relevanssi).
  5. Обновите родительскую тему на тестовой копии или после бэкапа — сниппет должен остаться включённым.

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 — оба безопаснее правки родительской темы.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
Новый маркетинг с искусственным интеллектом
Добавить комментарий