GeoIP для SEO: определяем регион посетителя по IP

· GeoIP · регионы

Посетитель зашёл на сайт, и вы уже знаете его город, хотя он ещё ничего не нажал. Всё, что для этого нужно, лежит в его IP-адресе. Для SEO это рабочий инструмент сразу в двух местах: подставить региональный контент живому человеку и проверить, из какого региона на самом деле ходит ваш парсер.

У нас для этого есть /api/geoip: бесплатный, без авторизации, до 30 запросов в минуту. Отдаёт страну, регион, координаты и, что редкость, сразу код региона Яндекса.

Что приходит в ответе

Запрос выглядит так:

https://jsonseo.ru/api/geoip?ip=77.88.55.242

Без параметра ip сервис определит регион по адресу, с которого пришёл сам запрос. Это удобно, когда надо узнать, за кого поисковики принимают ваш сервер или прокси. В ответе четыре вещи: страна, регион, координаты точки и ID региона Яндекса. Последнее поле для сеошника самое ценное: это тот самый lr, который принимает и поиск Яндекса, и API съёма выдачи. Не нужно держать таблицу соответствий «город → lr» и мучиться с транслитерацией названий, цепочка «IP → регион для съёма» закрывается одним запросом. Разовую проверку можно сделать вообще без кода, на странице определения региона по IP.

Сценарий первый: контент под регион посетителя

Классика региональных сайтов: один домен, много городов, и на первом экране надо показать телефон и адрес нужного филиала. Всплывашка с вопросом «Ваш город Москва?» бесит примерно всех. GeoIP решает тише: взяли IP из запроса, дёрнули API, получили регион, отдали нужный блок. При 30 запросах в минуту разумно кешировать ответы по подсети: IP соседних посетителей из одного города почти всегда попадают в один диапазон, и реальный расход получается копеечный.

Сценарий второй: проверить, откуда ходит парсер

Менее очевидное применение, но именно оно спасает от загадочных расхождений в позициях. Вы снимаете выдачу через прокси и уверены, что он новосибирский, потому что так написано у продавца. Поисковик же смотрит не на обещания продавца, а на геобазу. Один запрос к /api/geoip без параметров через этот прокси, и видно, каким регионом его считают на самом деле. «Новосибирский» прокси, живущий в московском дата-центре, встречается настолько часто, что проверку стоит встроить в пайплайн, благо она бесплатная.

Впрочем, для честного съёма позиций прокси под каждый город не нужны вовсе: регион передаётся параметром lr в Яндексе и числовым ID в Google. Как это устроено, мы разбирали в статье про проверку позиций по регионам, а для Google есть отдельный разбор про uule и выдачу чужого города.

Сценарий третий: понять, кто ходит по сайту

В логах сервера одни списки IP, без географии они немые. Прогоните адреса через API, и картина оживает: всплеск трафика из Казахстана после публикации, подозрительная серия регистраций с адресов одного зарубежного дата-центра, регион, откуда заходят, но не покупают. Тридцати запросов в минуту хватает, чтобы за ночь разметить лог среднего сайта, если не гонять повторно одинаковые адреса. Мы сами именно так отлавливали спам-регистрации: у ботов почти всегда IP хостинга, а не домашнего провайдера, и по полю страны с регионом это видно сразу.

Где GeoIP врёт

Точность определения по IP упирается в провайдера. Стационарный домашний интернет обычно определяется до города честно. Дальше начинаются нюансы:

Вывод для практики: GeoIP годится как значение по умолчанию, а не как приговор. Подставили регион автоматически? Дайте человеку возможность поменять город одним кликом. Для парсинга таких оговорок нет: там вы проверяете не человека, а собственную инфраструктуру, и ответ геобазы показывает ровно то, что видит поисковик.

Коды регионов без ручного поиска

Если регион известен заранее и IP не нужен, коды берутся напрямую: /api/yandex/regions и /api/google/regions ищут по названию, оба метода бесплатные. В базе 127 791 регионов Яндекса и 273 644 регионов Google. Те же справочники доступны страницами: коды lr Яндекса и ID регионов Google. Связка «geoip для входящих посетителей, regions для исходящих запросов» закрывает региональную тему целиком.


Читайте дальше