Как исправить проблему не работающих affiliate ссылок с UTM параметрами в WooCommerce

Диагностика проблемы с UTM параметрами в affiliate ссылках WooCommerce

Проблема с неработающими affiliate ссылками, содержащими UTM метки, часто возникает из-за того, что WooCommerce или плагины кеширования отбрасывают эти параметры при генерации или обработке URL. В результате переходы по ссылкам без UTM не дают корректного отслеживания, а целевые страницы либо не корректно учитывают параметры в аналитике.

Для диагностики нужно проверить:

  • Передаются ли UTM-параметры в URL при клике на affiliate ссылку.
  • Сохраняются ли параметры при переходе на страницу продукта WooCommerce.
  • Не очищаются ли UTM параметры плагинами кеширования или редиректами.
  • Работает ли корректно отслеживание в вашей системе аналитики (Google Analytics, Яндекс Метрика и пр.).

Пошаговое решение: сохраняем и передаем UTM параметры в affiliate ссылках WooCommerce

1. Отключение очистки URL от UTM параметров

Многие плагины кеширования и оптимизации URL удаляют параметры для чистоты адресов. Проверьте настройки кеша (например, WP Rocket, W3 Total Cache) и исключите из очистки параметры utm_source, utm_medium, utm_campaign.

2. Сохраняем UTM параметры в сессии для последующего использования

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

add_action('init', function() {
    if (!session_id()) {
        session_start();
    }
    $utm_params = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
    foreach ($utm_params as $param) {
        if (isset($_GET[$param])) {
            $_SESSION[$param] = sanitize_text_field($_GET[$param]);
        }
    }
});

3. Добавляем UTM параметры к affiliate ссылкам WooCommerce

Если affiliate ссылки выводятся динамически, можно автоматически добавлять сохранённые UTM параметры к ним. Например, при выводе ссылки в шаблоне:

function add_utm_to_affiliate_link($url) {
    if (!session_id()) {
        session_start();
    }
    $utm_params = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
    $query = [];
    foreach ($utm_params as $param) {
        if (!empty($_SESSION[$param])) {
            $query[$param] = $_SESSION[$param];
        }
    }
    if ($query) {
        $url = add_query_arg($query, $url);
    }
    return $url;
}

// Пример использования при выводе ссылки
$affiliate_url = 'https://partner.example.com/product?ref=123';
echo '<a href="' . esc_url(add_utm_to_affiliate_link($affiliate_url)) . '">Купить</a>';

4. Проверяем работу редиректов и кеша

Если у вас настроены редиректы через .htaccess или плагины, убедитесь, что они не удаляют UTM параметры. Для кеширования — в настройках плагина кеша исключите страницы с affiliate ссылками из кеширования или настройте правила сохранения параметров URL.

Проверка результата

  • Кликните по affiliate ссылке с UTM параметрами и убедитесь, что они сохранились в URL на странице товара.
  • Проверьте в консоли браузера (Network) запросы к аналитике — должны отправляться с корректными метками.
  • В системе аналитики проверьте появление переходов с нужными UTM параметрами.

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

  • Отсутствие сессии PHP: Если сессия не стартует, параметры не сохранятся. Убедитесь, что session_start() вызывается корректно и до вывода контента.
  • Плагины кеширования удаляют параметры: Проверьте список исключений в настройках кеша и добавьте UTM параметры в whitelist.
  • Неправильное добавление параметров к ссылкам: Используйте WordPress функцию add_query_arg(), чтобы корректно добавлять GET параметры без риска сломать URL.
  • Редиректы без учета UTM: Настройте редиректы так, чтобы они сохраняли GET параметры, либо полностью отключите редиректы для affiliate ссылок.

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

  • Не храните UTM параметры в базе данных — достаточно сессии, чтобы не создавать нагрузку.
  • Используйте sanitize_text_field() для очистки входящих GET параметров, чтобы исключить XSS-атаки.
  • Проверяйте логи сервера на предмет 404 ошибок, связанных с урлами affiliate ссылок.
  • При использовании CDN прокси настройте правила, чтобы не удалять GET параметры.

Сравнение вариантов решения проблемы

МетодПлюсыМинусыПример
Сохранять UTM в сессии и добавлять к ссылкамГибко, поддерживает любые ссылки, не влияет на SEOТребует PHP сессии, возможна нагрузка при большом трафикеКод из раздела 2-3
Использовать плагины для управления UTMПростота настройки, интеграция с аналитикойМожет конфликтовать с кешем, требует поддержкиПлагины типа AffiliateWP с расширениями
Отключить кеширование для страниц с affiliate ссылкамиГарантирует сохранение параметровСнижение производительности сайтаНастройки кеша
Исправление проблем с отображением affiliate ссылок в WooCommerce после обновления
06.07.2026
Как создать автоматический affiliate попап в WordPress для увеличения конверсии
25.02.2026
Как исправить проблему не работающих affiliate ссылок в WooCommerce после обновления
16.06.2026
Как создать собственный шорткод для affiliate ссылок в WordPress
30.11.2025
Как добавить автоматическую поддержку Telegram для affiliate сайта на WordPress
18.03.2026