Типичный сценарий: Shopify-магазин продаёт в 12 стран, у каждой страны свой поддомен с переведённым каталогом, ценами в местной валюте и местным платёжным шлюзом. Команда раздаёт партнёрам и блогерам 12 разных ссылок — по одной на страну. Один партнёр путает ссылки, второй ставит мексиканскую в немецкий блог, третий везде даёт прямую en.shop.com. В итоге часть посетителей попадает не в свой регион, и такие визиты конвертируются хуже.
Решение такое: дайте партнёрам одну ссылку, и пусть сервер решает, куда отправить каждого посетителя. Это и есть гео-редирект. Выглядит просто, но подводных камней хватает: VPN, расхождение языка и страны, последствия для SEO. Ниже разбираем, как с ними справиться.
Гео-редирект по стране на хорошей IP-базе обычно точен. Язык из заголовка Accept-Language помогает в спорных случаях. VPN показывает чужую страну, поэтому таких посетителей лучше не перебрасывать насильно, а дать им выбрать страну на сайте. Для SEO нужны canonical и hreflang, а поисковому роботу нельзя показывать не то, что видят люди. Большинству команд хватает гео-редиректа и заметной строки «Не тот регион?» на лендинге.
Насколько точно IP показывает страну
Коммерческие IP-базы (MaxMind GeoIP2, IP2Location, ipinfo, SypexGeo) дают примерно одинаковую картину:
- Страна: ошибки редкие. Для коммерческого редиректа этого достаточно.
- Регион (штат, область): уже заметно хуже. Интернет-магазины используют его для налогов и доставки, для редиректа он обычно лишний.
- Город: промахи частые, иногда на десятки километров или в соседний город. Редирект по городу почти всегда плохая идея.
Ошибки на уровне страны чаще всего дают мобильные сети и провайдеры с инфраструктурой в нескольких странах: адрес может числиться за нидерландской сетью, хотя пользователь физически в Москве. Таких случаев немного, но они бывают.
Итог: по стране редиректить достаточно надёжно. По городу нужна подстраховка языком.
Язык: когда IP не помог
Бывает, что страна по IP одна, а пользователь говорит на другом языке. В Швейцарии вообще четыре государственных языка: IP скажет «CH», а заголовок Accept-Language подскажет, на каком языке встречать. Реальные примеры:
- немец в командировке в Италии (IP=IT, Accept-Language=de-DE);
- русскоязычный человек в Германии (IP=DE, Accept-Language=ru-RU);
- англоязычный экспат в Японии (IP=JP, Accept-Language=en-US).
Правило, которое мы рекомендуем: гео определяет валюту и способ оплаты, язык определяет интерфейс. Швейцарец видит швейцарские цены и швейцарскую оплату, но интерфейс — на своём языке.
Заголовок Accept-Language бывает составным:
Accept-Language: de-DE, de;q=0.9, en;q=0.7, *;q=0.5
Здесь пользователь предпочитает немецкий, потом английский. Разбирать заголовок надо в порядке весов (параметр q). На своём сервере это десять строк кода, в TDS.SO — условие «Язык» в правиле.
VPN: трафик, который ломает гео
Заметная часть посетителей коммерческих сайтов ходит через VPN: на продуктах про приватность и в медиа таких больше, на маркетплейсах — меньше. Эти люди видят не своё гео. Что с этим делать:
- Не блокируйте без причины. Отрезать VPN заманчиво, но вместе с ботами блокируются реальные люди, которые берегут приватность. Сильнее всего это бьёт по B2B-аудитории.
- Не перебрасывайте насильно на «найденную» страну. Лучше показать на сайте сверху строку «Вы в Нидерландах? Выбрать другую страну». Так человек сам подтверждает или меняет выбор.
- Запомните выбор в cookie на год. Не включайте гео-редирект снова, если в cookie уже записано предпочтение.
Хорошие IP-базы помечают VPN-адреса флагом (is_proxy, type=hosting). Используйте его как сигнал «гео ненадёжно, спроси пользователя», а не как повод отказать.
Жёсткий гео-редирект без строки подтверждения сильнее всего бьёт по экспатам и людям в командировках: человек привык к американской версии, а из Лондона его перебрасывает на британскую — и он думает, что попал не туда. Строка выбора страны сверху страницы делается небольшой правкой.
SEO: canonical и hreflang
Поисковики настороженно относятся к адресу, который показывает разным посетителям разное. Если роботу показывают не то, что видят люди, сайт могут исключить из выдачи. Чтобы региональные версии были легитимными, нужны две технические вещи:
-
Canonical-URL. Каждая локализованная версия объявляет себя:
<link rel="canonical" href="https://es.shop.com/promo">. Так Google видит, что испанский лендинг — отдельная страница, а не дубликат. -
hreflang. На каждой версии перечислите все остальные:
Googlebot пройдёт по этим ссылкам и узнает, как версии связаны. Без них региональные версии могут конкурировать друг с другом в выдаче.
<link rel="alternate" hreflang="es-ES" href="https://es.shop.com/promo"> <link rel="alternate" hreflang="es-MX" href="https://mx.shop.com/promo"> <link rel="alternate" hreflang="en" href="https://en.shop.com/promo"> <link rel="alternate" hreflang="x-default" href="https://en.shop.com/promo">
С Googlebot отдельная история: он чаще всего приходит с американских IP, и если перебросить его на en.shop.com, он проиндексирует только английскую версию. Поэтому поисковым роботам гео-редирект не делают. Каждую региональную страницу робот должен видеть по её собственному адресу, такой же, какую видят люди.
Это важно для ссылок TDS.SO: антибот относит поисковых роботов к ботам, они уходят на страницу по умолчанию для нецелевого трафика и не проходят гео-правила. Поэтому ссылка TDS.SO не должна быть адресом, который вы продвигаете в поиске. В выдаче должны стоять сами региональные страницы с canonical и hreflang. Ссылку раздавайте партнёрам и ставьте в рекламу и рассылки.
Когда хватает простой ссылки без редиректа
Гео-редирект нужен не всем. В этих случаях он почти ничего не даёт:
- Магазин на одну страну. Если вы продаёте только в США, дополнительная логика ни к чему.
- Контентный сайт без локализации. Блог на одном языке, без региональных версий. Язык подберёт браузер посетителя.
- B2B SaaS с единым интерфейсом. Если у вас один лендинг на английском и одна валюта (USD), перенаправлять некуда.
- Лендинг под одну рекламную кампанию. Если в настройках рекламной сети уже стоит таргетинг на конкретную страну, посетители и так приходят из нужного региона.
Как это выглядит в TDS.SO
Гео-редирект в TDS.SO — это правила распределения в ссылке или шаблоне: «если страна = X, отправить на адрес Y». Посетитель, который не подошёл ни под одно правило, уходит на основной адрес ссылки.
Для VPN-трафика в правилах есть условие «Прокси / VPN»: можно завести отдельное правило и отправлять таких посетителей, например, на страницу выбора страны на вашем сайте. Саму страницу выбора TDS.SO не показывает, её делаете вы на своём сайте. Блокировать ли VPN, прокси и Tor совсем, решает отдельная настройка фильтра; если она включена, такие визиты уходят на страницу по умолчанию для нецелевого трафика. В статистике по каждому клику видно определённые страну и город, признак прокси и адрес, куда ушёл посетитель.
Вывод
Большинство случаев закрывают три правила:
- Редиректить по стране, а не по городу.
- VPN-трафик не блокировать без причины и не перебрасывать насильно — дать выбрать страну на сайте.
- Поисковым роботам гео-редирект не делать, а страницы размечать canonical и hreflang.
При двух-трёх рынках и одной валюте гео-редирект можно не делать. При двенадцати странах и местных способах оплаты он понадобится. Если ещё нужно разводить трафик по устройству и источнику, смотрите в сторону полноценного smart-link, где гео — один из шести признаков.
Гайды и разборы о маршрутизации, фильтрации ботов и трекинге от команды TDS.SO.
Все статьи автора