Как изменить URL выдачи поисковой формы WordPress без плагинов

По умолчанию WordPress использует URL вида https://site.ru/?s=запрос для отображения результатов поиска. Такой формат неудобен с точки зрения SEO и юзабилити. В этой статье мы разберём, как изменить URL выдачи поисковой формы на более читаемый и понятный, например, https://site.ru/search/запрос, без использования плагинов.

Почему стоит изменить URL поисковой выдачи

Стандартный URL с параметром ?s= не очень дружелюбен для пользователей и поисковых систем. Более красивые URL повышают доверие посетителей и способствуют лучшему индексу сайта в поисковиках.

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

Как работает стандартный поиск в WordPress

Когда пользователь вводит запрос в поисковую форму и отправляет её, WordPress формирует запрос к базе данных с параметром s. Этот параметр передаётся через GET-запрос, а страница результатов отображается с URL вида ?s=запрос.

Для изменения URL нужно перехватить запрос до его обработки и направить на нужный нам адрес, а также настроить правила перезаписи (rewrite rules) в WordPress.

Добавляем пользовательский URL для поиска через rewrite rules

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

function wproot_add_search_rewrite() {
    add_rewrite_rule('^search/([^/]*)/?','index.php?s=$matches[1]','top');
}
add_action('init', 'wproot_add_search_rewrite');

Этот код создаёт правило, которое преобразует URL /search/запрос в стандартный запрос WordPress с параметром s=запрос.

После добавления правил необходимо обновить пермалинки, чтобы они вступили в силу. Для этого зайдите в админку WordPress: Настройки > Постоянные ссылки и нажмите кнопку "Сохранить изменения" без изменений.

Изменение формы поиска для использования нового URL

По умолчанию форма поиска WordPress отправляет данные с помощью GET на URL с параметром ?s=. Чтобы форма отправляла запрос по новому адресу, нужно изменить её action.

Добавьте в functions.php следующий фильтр, который изменит HTML формы поиска:

function wproot_search_form_action_url($form) {
    $home_url = home_url('/search/');
    $form = preg_replace('/action="[^"]*"/', 'action="' . esc_url($home_url) . '"', $form);
    return $form;
}
add_filter('get_search_form', 'wproot_search_form_action_url');

Данный фильтр заменит атрибут action в форме поиска на https://site.ru/search/, а введённый пользователем запрос автоматически добавится к URL благодаря правилу перезаписи.

Обработка специальных символов и пробелов в запросах

При использовании URL с параметром в пути важно корректно обрабатывать пробелы и специальные символы в поисковых запросах. WordPress автоматически кодирует URL, но в некоторых случаях нужно дополнительно использовать функции PHP и JS для кодирования.

Для примера, если в поисковом запросе есть пробел, он преобразуется в %20 или знак +. Правило перезаписи и WordPress умеют это обрабатывать, но стоит проверить на тестовом сайте все варианты.

Пример создания полностью кастомной поисковой формы с поддержкой нового URL

Если вы хотите полностью контролировать форму поиска, можно создать собственный HTML с JavaScript для перенаправления на нужный URL:

<form role="search" method="get" id="searchform" class="searchform" onsubmit="return wprootSearchRedirect(this);">
  <input type="text" value="" name="s" id="s" placeholder="Поиск..." />
  <input type="submit" id="searchsubmit" value="Поиск" />
</form>

<script>
function wprootSearchRedirect(form) {
  var query = encodeURIComponent(form.s.value.trim());
  if (query === '') {
    return false; // не отправлять пустой запрос
  }
  window.location.href = '/search/' + query;
  return false; // отменяем стандартную отправку формы
}
</script>

Такой подход гарантирует корректное перенаправление пользователя на новый URL с поисковым запросом.

Совместимость с плагинами и SEO

Большинство SEO-плагинов (Yoast SEO, Rank Math) корректно обрабатывают кастомные URL поисковой выдачи, если они правильно добавлены через rewrite rules. Однако стоит проверить, не конфликтует ли ваш код с установленными плагинами.

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

Как вернуть стандартный URL, если что-то пошло не так

Чтобы вернуть стандартный URL, просто удалите добавленный код с rewrite rules и фильтр изменения формы. После этого обновите пермалинки в админке.

Итог

Изменение URL поисковой выдачи WordPress на более читабельный и SEO-дружелюбный можно реализовать самостоятельно без плагинов, используя rewrite rules и фильтры формы поиска. Такой подход улучшит юзабилити, повысит рейтинг сайта и сделает ссылки более привлекательными для пользователей.

Для дополнительной автоматизации и расширения функционала можно рассмотреть плагины вроде Clearfy Pro, который обладает множеством настроек SEO и оптимизации.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как использовать WPRemark для автоматического отзыва в комментариях WordPress
01.04.2026
Как проверить и исправить ошибки базы данных WordPress: практическое руководство
22.02.2026
Как удалить все очередные задачи в WordPress Cron: практическое руководство
09.11.2025
Автоматическое удаление старых заказов WooCommerce по статусу
23.12.2025
WooCommerce: как автоматически удалять неактивные заказы и очищать базу
05.05.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее