
Есть ошибка, которая перечёркивает работу дорогих мобильных прокси одним махом, и совершают её даже опытные ботоводы. Профиль заходит с московского IP, антидетект настроен, отпечатки уникальны — а часовой пояс браузера показывает Europe/London, а язык системы — en-US. Для антифрода Яндекса это как паспорт с фотографией одного человека и подписью другого: география IP не совпадает с географией устройства. И такой профиль вылетает из зачёта, даже не начав крутить.
Разберём подробно, какие геосигналы браузер отдаёт помимо IP, как поисковик сопоставляет их между собой, почему рассинхрон таймзоны и локали — один из самых частых и самых грубых провалов, и как выстроить полную географическую согласованность профиля. Особенно это критично для локального продвижения — см. наш материал про гео-спеку в накрутке ПФ.
Какие геосигналы видит браузер помимо IP
IP-адрес — лишь один из слоёв географии. Браузер отдаёт сайту ещё как минимум четыре независимых сигнала о местоположении и языковой среде:
- Часовой пояс.
Intl.DateTimeFormat().resolvedOptions().timeZoneвозвращает системную зону видаEurope/Moscow. ДополнительноDate.prototype.getTimezoneOffset()отдаёт смещение в минутах. - Язык интерфейса.
navigator.languageи массивnavigator.languages(например,["ru-RU","ru","en-US"]). - Локаль форматирования. Как система форматирует числа, даты и валюту — тоже считывается через Intl.
- HTTP-заголовок Accept-Language. Отправляется с каждым запросом и должен согласовываться с navigator.languages.
Каждый из этих сигналов должен рассказывать одну и ту же историю, и она обязана совпадать с географией IP-адреса прокси. Любое расхождение — трещина, в которую бьёт антифрод.
Почему рассинхрон убивает профиль
Логика поисковика проста и беспощадна: реальный человек физически находится там, где его устройство. Если человек в Москве, у него московский IP, зона Europe/Moscow, язык ru-RU и рублёвое форматирование. Эти параметры не могут противоречить друг другу у живого пользователя — они все берутся из одной физической реальности.
Бот же собирается из кусочков: прокси купили российский, а виртуалка стоит на зарубежном сервере с дефолтной зоной UTC и английской локалью. Получается химера: IP говорит «Москва», таймзона — «Лондон», язык — «США». Таких людей не существует. Антифрод помечает профиль как сгенерированный и не засчитывает его поведение.
Дорогой мобильный прокси + дефолтная таймзона сервера = выброшенные деньги. Гео должно совпадать на всех слоях, а не только по IP.
Как Яндекс сопоставляет географию
- IP → регион. По IP определяется город и часовой пояс, в котором «должен» находиться пользователь.
- Сверка с таймзоной браузера. Если IP московский, а
timeZoneнеEurope/Moscow(или смещение не +3) — рассинхрон. - Сверка с языком. Российский IP с единственным языком
en-USи без русского в списке — аномалия для локальной аудитории. - Сверка с Accept-Language. Заголовок запроса должен совпадать с тем, что отдаёт JavaScript. Расхождение между HTTP и JS — классический след подмены «наполовину».
- Геолокация (если запрашивается). Координаты из Geolocation API не должны противоречить IP. Сюда же — утечки реального IP через WebRTC.
Особая опасность для локального продвижения
Если вы крутите ПФ под региональные запросы — «услуга в Казани», «рядом со мной» — география профиля должна не просто быть российской, а совпадать с целевым городом. Бот, продвигающий казанский сайт, но заходящий с московским IP и зоной Europe/Moscow, шлёт Яндексу противоречивый сигнал: геозапрос казанский, а «пользователь» из Москвы. Для локальной выдачи это особенно критично — подробности в статьях про гео-спеку и переходы из Яндекс.Карт и 2ГИС.
Таблица: согласованный профиль против рассинхрона
| Слой | Правильно (Москва) | Рассинхрон (палево) |
|---|---|---|
| IP прокси | Москва, РФ | Москва, РФ |
| Часовой пояс | Europe/Moscow (+3) | UTC / Europe/London |
| navigator.language | ru-RU | en-US |
| navigator.languages | ["ru-RU","ru","en"] | ["en-US"] |
| Accept-Language | ru-RU,ru;q=0.9 | en-US (не совпадает с JS) |
| Форматы (Intl) | рубли, ДД.ММ.ГГГГ | доллары, ММ/ДД/ГГГГ |
Как выстроить географическую согласованность
Привязывать таймзону к региону прокси
Часовой пояс профиля должен задаваться от IP прокси, а не от сервера. Купили прокси в Екатеринбурге — ставьте Asia/Yekaterinburg (+5). Хороший антидетект умеет автоматически подтягивать таймзону под геолокацию IP; если делаете вручную — сверяйте по каждому профилю.
Язык под целевую аудиторию
Для рунета основной язык — ru-RU, а в массиве navigator.languages допустимы русский и вторичный английский. Единственный en-US на российском IP — сразу флаг. Accept-Language в HTTP-запросах должен совпадать с JS-значениями до последнего тега.
Синхронизация HTTP и JavaScript
Частая ошибка: язык подменили в JavaScript, а HTTP-заголовок Accept-Language остался дефолтным серверным. Антибот сравнивает эти два источника — они обязаны совпадать. Это тот же принцип согласованности, что для порядка HTTP-заголовков.
Закрыть утечки реального местоположения
WebRTC может выдать реальный IP сервера в обход прокси, а Geolocation API — реальные координаты. Оба канала нужно контролировать, иначе вся маскировка географии бессмысленна. Разбор — в статье про WebRTC и DNS-утечки.
Стабильность гео во времени
Живой профиль не «прыгает» между городами каждый день. Если сегодня Москва, завтра Владивосток, послезавтра снова Москва при тех же куках — это невозможное поведение. Гео фиксируется за профилем на весь цикл накрутки, допустимы лишь естественные перемещения.
Разбор реального кейса
Показательная ситуация из практики. Клиент продвигал сайт услуг по Екатеринбургу, крутил ПФ полтора месяца — позиции стояли на месте, хотя по всем метрикам «трафик шёл». Диагностика вскрыла классику: прокси были куплены российские, но раздавались из общего пула без привязки к городу, часовой пояс на всех профилях стоял Europe/Moscow (сервер в Москве), а язык — ru-RU, что вроде правильно. Проблема была в связке: сайт екатеринбургский, запросы геозависимые, а «пользователи» приходили с московским временем и, что хуже, IP скакал по разным регионам между визитами.
Для Яндекса это выглядело так: сотня людей интересуется услугой в Екатеринбурге, но живёт по московскому времени и постоянно «переезжает». Противоречие геосигналов обесценивало поведение. После перенастройки — прокси строго екатеринбургские, зона Asia/Yekaterinburg (+5), фиксация гео за профилем — первые сдвиги появились в течение недели. Вывод простой: гео должно быть не «просто российским», а точным и стабильным.
Мобильные сети и география
Отдельный нюанс — мобильные прокси. Операторские сети часто выдают IP, географически привязанный к региону оператора, но с широким разбросом. Это нормально для мобильного трафика (человек ездит), но и здесь есть предел правдоподобия: мобильный пользователь может перемещаться в пределах агломерации, а не прыгать за сутки из Сочи в Мурманск. При работе с мобильными прокси важно, чтобы ротация IP оставалась в рамках одного региона, а таймзона и язык не менялись при смене IP внутри сессии. Подробнее о мобильном трафике — в материале про мобильный и десктопный ПФ.
Как распределять гео по проекту
Если продвигаете федеральный сайт без жёсткой геопривязки, распределение профилей по городам должно повторять реальную структуру спроса: больше визитов из городов-миллионников, меньше — из малых. Ровное «по 10 профилей на каждый город» выглядит так же неестественно, как одинаковое железо на ферме. Для регионального же продвижения — концентрация в целевом городе плюс небольшая доля из соседних населённых пунктов агломерации, что имитирует естественный охват. Эти принципы перекликаются с тем, что мы разбирали в статье про гео-спеку в накрутке.
Чек-лист гео-согласованности
- Определите город по IP прокси (через любой IP-геосервис).
- Сверьте
Intl...timeZoneиgetTimezoneOffset()— должны соответствовать городу. - Проверьте
navigator.language/languages— русский на первом месте для рунета. - Сравните Accept-Language в запросе с JS-значениями — полное совпадение.
- Проверьте отсутствие утечек через WebRTC и Geolocation.
- Для локального продвижения — гео профиля совпадает с целевым городом запроса.
Частые вопросы про гео-настройку
Можно ли крутить московский сайт с региональных прокси? Технически визиты пройдут, но для геозависимых запросов это ослабляет сигнал: Яндекс ждёт интерес именно от целевой аудитории. Если продвигаете услугу в Москве, основная масса профилей должна быть московской. Небольшая доля из других регионов допустима — так бывает и у живого сайта, — но ядро трафика привязывается к целевому гео.
Что делать, если прокси-провайдер не даёт выбрать город? Это плохой провайдер для геозависимой накрутки. Нужны прокси с гранулярностью до города или хотя бы до региона. Общий пул «просто Россия» подходит только для федеральных проектов без жёсткой геопривязки, да и там желательно контролировать распределение.
Насколько строго таймзона должна совпадать с городом? Строго по смещению. Екатеринбург — это +5, Новосибирск — +7, Калининград — +2. Ошибка на час уже создаёт рассинхрон, потому что Яндекс знает часовые пояса городов точно. Автоматическая привязка зоны к IP в антидетекте снимает эту головную боль.
А если пользователь реально в поездке? Такое бывает, и небольшая доля «путешествующих» профилей делает картину даже естественнее. Но это именно небольшая доля и с плавными перемещениями, а не вся ферма, скачущая по стране каждый час. Стабильность — норма, перемещение — исключение.
Вывод
Рассинхрон часового пояса и языка — это ошибка, которая обесценивает всё остальное: прокси, отпечатки, поведение. Живой человек не может сидеть на московском IP с лондонской таймзоной и американской локалью — и Яндекс это знает. Географическая согласованность означает, что IP, часовой пояс, язык, Accept-Language, форматы и геолокация рассказывают одну и ту же историю, привязанную к региону прокси и стабильную во времени. Для локального продвижения это вдвойне критично. Настроите гео правильно — и профили перестанут выпадать из зачёта на ровном месте.
Больше о поведенческом продвижении и других услугах — на главной странице ProfSEO24.
Закажите накрутку ПФ в ProfSEO24
Выводим сайты в ТОП-1 Яндекса за счёт поведенческих факторов на базе ИИ — без риска фильтров. Более 300 сайтов в ТОП-1, первые сдвиги по позициям за 3 дня. Рассчитаем стоимость под вашу нишу и регион.
Заказать накрутку ПФ Написать в TelegramКомментарии
Виталий Р.
Вот оно. Прокси московские, а виртуалка в Германии, таймзона Berlin у всех. Никогда бы не подумал что это так критично. Спасибо, переставляю зоны под IP.
Sveta_K
А Accept-Language реально сравнивают с JS? Я думала это разные вещи и никто не сверяет.
Admin
Света, сравнивают. Accept-Language уходит в HTTP-заголовке, а navigator.languages читается из JS — у живого браузера они формируются из одних настроек и совпадают. Если подменили только JS, а заголовок серверный дефолтный — это классический признак «подмены наполовину». Синхронизировать нужно оба.
geo_master
Для локалки вообще боль. Крутил Казань с московских прокси, позиции не двигались. Теперь ясно почему — гео профиля не совпадало с городом запроса.
Артур
getTimezoneOffset тоже проверяют или только Intl timeZone? А то я только Intl подменил.
Admin
Артур, проверяют оба, и они должны быть согласованы между собой: если Intl говорит Europe/Moscow, то getTimezoneOffset обязан вернуть -180 (минус 3 часа в минутах). Подменили одно, забыли другое — получили внутренний рассинхрон, который ловится ещё легче, чем несовпадение с IP.
Полина
Таблица супер наглядная. Распечатала, повесила рядом с монитором. Каждый профиль теперь сверяю построчно.
Николай Ветров
WebRTC-утечка меня в своё время убила. IP прокси один, а через WebRTC светился реальный серверный. Гео рассыпалось моментально.
ma_rina
Вопрос новичка: а если аудитория реально двуязычная, ru и en, это норм держать оба языка?
Admin
Марина, для рунета абсолютно нормально ["ru-RU","ru","en-US","en"] — многие держат английский вторым. Палево — это когда русского нет вообще, а есть только en на российском IP. Порядок важен: русский должен идти первым для локальной аудитории.
Дамир
Полезно. Особенно про стабильность — а то у меня прокси ротировались по всей стране, и профиль «телепортировался» между городами каждый час.
Ekaterina V.
Форматы Intl тоже сверяют? Не думала что валюта и формат даты могут спалить.
Admin
Екатерина, форматы — это косвенный, но рабочий сигнал. Они вытекают из локали, и если локаль en-US, то и форматы будут американскими (доллары, ММ/ДД). Это добавляет очков к общей картине рассинхрона. Отдельно за формат не банят, но в связке с остальным он усиливает подозрение.
prosto_seo
Читаю цикл про отпечатки и понимаю, что накрутка давно не «купил софт и погнал». Целая инженерия.
Захар
По чек-листу нашёл, что у меня Accept-Language en у всех при русских прокси. Месяц лил впустую. Спасибо, что открыли глаза.
Alex_web
Отличный разбор. Гео — это то, на чём горит большинство самостоятельных попыток. Проще доверить тем, у кого прокси и таймзоны уже связаны.