Как добавить автоматический гео-таргетинг в WordPress

Что такое гео-таргетинг и зачем он нужен в WordPress

Гео-таргетинг – это технология показа разного контента посетителям сайта в зависимости от их географического положения. Это полезно для локальных бизнесов, мультирегиональных проектов, интернет-магазинов с региональными предложениями и сайтов на нескольких языках. В WordPress автоматический гео-таргетинг позволяет увеличить конверсию, улучшить пользовательский опыт и повысить релевантность информации.

В этой статье мы рассмотрим, как добавить автоматический гео-таргетинг на сайт WordPress, используя готовые плагины и кастомные решения. В конце будет пример кода, который поможет вам расширить функциональность под свои нужды.

Плагины для гео-таргетинга в WordPress: обзор и рекомендации

Плагин GeoTargeting WP

GeoTargeting WP — популярный плагин, который дает возможность показывать или скрывать контент в зависимости от геолокации посетителя. Он использует базы данных IP-адресов и API для определения страны, региона и города пользователя.

  • Поддержка виджетов, шорткодов и PHP-функций для интеграции в тему и плагины.
  • Работает с WooCommerce для показа региональных товаров и цен.
  • Простой интерфейс для настройки правил отображения.

Для установки: GeoTargeting WP на WPShop.ru.

Плагин IP2Location Redirection

Этот плагин подходит для редиректа пользователей по геолокации — например, на региональные поддомены или языковые версии. Он позволяет указать правила редиректа по IP, что удобно для мультирегиональных сайтов.

  • Поддержка базы IP-адресов IP2Location.
  • Гибкие настройки редиректов.
  • Легко интегрируется с плагинами кеширования.

Плагин WP GeoIP Country Redirect

Простой и бесплатный плагин для перенаправления посетителей в зависимости от страны. Можно настроить исключения и страницы, на которые осуществляется редирект.

Как самостоятельно реализовать гео-таргетинг в WordPress через IP и API

Если вы не хотите использовать готовые плагины, можно сделать собственное решение с помощью внешних API, например, ipgeolocation.io, ipstack.com или бесплатных сервисов. Вот пример, как реализовать базовый гео-таргетинг с помощью ipgeolocation.io.

Получение геолокации посетителя

Для начала создадим функцию wponline_get_user_location(), которая определит страну по IP.

function wponline_get_user_location() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $api_key = 'ВАШ_API_КЛЮЧ';
    $url = 'https://api.ipgeolocation.io/ipgeo?apiKey=' . $api_key . '&ip=' . $ip;

    $response = wp_remote_get($url);
    if (is_wp_error($response)) {
        return false;
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    if (!empty($data['country_code2'])) {
        return $data['country_code2'];
    }

    return false;
}

Замените ВАШ_API_КЛЮЧ на ключ, который получите на сайте ipgeolocation.io.

Показ контента по стране

Теперь создадим шорткод, который будет показывать контент только для посетителей из определенной страны, например, России (RU) или Украины (UA):

function wponline_geo_content_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'country' => '',
    ), $atts);

    $user_country = wponline_get_user_location();
    if (!$user_country) {
        return '';
    }

    $countries = array_map('trim', explode(',', strtoupper($atts['country'])));

    if (in_array($user_country, $countries)) {
        return do_shortcode($content);
    }

    return '';
}
add_shortcode('geo_content', 'wponline_geo_content_shortcode');

Использование шорткода в записи или на странице:

[geo_content country="RU,UA"]Этот контент увидят только посетители из России и Украины.[/geo_content]

Дополнительные советы и оптимизация гео-таргетинга

Кеширование и производительность

Запросы к гео-API могут замедлить загрузку сайта. Чтобы избежать этого, используйте кеширование. Например, сохраняйте результат определения страны в сессии или transient WordPress:

function wponline_get_user_location_cached() {
    $cache_key = 'wponline_user_country_' . md5($_SERVER['REMOTE_ADDR']);
    $country = get_transient($cache_key);

    if ($country === false) {
        $country = wponline_get_user_location();
        if ($country) {
            set_transient($cache_key, $country, 12 * HOUR_IN_SECONDS);
        }
    }

    return $country;
}

Замените вызовы wponline_get_user_location() на wponline_get_user_location_cached() для повышения скорости.

Совместимость с плагинами кеширования

Гео-таргетинг конфликтует с кешированием страниц, потому что всем пользователям отдается одна кешированная копия. Чтобы избежать этого, используйте AJAX для динамической подгрузки геозависимого контента или отдельное кеширование по регионам.

Использование плагина Clearfy Pro для оптимизации

Если на вашем сайте установлен Clearfy Pro, воспользуйтесь его функцией управления кешем и исключениями для гео-таргетинга. Clearfy позволяет гибко настраивать, какие страницы или типы контента не кешировать, чтобы избежать проблем с динамическим выводом.

Пример более сложного использования: гео-таргетинг для WooCommerce

Для интернет-магазинов актуально показывать разные цены, валюты или товары в зависимости от региона. С помощью GeoTargeting WP и кастомного кода можно реализовать:

  • Автоматическую смену валюты по стране.
  • Показ специальных предложений или скидок для регионов.
  • Ограничение товаров для определенных стран.

Пример переключения валюты на основе геолокации с использованием WooCommerce и GeoTargeting WP:

add_filter('woocommerce_currency', 'wponline_wc_currency_by_geo');
function wponline_wc_currency_by_geo($currency) {
    $country = wponline_get_user_location_cached();
    if ($country === 'RU') {
        return 'RUB';
    } elseif ($country === 'UA') {
        return 'UAH';
    }
    return $currency;
}

Этот код автоматически переключит валюту магазина в зависимости от страны посетителя.

WooCommerce: автоматическое изменение стоимости товаров при определённых условиях
09.05.2026
Как отключить Emoji в WordPress для ускорения сайта
07.12.2025
Как настроить автоматическое создание резервных копий в WordPress
20.12.2025
Как создать настройку в личном кабинете WordPress для пользователей
10.12.2025
WooCommerce: автоматическое отключение способов оплаты при проблемах с интернет-соединением
24.06.2026