Smart-link vs «глупый» редирект: когда одной ссылки уже мало

Почему 301-редирект перестал быть универсальным инструментом. Шесть измерений маршрутизации, основной адрес для тех, кто не подошёл ни под одно правило, и когда «глупый» 302 — правильное решение.

Команда TDS Автор
Опубликовано
8 мин Время чтения
Все статьи

Раньше ссылка была простой: один URL — одно место назначения. brand.com/sale вёл всех на одну и ту же страницу, и долгое время этого хватало.

Сегодня одна ссылка часто должна вести разных людей в разные места: испанца из Мадрида с айфона — на оффер на испанском, немца с компьютера — на немецкий лендинг, читателя вашей рассылки — сразу на оплату. Один URL — несколько мест назначения. Это и есть smart-link.

Если коротко

Обычный 301-редирект на статичный URL подходит для переезда с домена на домен и почти ни для чего больше. Когда один человек должен видеть одно, а другой — другое, нужен smart-link: маршрутизация по нескольким признакам посетителя плюс основной адрес для тех, кто не подошёл ни под одно правило.

Когда 301/302 перестаёт справляться

Типичные случаи, где «один URL — один редирект» перестаёт работать:

  • Локализованный магазин. Shopify на 12 стран. Хочется, чтобы shop.com/promo мексиканцу открыл mx.shop.com/promo, испанцу — es.shop.com/promo, остальным — en.shop.com/promo. Раздавать партнёрам двенадцать отдельных ссылок — путь к ошибкам.
  • Автор с одной ссылкой в профиле. В профиль Instagram можно вставить ровно одну ссылку. А офферов у вас пять, и хочется разводить посетителей по стране и устройству.
  • A/B-тест лендинга. Два варианта посадочной страницы. Хочется делить трафик с одной и той же ссылки пополам и сравнивать результат.
  • Фильтрация ботов. Парсеры и боты из дата-центров уходят на отдельную страницу, а не на оффер, и не портят статистику.
  • Кампания с UTM. Пользователь пришёл с utm_source=newsletter — ему персональная скидка. С utm_source=facebook — обычная цена. Одна ссылка, разный опыт.
  • Переходный период переезда. Магазин ещё на старом домене, но 30% страниц уже на новом. Хочется, чтобы старые URL уводили на новые, а новые открывались напрямую.

В каждом из этих сценариев можно выкрутиться JavaScript-ом на лендинге («определить язык, перебросить через window.location»). Но тогда:

  • поисковики видят два перехода подряд, из-за чего могут пострадать SEO и Core Web Vitals;
  • посетитель сначала загружает одну страницу, потом другую, на это уходит время, и часть людей уходит, не дождавшись;
  • у тех, у кого отключён JavaScript, ничего не работает: таких немного, но они есть.

Шесть измерений, по которым маршрутизируют

Почти любой smart-link собирается из комбинации этих шести признаков:

  1. Гео. Самое частое — страна по IP. На уровне страны хорошие базы обычно верны, на уровне города ошибаются чаще. Подойдут MaxMind GeoLite2, IP2Location и подобные. Помните: у посетителя с VPN или прокси страна определяется по выходному узлу, а не по тому, где он находится на самом деле.
  2. Устройство. Компьютер, телефон, планшет; iOS или Android; иногда — конкретная модель. Определяется по User-Agent, но в 2026-м это уже ненадёжный источник — Apple и Chrome намеренно его урезают. Дополняйте его заголовками Sec-CH-UA и шириной экрана.
  3. Язык. Заголовок Accept-Language от браузера. Звучит просто, но пользователь из Германии с английской macOS пришлёт en-US, de;q=0.9. Кому показывать английский, а кому немецкий — зависит от того, кому вы хотите продать.
  4. Источник трафика. UTM-метки, реферер, click-id. «Пришёл из рассылки» → одно. «Пришёл из Google Ads» → другое. «Пришёл из поиска» → третье.
  5. Время. День недели и час. Если вы доставляете еду — в обед ведите на лендинг с обедами, вечером — с ужинами. Для таких предложений время может решить результат. TDS.SO считает день недели и время по UTC.
  6. Случайное распределение (A/B). Трафик делится между вариантами. Хорошо, если один и тот же человек при повторном заходе видит тот же вариант: иначе сравнение получается грязным.
