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 покажет Москву и формально будет прав.
- Корпоративные сети. Филиал в Перми ходит через головной офис в Петербурге, и весь офис для вас «петербуржцы».
- VPN и дата-центры. Тут регион вообще ничего не говорит о человеке, зато сам факт «IP принадлежит хостингу» уже полезный сигнал.
- Динамические адреса. Провайдер перераспределяет пулы между городами, и вчерашний тюменский диапазон сегодня раздаётся в Омске. Геобазы обновляются, но с лагом.
Вывод для практики: GeoIP годится как значение по умолчанию, а не как приговор. Подставили регион автоматически? Дайте человеку возможность поменять город одним кликом. Для парсинга таких оговорок нет: там вы проверяете не человека, а собственную инфраструктуру, и ответ геобазы показывает ровно то, что видит поисковик.
Коды регионов без ручного поиска
Если регион известен заранее и IP не нужен, коды берутся напрямую: /api/yandex/regions
и /api/google/regions ищут по названию, оба метода бесплатные. В базе 127 791 регионов Яндекса
и 273 644 регионов Google. Те же справочники доступны страницами:
коды lr Яндекса и
ID регионов Google. Связка «geoip для входящих посетителей,
regions для исходящих запросов» закрывает региональную тему целиком.