Как удалить автоматические редиректы в WordPress: практическое руководство

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

Почему возникают автоматические редиректы в WordPress

WordPress по умолчанию использует функцию redirect_canonical(), которая анализирует текущий URL и перенаправляет на предполагаемо правильный, если URL не совпадает с каноническим. Это сделано для удобства пользователей и поисковых систем.

Однако бывают ситуации, когда этот механизм мешает работе сайта:

  • Конфликты с плагинами кеширования (например, WP Rocket, W3 Total Cache)
  • Проблемы с SEO, когда Google индексирует неправильные URL
  • Перенаправления, которые нарушают логику кастомных маршрутов или REST API

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

Как отключить автоматические редиректы с помощью кода

Самый простой способ — отключить фильтр, который отвечает за редиректы. В WordPress это фильтр template_redirect с функцией redirect_canonical.

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

function wpsetup_disable_redirect_canonical( $redirect_url ) {
    if ( is_singular('post') ) {
        // Отключаем редирект для постов
        return false;
    }
    return $redirect_url;
}
add_filter( 'redirect_canonical', 'wpsetup_disable_redirect_canonical' );

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

add_filter( 'redirect_canonical', '__return_false' );

Этот код полностью отключит автоматические редиректы WordPress.

Отключение редиректов для конкретных URL или условий

Если нужно отключить редиректы выборочно, используйте условные теги WordPress:

function wpsetup_conditional_disable_redirect( $redirect_url ) {
    if ( is_page('contacts') || is_post_type_archive('product') ) {
        return false; // Отключаем редирект для страницы контактов и архива товаров
    }
    return $redirect_url;
}
add_filter( 'redirect_canonical', 'wpsetup_conditional_disable_redirect' );

Такой подход позволяет гибко управлять поведением редиректов без глобального отключения.

Использование плагинов для управления редиректами

Если не хочется писать код, можно использовать плагины:

  • Clearfy Pro — плагин для оптимизации WordPress, в котором есть опция отключения автоматических редиректов. Это удобно, если вы уже используете Clearfy для других задач. Подробнее на wpshop.ru.
  • Disable Canonical URL Redirect — легковесный плагин, который полностью отключает функцию redirect_canonical.

Преимущество плагинов в том, что можно быстро включать и выключать редиректы через админку без правок кода.

Проверка и отладка редиректов

Чтобы проверить, какие редиректы срабатывают, используйте инструменты:

  • Плагины для браузера — например, Redirect Path для Chrome покажет цепочку редиректов.
  • WP_DEBUG и добавление логов — можно подключить фильтр и записывать редиректы в журнал, чтобы понять, когда и почему они срабатывают:
function wpsetup_log_redirects( $redirect_url ) {
    if ( $redirect_url ) {
        error_log( 'Redirect to: ' . $redirect_url );
    }
    return $redirect_url;
}
add_filter( 'redirect_canonical', 'wpsetup_log_redirects', 10 );

Так вы поймёте, какие URL вызывают перенаправления, и сможете точечно их отключить.

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

Некоторые плагины (например, WooCommerce, WPML) и темы могут добавлять свои редиректы поверх стандартных. Чтобы избежать конфликтов:

  • Отключайте автоматические редиректы только после тестирования на тестовом сайте
  • Проверяйте совместимость с кеширующими плагинами (WP Rocket, LiteSpeed Cache и др.)
  • Используйте функции и хуки плагинов для управления редиректами, если такие есть

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

Пример: отключение редиректов для REST API

REST API WordPress иногда страдает от автоматических редиректов, особенно если запросы идут с неправильным URL. Чтобы отключить редиректы для REST API, добавьте в functions.php:

function wpsetup_disable_redirect_for_rest( $redirect_url ) {
    if ( defined('REST_REQUEST') && REST_REQUEST ) {
        return false;
    }
    return $redirect_url;
}
add_filter( 'redirect_canonical', 'wpsetup_disable_redirect_for_rest' );

Это предотвратит неожиданные перенаправления при обращении к API.

Итоговые рекомендации

Автоматические редиректы WordPress — полезный механизм, но в сложных проектах часто требуют управления или отключения. Для этого:

  • Используйте фильтр redirect_canonical для точечной настройки
  • Применяйте условные теги, чтобы не отключать редиректы глобально
  • Тестируйте сайт после изменений, особенно при использовании кешей и плагинов
  • Рассмотрите плагины типа Clearfy Pro для удобного управления

Так вы улучшите контроль над URL сайта, избежите проблем с SEO и совместимостью.

Отключение отправки email WordPress для определённых событий: практическое решение
13.03.2026
WooCommerce не отображает товары при фильтрации AJAX: диагностика и решение
28.04.2026
Как правильно настроить переадресацию после смены домена в WordPress
24.04.2026
WooCommerce: автоматическое отключение неактивных вариантов товаров
19.05.2026
Как использовать WP Background Processing в WordPress для обработки задач в фоне
30.03.2026