Временный редирект (HTTP статус 302) часто используется, когда нужно временно перенаправить пользователя с одной страницы сайта на другую, не теряя при этом SEO-значения начальной страницы. В WordPress такие редиректы можно реализовать несколькими способами, включая плагины, но в этой статье мы подробно рассмотрим, как сделать это с помощью собственного кода. Такой подход минимизирует использование сторонних плагинов и повышает производительность сайта.
Что такое временный редирект и зачем он нужен (302 Redirect)
Временный редирект отправляет посетителя и поисковые системы с одной URL на другой, сохраняя при этом исходную страницу в индексе, так как предполагается, что перенаправление временное. В отличие от постоянного (301), который говорит о том, что страница навсегда переехала, 302-редирект не передаёт весь SEO-вес целевой странице.
Примеры использования временного редиректа:
- Тестирование новой версии страницы без потери трафика.
- Временное отключение раздела сайта, например, при технических работах.
- Перенаправление на страницу акции или промо, которая действует ограниченное время.
Настройка временного редиректа в WordPress с помощью функции wp_redirect()
WordPress предоставляет удобную функцию wp_redirect(), которая позволяет отправить HTTP-заголовок с кодом редиректа. Чтобы сделать временный редирект, нужно указать второй параметр функции как 302.
Рассмотрим пример кода, который нужно добавить в файл functions.php вашей темы или в собственный плагин:
function wpsystem_temporary_redirect() {
if (is_page('old-page')) { // Проверяем, что пользователь на странице с ярлыком old-page
wp_redirect(site_url('/new-page'), 302); // Перенаправляем на новую страницу с кодом 302
exit; // Завершаем выполнение, чтобы не продолжать загрузку старой страницы
}
}
add_action('template_redirect', 'wpsystem_temporary_redirect');
Здесь:
is_page('old-page')— условие, которое срабатывает на конкретной странице.wp_redirect()— функция для отправки заголовка редиректа.exit;— обязательный вызов после редиректа, чтобы прекратить дальнейшее выполнение скриптов.template_redirect— хук, который срабатывает перед выводом шаблона, подходящее место для редиректа.
Использование временного редиректа для нескольких страниц
Если нужно сделать несколько редиректов, можно расширить функцию с помощью массива:
function wpsystem_multiple_temporary_redirects() {
$redirect_map = array(
'old-page' => '/new-page',
'promo' => '/special-offer',
);
foreach ($redirect_map as $old_slug => $new_path) {
if (is_page($old_slug)) {
wp_redirect(site_url($new_path), 302);
exit;
}
}
}
add_action('template_redirect', 'wpsystem_multiple_temporary_redirects');
Такой подход удобен для управления несколькими временными перенаправлениями без установки плагинов.
Временный редирект на основе даты — автоматизация с кодом
Иногда временный редирект нужен только в определённый период, например, во время проведения акции или до запуска новой страницы. В этом случае можно добавить проверку даты в код:
function wpsystem_date_based_redirect() {
$current_time = current_time('timestamp');
$start_time = strtotime('2024-06-01 00:00:00');
$end_time = strtotime('2024-06-10 23:59:59');
if (is_page('old-promo-page') && $current_time >= $start_time && $current_time <= $end_time) {
wp_redirect(site_url('/promo-2024'), 302);
exit;
}
}
add_action('template_redirect', 'wpsystem_date_based_redirect');
Такой механизм позволяет автоматически включать и выключать редиректы без дополнительных действий администратора.
Альтернативные плагины для управления временными редиректами
Если вы предпочитаете использовать готовые решения, рекомендуем обратить внимание на следующие плагины, которые поддерживают настройку временных редиректов:
- Clearfy Pro — оптимизационный плагин с модулем для управления редиректами, включая временные.
- Redirection — популярный бесплатный плагин с гибкими возможностями, в том числе поддерживает временные редиректы через интерфейс.
Использование плагинов удобно для тех, кто не хочет править код, но если нужна максимальная производительность и контроль, лучше реализовывать редиректы программно.
Как отследить и отладить временные редиректы в WordPress
После настройки редиректа важно проверить его работу. Для этого можно использовать несколько инструментов:
- Браузерные инструменты разработчика: вкладка Network покажет, какой статус отправляется и куда происходит перенаправление.
- Команда curl в терминале:
curl -I https://example.com/old-page— покажет HTTP-заголовки и статус. - Плагины для логирования: например, Query Monitor поможет отследить хуки и редиректы внутри WordPress.
Также не забывайте очищать кэш браузера и плагинов кэширования после внесения изменений, чтобы увидеть актуальный результат.