wplinks.ru wordpress WPLinks.ru

Как установить автоматические редиректы в WooCommerce при изменении URL товаров

Диагностика проблемы с изменением URL товаров в WooCommerce

При изменении ссылки товара в WooCommerce (например, после редактирования ярлыка — slug) старые URL продолжают индексироваться в поисковых системах и могут попадать в закладки пользователей. Это приводит к ошибке 404 и потере трафика.

Проверить проблему можно через Google Search Console или с помощью плагинов для аудита сайта, таких как Redirection. Если на сайте много товаров, ручное создание редиректов неэффективно и подвержено ошибкам.

Почему автоматические редиректы важны для WooCommerce

  • Сохраняют SEO-авторитет страниц при смене URL.
  • Улучшают пользовательский опыт — старые ссылки ведут на актуальный товар.
  • Упрощают администрирование при массовых изменениях.

Пошаговое решение: автоматическая установка редиректов при смене slug товара

1. Создание функции для отслеживания изменения URL

Добавьте следующий код в файл functions.php вашей дочерней темы или в кастомный плагин:

add_action('post_updated', 'auto_redirect_old_url_on_slug_change', 10, 3);
function auto_redirect_old_url_on_slug_change($post_ID, $post_after, $post_before) {
    if ($post_after->post_type !== 'product') {
        return;
    }

    $old_slug = $post_before->post_name;
    $new_slug = $post_after->post_name;

    if ($old_slug !== $new_slug) {
        $old_url = home_url('/product/' . $old_slug . '/');
        $new_url = home_url('/product/' . $new_slug . '/');

        // Добавляем редирект в базу WP Redirection или создаём свою таблицу
        // Здесь пример записи в опцию (для простоты)
        $redirects = get_option('auto_product_redirects', []);
        $redirects[$old_url] = $new_url;
        update_option('auto_product_redirects', $redirects);
    }
}

2. Реализация обработки редиректа при заходе на старый URL

Добавьте обработчик в template_redirect для выполнения редиректа:

add_action('template_redirect', 'handle_auto_product_redirects');
function handle_auto_product_redirects() {
    $redirects = get_option('auto_product_redirects', []);
    $current_url = home_url(add_query_arg(null, null));

    if (isset($redirects[$current_url])) {
        wp_redirect($redirects[$current_url], 301);
        exit;
    }
}

3. Очистка устаревших данных

Для предотвращения засорения базы данных реализуйте периодическую очистку неактуальных редиректов либо интегрируйте с плагином Redirection, который умеет управлять редиректами и статистикой.

Проверка результата после внедрения

  1. Измените slug товара в админке WooCommerce.
  2. Попробуйте открыть старый URL товара — должен выполниться 301 редирект на новый адрес.
  3. Проверьте HTTP-заголовки с помощью инструментов разработчика браузера или curl (curl -I https://example.com/product/old-slug/).
  4. Убедитесь, что в Google Search Console ошибок 404 по товарам стало меньше.

Частые ошибки и как их исправить

  • Редиректы не срабатывают: проверьте, что URL формируются правильно, и код подключен в нужном месте.
  • Проблемы с протоколом (http/https): используйте home_url() без явного указания протокола, чтобы избежать несоответствий.
  • Старая ссылка не совпадает с текущей структурой: если структура ссылок изменена, обновите формирование URL в коде.
  • Накопление большого количества редиректов в опции: перенесите управление в специализированный плагин или внешнюю таблицу.

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

  • Не храните редиректы в опциях, если их много — используйте кастомную таблицу или плагин Redirection для масштабируемости.
  • Используйте 301 редиректы для сохранения SEO веса страниц.
  • Избегайте циклических редиректов — добавьте проверку перед сохранением.
  • Для крупных магазинов настройте кэширование и CDN, чтобы минимизировать нагрузку при редиректах.

Сравнение вариантов реализации автоматических редиректов

МетодПлюсыМинусыПрименимость
Самописный кодПолный контроль, легкийТребует поддержки, не масштабируетсяМалые и средние магазины
Плагин RedirectionУдобный интерфейс, статистика, масштабируемостьДополнительная нагрузка, зависит от плагинаСредние и большие магазины
Серверные редиректы (.htaccess/nginx)Очень быстро, не нагружает WPСложно автоматизировать, требуется админ-доступБольшие проекты с админ-доступом к серверу
×

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

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

пишет статьи

готовит SEO

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

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