Проблема изменения URL и необходимость автоматического редиректа
При изменении постоянной ссылки (permalink) записи или страницы в WordPress часто возникает проблема: старая ссылка уже не работает, а посетители, поисковые системы и внешние сайты продолжают использовать её. В результате вы теряете трафик и позиции в поисковой выдаче. В идеале необходимо настроить автоматический редирект с прежнего URL на новый, чтобы сохранить SEO и удобство пользователей.
В WordPress по умолчанию такой редирект не создаётся, и администратору приходится решать эту задачу вручную или с помощью плагинов. В этой статье разберём, как реализовать автоматический 301 редирект при изменении ссылки с помощью собственного кода и популярных плагинов.
Использование плагинов для автоматического редиректа при смене URL
Плагин Redirection
Redirection — один из самых популярных и мощных плагинов для управления редиректами в WordPress. Он автоматически отслеживает изменение постоянных ссылок и создаёт 301 редиректы со старого адреса на новый.
Основные преимущества плагина:
- Автоматическое создание редиректов при смене URL записи.
- Подробная статистика переходов.
- Управление и массовое редактирование редиректов.
- Поддержка регулярных выражений.
После установки и активации плагина он будет отслеживать изменение URL и создавать редиректы без дополнительной настройки.
Плагин Simple 301 Redirects
Simple 301 Redirects — лёгкий плагин, который позволяет быстро настраивать редиректы вручную, но не отслеживает изменения URL автоматически. Подойдёт, если у вас небольшой сайт и вы хотите контролировать редиректы самостоятельно.
Реализация автоматического редиректа через код PremiumWP
Если вы хотите реализовать автоматический редирект при смене URL самостоятельно, можно использовать хук post_updated. Он срабатывает при обновлении записи и позволяет сравнить старый и новый URL, чтобы создать редирект.
Ниже пример кода, который добавляет такую функциональность. Редиректы будут сохраняться в пользовательской таблице базы данных или в опциях (упрощённый вариант). Для полноценной работы лучше использовать таблицу и обработку редиректов через фильтр template_redirect.
function premiumwp_post_updated_redirect($post_ID, $post_after, $post_before) {
// Проверяем, что это публичный тип записи
if ($post_after->post_status !== 'publish') {
return;
}
$old_slug = $post_before->post_name;
$new_slug = $post_after->post_name;
if ($old_slug !== $new_slug) {
$old_url = home_url('/' . $old_slug . '/');
$new_url = get_permalink($post_ID);
// Сохраняем редирект в опции (пример)
$redirects = get_option('premiumwp_redirects', []);
$redirects[$old_url] = $new_url;
update_option('premiumwp_redirects', $redirects);
}
}
add_action('post_updated', 'premiumwp_post_updated_redirect', 10, 3);
// Обработка редиректа
function premiumwp_handle_redirects() {
$redirects = get_option('premiumwp_redirects', []);
$current_url = home_url(add_query_arg(NULL, NULL));
if (isset($redirects[$current_url])) {
wp_redirect($redirects[$current_url], 301);
exit;
}
}
add_action('template_redirect', 'premiumwp_handle_redirects');Этот код сохраняет старый и новый URL при обновлении записи и при заходе на старый URL выполняет 301 редирект на новый. Для промышленных сайтов лучше использовать таблицу в базе и более сложную логику, чтобы не хранить все редиректы в опциях.
Как улучшить автоматический редирект: советы и рекомендации
Учитывайте разные типы записей и таксономий
В коде выше мы проверили только публикации, но в WordPress есть страницы, пользовательские типы записей и таксономии, у которых тоже могут изменяться URL. Если нужно, расширьте логику, чтобы обрабатывать эти случаи.
Обработка удалённых записей и ошибок
Если запись удалена или URL изменён несколько раз, старые редиректы могут накапливаться и приводить к ошибкам. Регулярно проверяйте и очищайте неактуальные редиректы. Плагины, например Redirection, автоматизируют этот процесс.
Поддержка канонических URL и SEO
Редиректы должны быть 301 (постоянные), чтобы поисковые системы правильно воспринимали изменения. Также убедитесь, что на страницах установлен тег rel="canonical" с актуальным URL.
Альтернативные решения и плагины из WPShop
Если вы используете продукты из WPShop, обратите внимание на плагин Clearfy Pro. Он включает инструменты для оптимизации SEO и управления редиректами, что может упростить задачу автоматического перенаправления при смене ссылок.
Также для комплексной оптимизации сайта и управления ссылками полезны темы Reboot и Root, которые имеют встроенные возможности SEO и совместимы с плагинами редиректов.
Заключение
Автоматический редирект при изменении URL позволяет сохранить трафик и позиции в поисковых системах, а также улучшить пользовательский опыт. Вариантов решения много — от использования популярных плагинов Redirection и Clearfy Pro до создания собственного кода на основе хуков WordPress. В зависимости от задач и масштаба сайта выбирайте подходящий метод и обязательно тестируйте работу редиректов.