Как правильно реализовать определение населенного пункта посетителя на сайте?
Посмотрите https://dadata.ru/api/detect_address_by_ip/
Имхо лучше всего так: при первом заходе определять регион по GeoIP, показывать пользователю и просить подтвердить или выбрать другой регион или уточнить. И потом использовать выбранный пользователем регион или регион, выбранный автоматически, но опять же подтвержденный пользователем.