wpwebsite.ru wordpress WPWebSite

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

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

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

Многие предпочитают устанавливать плагины для редиректов, например, Redirection или Simple 301 Redirects. Однако плагины могут замедлять сайт и создавать конфликты. Контроль редиректов через код даёт больше гибкости и позволяет оптимизировать производительность.

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

Рассмотрим практические примеры создания редиректов через файл functions.php или собственный плагин.

Редиректы с помощью хука template_redirect

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

Пример функции для редиректа с конкретного URL на другой:

function wpwebsite_redirect_old_url() {
    if (is_page('staraya-stranica')) {
        wp_redirect(home_url('/novaya-stranica/'), 301);
        exit;
    }
}
add_action('template_redirect', 'wpwebsite_redirect_old_url');

Здесь мы проверяем, что открывается страница с ярлыком «staraya-stranica» и делаем 301 редирект на «novaya-stranica».

Редирект с проверкой GET-параметров

Иногда нужно перенаправлять пользователей в зависимости от параметров в URL. Например, если в ссылке есть ?ref=old, перенаправим на главную:

function wpwebsite_redirect_by_query_param() {
    if (isset($_GET['ref']) && $_GET['ref'] === 'old') {
        wp_redirect(home_url('/'), 301);
        exit;
    }
}
add_action('template_redirect', 'wpwebsite_redirect_by_query_param');

Массовые редиректы через массив соответствий

Если нужно сделать много редиректов, лучше хранить их в массиве и проверять текущий URL по ключу.

function wpwebsite_mass_redirects() {
    $redirects = [
        '/staraya-stranica' => '/novaya-stranica',
        '/staryy-post' => '/novyy-post',
        '/old-category' => '/new-category',
    ];
    
    $current_path = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
    
    if (array_key_exists('/' . $current_path, $redirects)) {
        wp_redirect(home_url($redirects['/' . $current_path]), 301);
        exit;
    }
}
add_action('template_redirect', 'wpwebsite_mass_redirects');

Такой подход упрощает добавление новых редиректов и делает код аккуратным.

Особенности работы с редиректами

  • Обязательно используйте код 301 для постоянных редиректов — так поисковики правильно обновят индекс.
  • Вызов exit; после wp_redirect обязателен, чтобы остановить дальнейшую загрузку страницы.
  • Проверяйте, что редирект не приводит к циклическим переходам, чтобы избежать ошибок.

Редиректы с помощью .htaccess (альтернативный метод)

Если сайт работает на Apache, можно прописывать редиректы в файле .htaccess. Это намного быстрее, так как сервер сразу перенаправляет запрос без загрузки WordPress.

Пример редиректа 301 в .htaccess:

Redirect 301 /staraya-stranica /novaya-stranica

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

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

Если всё-таки решите использовать плагины, обратите внимание на следующие решения:

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

Тестирование редиректов и отладка

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

  • curl в терминале: curl -I https://ваш-сайт.ru/staraya-stranica — в ответе должна быть строка HTTP/1.1 301 Moved Permanently и заголовок Location.
  • Онлайн-сервисы проверки редиректов: Redirect Checker, HTTP Status Code Checker и др.
  • Логи сервера — там можно увидеть, как обрабатываются запросы.

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше