Как посмотреть свой сайт из другой страны
Содержание

- По каким признакам сайт определяет вашу страну?
- Почему одного прокси недостаточно?
- Как настроить отдельный профиль Chrome для каждого рынка?
- Что записывать при региональной проверке?
- Почему для повторных проверок статический адрес лучше ротационного?
- Когда хватит VPN, а когда нет?
- Где здесь ProxyJam?
- Короткие ответы
Коротко: Страну посетителя сайт обычно определяет по IP-адресу, а потом подстраивает показ под язык браузера, часовой пояс, cookie и аккаунт, если вы вошли. Чтобы посмотреть свой сайт из другой страны, всё это должно совпадать с рынком. Нужен прокси в этой стране для адреса и отдельный профиль Chrome с языком и часовым поясом рынка и без ваших cookie.
Чтобы посмотреть свой сайт из другой страны, запрос должен прийти так же, как пришёл бы запрос посетителя: с адреса в этой стране, с языком браузера и часовым поясом этого рынка и без cookie, которые остались от ваших собственных визитов. Адрес берёт на себя прокси, остальное задаётся в настройках браузера. Эта инструкция о проверке собственного сайта, той задаче, которую описывает наша страница о региональном тестировании: как настроить всё в Chrome, что записывать при каждой проверке и когда с задачей справится и VPN.
По каким признакам сайт определяет вашу страну?
Обычно по IP-адресу, часто вместе с другими сигналами. Их пять, и берутся они из разных мест.
- IP-адрес. Сервер или CDN перед ним ищет адрес в базе геолокации.
Cloudflare, например, умеет передавать серверу страну посетителя двухбуквенным
кодом в заголовке
CF-IPCountry(справочник заголовков Cloudflare). - Язык браузера. Chrome отправляет заголовок
Accept-Language, собранный из предпочитаемых языков в его настройках, а скрипты страницы читают тот же список изnavigator.languages(MDN). - Часовой пояс. Скрипт может прочитать часовой пояс компьютера в виде имени,
например
Europe/Berlin, через APIIntl.DateTimeFormat, в полеtimeZoneегоresolvedOptions()(MDN). - Точное местоположение. Geolocation API сообщает координаты только после того, как посетитель это разрешит (MDN), поэтому большинство сайтов их не получает.
- То, что сайт уже знает. Cookie с регионом или валютой, которые вы выбрали в прошлый раз, или страна в аккаунте, в который выполнен вход, могут оказаться важнее адреса.
Таблица «Откуда берётся каждый сигнал и как задать его для проверки» сопоставляет каждый сигнал с настройкой Chrome, которая им управляет.
Почему одного прокси недостаточно?
Сигналы могут противоречить друг другу, и то, как сайт с этим справляется, тоже
входит в проверку. Пустите Chrome через немецкий адрес, но оставьте в списке
языков английский (США), и сайт, который берёт язык из Accept-Language, а цену
из адреса, покажет цены в евро на английском. Такую страницу не видит ни один
настоящий посетитель из Германии с немецким браузером. Оставьте свои обычные
cookie, и сайт может пропустить определение страны и отдать регион, который вы
выбрали в прошлом месяце.
Поэтому настройте все сигналы под рынок до первой проверки и не меняйте их в следующих.
Как настроить отдельный профиль Chrome для каждого рынка?
Создайте отдельный профиль Chrome для каждого рынка и дайте ему свой прокси. Профиль хранит собственную историю, пароли и настройки (справка Chrome), а также собственные cookie (заметки Chromium о каталоге пользовательских данных). Cookie немецкого профиля никогда не попадут во французский, и ни один из них не затронет вашу обычную работу в браузере.
- Создайте профиль. Нажмите на значок профиля справа вверху, выберите добавление профиля Chrome и назовите его по рынку, например «Тест DE». Не входите в нём в аккаунт Google, чтобы из основного профиля ничего не синхронизировалось.
- Установите прокси-расширение в этот профиль. Расширение задаёт прокси для профиля, в который установлено (chrome.proxy API). Добавьте в него прокси рынка. Наш бесплатный ProxyJam Connector как раз такое расширение.
- Пускайте через прокси только проверяемые домены. Добавьте правило для домена вашего сайта и его поддоменов, а запасной вариант оставьте на Direct. Собственный трафик Chrome и все остальные сайты идут через ваше подключение, а прокси несёт только проверку. Как правила превращаются в PAC-скрипт и почему для HTTPS они сравнивают только имена хостов, разобрано в статье как включить прокси только для некоторых сайтов в Chrome.
- Добавьте хосты, к которым обращается страница. Откройте DevTools, перезагрузите страницу и посмотрите столбец Domain на панели Network (если его не видно, включите его правым кликом по заголовкам столбцов). Цены часто приходят из API на другом хосте, а баннер согласия может спрашивать у сервера своего поставщика, какую версию показать. Хост, не попавший в правило, видит ваш собственный адрес, и на странице смешиваются два рынка. Добавьте каждый из них.
- Задайте язык. В разделе «Настройки», «Языки» добавьте язык рынка в
«Предпочитаемые языки» и переместите его наверх
(справка Chrome). Именно
этот порядок отправляет
Accept-Language. - Задайте часовой пояс. Chrome берёт часовой пояс из операционной системы, собственной настройки у него нет. Для проверки его может подставить DevTools: в настройках DevTools, на вкладке Locations, добавьте локацию с Timezone ID и Locale рынка, затем выберите её на панели Sensors (документация DevTools). Подмена относится к вкладке, на которой открыт DevTools, поэтому откройте DevTools до загрузки страницы. Сменить часовой пояс в системе тоже можно, но тогда он поменяется сразу для всех программ на компьютере.
- Проверьте профиль. Добавьте proxyjam.com в правило на минуту и откройте What Is My IP. Страница должна показать адрес прокси, расположенный в стране рынка. После этого уберите проверочную страницу из правила.
Если прокси требует логин и пароль, а Chrome всё время их спрашивает, причины и решение описаны в статье о запросе пароля прокси.
Что записывать при региональной проверке?
Одни и те же поля при каждой проверке, чтобы две проверки можно было сравнить построчно. Список «Записывайте одни и те же поля при каждой проверке» служит отправной точкой: цепочка редиректов, цена и валюта, наличие, баннер согласия и язык, а также адрес, который использовал профиль.
Для цепочки редиректов включите Preserve log на панели Network: тогда запросы,
сделанные до редиректа, останутся в списке
(справочник Network в DevTools).
В терминале curl печатает заголовки каждого шага с опциями -I и -L,
отправляет запрос через прокси с -x и добавляет заголовок языка с -H
(руководство curl). Адрес прокси взят из
диапазона, зарезервированного для документации
(RFC 5737); подставьте свой.
curl -sIL -x http://203.0.113.10:8080 -H "Accept-Language: de-DE,de;q=0.9" https://example.com/
Каждая строка статуса, за которой следует заголовок location:, это один шаг.
Простой запрос вроде этого видит редиректы, заголовки и цены, записанные прямо в
HTML. Опция -I отправляет запрос HEAD, и сервер,
который отвечает на HEAD иначе, чем на GET, может показать другую цепочку;
уберите -I и добавьте -o /dev/null -D -, чтобы напечатать заголовки обычного
запроса. Скрипты он не выполняет, поэтому для баннера согласия или цены, которая
подставляется после загрузки страницы, нужен профиль браузера.
Ведите одну строку на проверку и один лист на рынок. Разницу между двумя проверками стоит разбирать, только если адрес, язык и часовой пояс оба раза были одинаковыми; если что-то из них поменялось, вы сравниваете две разные настройки.
Цепочка редиректов важна не только для QA. Google пишет, что адреса его
краулера по умолчанию выглядят американскими и что он не отправляет заголовок
Accept-Language
(Google Search Central),
поэтому версию для рынка, доступную только через определение страны, Google
может не обойти или не проиндексировать. Версия со своим URL этого избегает.
Почему для повторных проверок статический адрес лучше ротационного?
Для сравнения нужно, чтобы за раз менялось что-то одно. Ротационный пул выдаёт новый адрес на каждый запрос или сессию, и у каждого адреса своя запись в базе геолокации и своя сеть. Если цена изменилась между понедельником и четвергом, нельзя понять, изменился сайт или адрес. Статический адрес держит точку наблюдения на месте, и она выпадает из сравнения. Подробнее о разнице между одним постоянным адресом и пулом рассказано в статье ISP-прокси против резидентных.
Статический адрес тоже может переехать: базы геолокации обновляются, и адрес могут записать за другой страной. Поэтому проверка через What Is My IP идёт перед каждой проверкой, включая первую. Ротационный пул лучше подходит, когда нужно много разных адресов в одном рынке одновременно.
Когда хватит VPN, а когда нет?
VPN хватит для разового взгляда: открывается ли немецкая главная, появляется ли баннер. Это быстро, и VPN у многих уже установлен.
Когда проверку нужно повторять, VPN проигрывает в трёх местах:
- Приложение VPN обычно пропускает через себя весь трафик устройства, так что все программы и вкладки оказываются в стране проверки одновременно, а два рынка рядом не открыть.
- Его выходные адреса делят многие пользователи, и в данных об IP это известная категория: в коммерческих базах есть поле для адресов, зарегистрированных за анонимными VPN-провайдерами (документация MaxMind). Сайт, который читает это поле, может обойтись с посетителем через VPN по-другому, и проверка зафиксирует именно это обращение.
- Выходной адрес может меняться от подключения к подключению, и возвращается проблема ротационного пула.
Где здесь ProxyJam?
ProxyJam продаёт статические резидентные (ISP) прокси: адрес в выбранной вами стране, зарегистрированный за интернет-провайдером, который остаётся вашим на весь оплаченный период. Для этой задачи это значит один адрес на рынок. Страны перечислены на странице локаций, сейчас их 77, а цены за IP за период на странице цен. Если адрес начал геолоцироваться за пределами купленной страны, это основание для бесплатной замены в пределах месячного лимита из раздела 2.5 Условий использования.
Товар продаётся по странам, поэтому разницу между двумя городами он показать не может. И он предназначен для проверки собственного сайта: использовать адрес, чтобы получить контент, который сайт не показывает в вашей стране, запрещает раздел 5 нашей Политики допустимого использования. Каталог находится на странице ISP-прокси, а что такое ISP-прокси вообще, объясняет статья что такое ISP-прокси.
