Автоматические редиректы в WordPress — это механизм, который по умолчанию перенаправляет URL-адреса с неправильным форматированием или устаревшими ссылками на корректные страницы. Несмотря на удобство, в некоторых случаях они могут создавать проблемы: например, мешать работе SEO-оптимизации, вызывать циклы перенаправлений или ухудшать пользовательский опыт из-за лишних переходов.
Почему возникают автоматические редиректы в WordPress
WordPress обрабатывает запросы на основе структуры постоянных ссылок (Permalinks) и, если запрошенный URL не найден, пытается автоматически найти похожий правильный и сделать редирект. Это реализовано в функции redirect_canonical(). Она помогает избежать 404 ошибок, но иногда срабатывает нежелательно — например, при сложных правилах перенаправлений или кастомных маршрутах.
Автоматические редиректы могут:
- приводить к неожиданным сменам URL;
- нарушать работу кэширования;
- создавать циклы редиректов;
- мешать работе SEO-плагинов, таких как Yoast SEO или Rank Math.
Поэтому важно уметь отключать или контролировать этот механизм.
Как отключить автоматические редиректы в WordPress с помощью кода
Самый простой и надежный способ — отключить функцию redirect_canonical(), которая отвечает за эти редиректы. Для этого добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:
function wpcource_disable_redirect_canonical($redirect_url) {
if (is_404()) {
return false; // Отключаем редирект при ошибке 404
}
return $redirect_url;
}
add_filter('redirect_canonical', 'wpcource_disable_redirect_canonical');Этот фильтр остановит автоматические редиректы только для страниц с ошибкой 404, что часто является самой проблемной зоной. Если нужно полностью отключить автоматические редиректы, можно просто вернуть false без условий:
add_filter('redirect_canonical', '__return_false');Однако будьте осторожны с полным отключением — это может ухудшить UX на сайте.
Условное отключение редиректов для определённых URL
Если вы хотите отключить редиректы только для некоторых страниц или типов контента, можно усложнить функцию:
function wpcource_conditional_disable_redirect_canonical($redirect_url) {
if (is_singular('product') && strpos($_SERVER['REQUEST_URI'], 'custom-slug') !== false) {
return false; // Отключаем редирект для товаров с кастомным урлом
}
return $redirect_url;
}
add_filter('redirect_canonical', 'wpcource_conditional_disable_redirect_canonical');Это полезно, если у вас, например, интернет-магазин на WooCommerce и вы хотите управлять редиректами более гибко.
Плагины для управления редиректами и их настройка
Если вы не хотите править код, можно использовать плагины, которые дают контроль над редиректами и помогают отключать нежелательные автоматические перенаправления:
- Safe Redirect Manager — простой плагин для создания и управления редиректами, который не мешает работе WordPress, но позволяет задавать правила вручную.
- Redirection — мощный инструмент с логами, условными редиректами и возможностью контролировать автоматические перенаправления.
- Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wpcource.ru&utm_medium=article&utm_campaign=udalit-avtomaticheskie-redirekty-wordpress) — плагин для оптимизации и настройки WordPress, в том числе отключения ненужных редиректов и системных функций.
Например, в Clearfy Pro есть опция отключения redirect_canonical() без кода — это удобно и безопасно.
Как проверить, работают ли редиректы и нет ли циклов
После отключения или настройки редиректов важно убедиться, что сайт работает корректно:
- Используйте инструменты браузера (вкладка Network в DevTools), чтобы проверить HTTP-коды редиректов.
- Применяйте онлайн-сервисы, например, httpstatus.io, для анализа цепочек перенаправлений.
- Убедитесь, что нет циклов редиректа (обычно браузер выдаёт ошибку «Too many redirects»).
Если вы используете SEO-плагины, проверьте их настройки, чтобы они не конфликтовали с вашими изменениями.
Дополнительные советы для разработчиков WordPress
При работе с редиректами учитывайте:
- Редиректы на уровне сервера (например, в .htaccess или nginx) могут конфликтовать с WordPress-редиректами.
- Некоторые плагины (кэширования, безопасности) могут добавлять свои правила перенаправлений.
- Тестируйте изменения в отдельной среде перед внесением на рабочий сайт.
Если нужна комплексная оптимизация и управление функционалом, обратите внимание на Clearfy Pro — он поможет убрать лишние системные функции и улучшить производительность.
Таким образом, удаление или настройка автоматических редиректов WordPress — это простой и полезный шаг для повышения контроля над сайтом и улучшения SEO. Используйте фильтры, плагины и проверяйте результат, чтобы избежать проблем с пользовательским опытом и индексацией.