Автоматические редиректы — важный инструмент для управления трафиком и SEO на сайте WordPress. Иногда нужно перенаправлять пользователей с устаревших URL на новые страницы, исправлять ошибки 404 или направлять трафик в зависимости от условий. В этой статье разберём, как создать автоматический редирект без установки дополнительных плагинов, используя стандартные возможности WordPress и PHP.
Зачем нужны автоматические редиректы в WordPress
Редиректы помогают не потерять посетителей и сохранить позиции в поисковых системах. Например, после смены структуры URL или удаления страниц важно перенаправлять старые адреса на актуальные. Это предотвращает появление ошибок 404 и улучшает пользовательский опыт.
Кроме того, автоматические редиректы можно использовать для:
- Перенаправления пользователей с несуществующих или устаревших URL;
- Перенаправления по геолокации или устройству;
- Перенаправления после изменений в структуре сайта;
- Оптимизации SEO и контроля канонических URL.
Как реализовать редирект через файл functions.php
Самый простой и лёгкий способ добавить редиректы — использовать хук template_redirect в файле functions.php вашей темы. Этот метод не требует установки плагинов и полностью контролируется вами.
Пример кода для редиректа с конкретного URL на новый адрес:
add_action('template_redirect', 'wpnote_redirect_old_url');
function wpnote_redirect_old_url() {
if (strpos($_SERVER['REQUEST_URI'], '/staryy-url/') !== false) {
wp_redirect(home_url('/novyy-url/'), 301);
exit;
}
}
В этом примере, если пользователь заходит на страницу с адресом, содержащим /staryy-url/, его автоматически перенаправляет на /novyy-url/. Код использует постоянный редирект 301, что важно для SEO.
Редиректы с несколькими условиями
Если нужно настроить сразу несколько правил, можно расширить функцию:
add_action('template_redirect', 'wpnote_multiple_redirects');
function wpnote_multiple_redirects() {
$uri = $_SERVER['REQUEST_URI'];
$redirects = [
'/staryy-url/' => '/novyy-url/',
'/udalennaya-stranica/' => '/glavnaya-stranica/',
];
foreach ($redirects as $old => $new) {
if (strpos($uri, $old) !== false) {
wp_redirect(home_url($new), 301);
exit;
}
}
}
Такой подход позволяет централизованно управлять всеми редиректами из одного места.
Редиректы на основе пользовательских условий
Иногда необходимо делать редиректы не просто по URL, а по другим параметрам — например, по типу устройства или геолокации. Для этого можно использовать PHP и дополнительные библиотеки.
Редирект по типу устройства
Допустим, нужно перенаправить мобильных пользователей на мобильную версию сайта. Можно использовать PHP-библиотеку Mobile Detect.
Пример реализации:
require_once get_template_directory() . '/Mobile_Detect.php';
add_action('template_redirect', 'wpnote_redirect_mobile');
function wpnote_redirect_mobile() {
$detect = new Mobile_Detect();
if ($detect->isMobile() && !is_admin()) {
wp_redirect(home_url('/mobile-version/'), 302);
exit;
}
}
Для использования нужно скачать библиотеку и положить файл Mobile_Detect.php в папку вашей темы.
Редирект по геолокации
Для геолокации можно использовать IP-адрес и бесплатные сервисы, например, ipgeolocation.io. Ниже пример простой реализации с cURL:
function wpnote_get_user_country() {
$ip = $_SERVER['REMOTE_ADDR'];
$url = "https://api.ipgeolocation.io/ipgeo?apiKey=ВАШ_КЛЮЧ&ip=$ip";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
return $data['country_code2'] ?? '';
}
add_action('template_redirect', 'wpnote_redirect_by_country');
function wpnote_redirect_by_country() {
$country = wpnote_get_user_country();
if ($country === 'RU') {
wp_redirect(home_url('/ru/'), 302);
exit;
}
}
Не забудьте зарегистрироваться и получить API-ключ на сайте сервиса.
Преимущества и недостатки решения без плагинов
Плюсы:
- Максимальная производительность — лишний плагин не загружает сайт.
- Полный контроль над логикой редиректов.
- Отсутствие зависимости от сторонних разработчиков.
Минусы:
- Необходимость писать и поддерживать код самостоятельно.
- Отсутствие удобного интерфейса для управления редиректами.
- Можно допустить ошибки, которые приведут к циклам редиректов или потерям трафика.
Когда стоит использовать плагины для редиректов
Если редиректов много или нужны удобные инструменты для их управления, имеет смысл использовать специализированные плагины. Среди популярных и проверенных решений:
- Clearfy Pro — многофункциональный плагин с модулем для редиректов и оптимизаций сайта;
- Redirection — бесплатный и простой в использовании плагин для управления редиректами;
- WPRemark — плагин для автоматизации разных процессов, включая некоторые возможности редиректов.
Плагины удобны для пользователей без навыков программирования и позволяют быстро создавать и редактировать правила через админку.
Советы по SEO при создании редиректов
Для сохранения и улучшения SEO важно:
- Использовать редиректы 301 для постоянных перенаправлений;
- Избегать цепочек и циклов редиректов, чтобы не замедлять загрузку;
- Обновлять внутренние ссылки на сайте, чтобы они сразу вели на актуальный URL;
- Проверять редиректы с помощью специальных инструментов, например, httpstatus.io;
- Добавлять канонические URL, если это необходимо.