Как удалить параметры контроллера из URL в WordPress

В WordPress часто возникает необходимость оптимизировать URL для улучшения SEO и удобства пользователей. Одной из распространённых задач является удаление лишних параметров контроллера из URL, например, параметров типа ?controller=example или других, которые добавляются плагинами или темами. Такие параметры могут ухудшать восприятие адреса страницы и создавать дублирующийся контент.

Что такое параметры контроллера в URL и почему их стоит удалять

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

Удаление лишних параметров помогает:

  • Улучшить читаемость URL для пользователей.
  • Избежать проблем с SEO из-за дублированного контента.
  • Снизить вероятность ошибок при работе с кэшированием и плагинами.

Рассмотрим, как можно убрать эти параметры программно и с помощью популярных плагинов.

Удаление параметров контроллера через фильтр WordPress

Самый гибкий способ — это использовать фильтр request, который позволяет изменить массив параметров запроса до того, как WordPress приступит к его обработке.

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

function wpkpi_remove_controller_param( $query_vars ) {
    if ( isset( $query_vars['controller'] ) ) {
        unset( $query_vars['controller'] );
    }
    return $query_vars;
}
add_filter( 'request', 'wpkpi_remove_controller_param' );

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

Как проверить результат

Для проверки достаточно открыть страницу с URL, в котором есть параметр ?controller=example. После добавления кода и очистки кэша параметр перестанет учитываться в запросах, и WordPress будет обрабатывать страницу без него.

Принудительное удаление параметров из URL с помощью редиректа

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

function wpkpi_redirect_without_controller_param() {
    if ( isset( $_GET['controller'] ) ) {
        $url = remove_query_arg( 'controller' );
        wp_redirect( esc_url_raw( $url ), 301 );
        exit;
    }
}
add_action( 'template_redirect', 'wpkpi_redirect_without_controller_param' );

Данный код проверяет наличие параметра controller в URL, и если он есть — делает 301 редирект на URL без него. Это поможет поисковикам индексировать только чистые адреса.

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

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

Использование плагина Clearfy для удаления лишних параметров из URL

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

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

Как настроить Clearfy для удаления параметров

  1. Установите и активируйте плагин Clearfy.
  2. Перейдите в раздел «Оптимизация» —> «Очистка URL».
  3. Добавьте параметр controller в список параметров для удаления.
  4. Сохраните настройки.

После этого плагин будет автоматически удалять указанные параметры из URL и делать редиректы при необходимости.

Удаление нескольких параметров контроллера и других GET-параметров

Часто нужно убрать не только один параметр, а сразу несколько. Для этого расширим функцию фильтра:

function wpkpi_remove_multiple_params( $query_vars ) {
    $params_to_remove = array( 'controller', 'session_id', 'tracking' );
    foreach ( $params_to_remove as $param ) {
        if ( isset( $query_vars[ $param ] ) ) {
            unset( $query_vars[ $param ] );
        }
    }
    return $query_vars;
}
add_filter( 'request', 'wpkpi_remove_multiple_params' );

Этот код удалит из запроса сразу несколько параметров — можно добавить любые необходимые.

Удаление параметров из URL с помощью редиректа при множественных параметрах

function wpkpi_redirect_without_multiple_params() {
    $params_to_remove = array( 'controller', 'session_id', 'tracking' );
    $has_param = false;
    foreach ( $params_to_remove as $param ) {
        if ( isset( $_GET[ $param ] ) ) {
            $has_param = true;
            break;
        }
    }
    if ( $has_param ) {
        $url = remove_query_arg( $params_to_remove );
        wp_redirect( esc_url_raw( $url ), 301 );
        exit;
    }
}
add_action( 'template_redirect', 'wpkpi_redirect_without_multiple_params' );

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

Проверка и отладка удаления параметров контроллера

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

  • Проверьте основные страницы с параметрами в URL вручную.
  • Используйте инструменты браузера для отслеживания редиректов (например, вкладка Network в Chrome DevTools).
  • Убедитесь, что функциональность, завязанная на данных параметрах, не сломалась.
  • Проверьте логи сервера на предмет ошибок после внедрения.

Если вы используете кэширование (например, через плагин или сервер), очистите кэш, чтобы изменения вступили в силу.

Заключение по теме удаления параметров контроллера из URL

Удаление лишних параметров контроллера из URL — важный шаг для улучшения SEO и удобства пользователей. В WordPress это можно сделать программно через фильтры и редиректы, а также с помощью плагинов, например, Clearfy. Главное — делать это аккуратно, проверяя функциональность сайта после изменений.

WooCommerce: как автоматически изменить статус заказа после оплаты через платежные системы
24.04.2026
Как добавить динамические фильтры в WordPress на примере категорий и метаполей
18.03.2026
Как автоматизировать управление контентом в WordPress с помощью WPKPI
29.12.2025
Как отладить проблемы с отправкой форм в WordPress
01.04.2026
Как создать динамическую картинку из метаданных поста WordPress
19.12.2025