Раньше ссылка была глупой: один URL — одно место назначения. brand.com/sale вёл всех на одну и ту же страницу. В 2010-м этого хватало. В 2026-м — уже нет.
Сегодня одна и та же ссылка должна вести разных людей в разные места: испанца из Мадрида с айфона — на оффер на испанском, немца с компьютера — на немецкий лендинг, читателя вашей рассылки — сразу на оплату. Один URL — несколько мест назначения. Это и есть smart-link.
«Глупый» 301-редирект на статичный URL хорош, когда вы переезжаете с домена на домен и больше ничего. Как только нужно, чтобы один человек видел одно, а другой — другое, начинается smart-link: маршрутизация по нескольким признакам посетителя плюс основной адрес для тех, кто не подошёл ни под одно правило. Настроить это не сложнее, чем nginx, а задач решается намного больше.
Когда 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 собирается из комбинации этих шести признаков:
-
Гео. Самое частое — страна по IP. На уровне страны хорошие базы ошибаются редко, на уровне города — заметно чаще. Подойдут
MaxMind GeoLite2,IP2Locationи подобные. Помните: у посетителя с VPN или прокси страна определяется по выходному узлу, а не по тому, где он находится на самом деле. -
Устройство. Компьютер, телефон, планшет; iOS или Android; иногда — конкретная модель. Определяется по
User-Agent, но в 2026-м это уже ненадёжный источник — Apple и Chrome намеренно его урезают. Дополняйте его заголовкамиSec-CH-UAи шириной экрана. -
Язык. Заголовок
Accept-Languageот браузера. Звучит просто, но пользователь из Германии с английской macOS пришлётen-US, de;q=0.9. Кому показывать английский, а кому немецкий — зависит от того, кому вы хотите продать. - Источник трафика. UTM-метки, реферер, click-id. «Пришёл из рассылки» → одно. «Пришёл из Google Ads» → другое. «Пришёл из поиска» → третье.
- Время. День недели и час. Если вы доставляете еду — в обед ведите на лендинг с обедами, вечером — с ужинами. Звучит как мелочь, но для таких предложений время часто решает.
- Случайное распределение (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-метки могут потеряться.
Вывод
«Глупый» редирект не умер — он просто перестал быть универсальным инструментом. Сегодня одна ссылка должна знать о посетителе хотя бы две-три вещи: откуда он, с какого устройства и что ему предложить. Если этого нет, вы отдаёте конверсию на волю случая.
Начните с двух правил — гео и источника трафика. Проверьте основной адрес. Неделю посмотрите на статистику. Дальше станет понятно, какие из остальных четырёх измерений вам действительно нужны.