Совет

Не подключайте сразу все шесть измерений на первой же кампании: правил становится несколько десятков, разбираться в них трудно, про основной адрес забывают. Начните с двух, гео и источника трафика, они закрывают самые частые случаи. Остальное добавляйте, когда понадобится.

Основной адрес: что делать, когда правило не сработало

Частая ошибка новичков — забыть про основной адрес. Пример: вы настроили «MX → mx.shop.com, ES → es.shop.com». Заходит посетитель из Украины. Куда его отправить? Если вы этого не предусмотрели, он получит 404 или переход в никуда.

Правильный smart-link — это упорядоченная цепочка правил, в конце которой всегда стоит основной адрес. Условный конфиг:

Код
rules:
  - if: visitor.is_bot
    redirect: "https://shop.com/about"   # страница для ботов, проверяется первой

  - if: geo.country == "MX"
    redirect: "https://mx.shop.com/promo"

  - if: geo.country == "ES" or accept_lang has "es"
    redirect: "https://es.shop.com/promo"

  - default:                             # основной адрес
    redirect: "https://en.shop.com/promo"

Что здесь важно:

  • правила проверяются по порядку — выигрывает первое совпавшее;
  • проверка на бота стоит первой: иначе бот из Мексики совпадёт с правилом MX и дойдёт до оффера;
  • основной адрес есть всегда. Без него посетитель, который не подошёл ни под одно правило, остаётся ни с чем.

Когда «глупый» 301/302 — это правильное решение

Smart-link подходит не всегда. В трёх случаях обычный редирект в nginx лучше:

  • Постоянный переезд домена. Старый сайт → новый, навсегда. Тут нужен честный 301, чтобы поисковики перенесли старые адреса на новые. Разные ответы разным посетителям здесь только мешают.
  • Один адрес на одну каноническую страницу. Если вам нужно просто /old → /new без разделения по аудитории — не усложняйте.
  • Когда статистика не нужна. Smart-link имеет смысл, когда вы смотрите статистику переходов и делаете по ней выводы. Если ссылка нужна один раз и навсегда — 302 в nginx настраивается за полминуты.

Как это выглядит в TDS.SO

В TDS.SO smart-link собирается в интерфейсе, без правки конфигов. В правилах распределения ссылки или шаблона вы добавляете условия сверху вниз — страна, устройство, ОС, браузер, язык, реферер, GET-параметр, день недели, время — и для каждого указываете адрес назначения. Посетитель, который не подошёл ни под одно правило, уходит на основной адрес ссылки. Если указать несколько адресов через |, трафик делится между ними поровну.

Фильтр проверяет ботов до правил. Посетители, которых он отметил как ботов, уходят на страницу по умолчанию для нецелевого трафика, которую вы выбираете сами, а не на оффер. Ссылка работает на вашем собственном домене, например go.brand.com. Домен направляется на отдельный недорогой VPS, куда одной командой ставится лёгкий прокси, или покупается готовым у продавцов. Свой трекер-сервер при этом не нужен.

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

Вывод

Обычный редирект по-прежнему подходит для случая «один адрес в один», но не может показать разным посетителям разные страницы. Ссылка должна знать о посетителе хотя бы две-три вещи: откуда он, с какого устройства и что ему предложить. Без этого каждый посетитель видит одну и ту же страницу, подходит она ему или нет.

Начните с двух правил — гео и источника трафика. Проверьте основной адрес. Неделю посмотрите на статистику. Дальше станет понятно, какие из остальных четырёх измерений вам действительно нужны.

Статья была полезной?
Команда TDS Автор

Гайды и разборы о маршрутизации, фильтрации ботов и трекинге от команды TDS.SO.

Все статьи автора
Читайте дальше

По теме

Все статьи
Основы 9 мин

Что такое TDS в арбитраже: система распределения трафика

10 ноя 2026 · Команда TDS
Практика 7 мин

Проверка домена на блокировку: Google Safe Browsing и не только

10 ноя 2026 · Команда TDS
Основы 6 мин

Когда нужен трекер, а когда хватит UTM

22 мар 2021 · Команда TDS

Проверьте
на своём трафике

Привяжите Telegram-бота и получите 3 дня бесплатно, один раз на аккаунт.

Создать аккаунт