IP geolocation turns a network address into a place. The databases behind it are good at country and uneven below that. A visitor map that drops a pin on a city is showing the database's best guess, not a GPS reading from the person's phone.
Treat the country as a fact you can plan around. Treat the city as a hint. Treat anything smaller than a city as fiction.
Why the city moves
The database maps ranges of addresses to the location where those addresses are registered. That is often the ISP's city, a mobile gateway, or a corporate egress, not the chair the person is sitting in.
- A phone can appear in a city the carrier registered years ago.
- A VPN appears where the exit node is. A reader in Brazil on a US VPN is a US visit.
- An office of fifty people is one pin, or a handful, because they share a public address.
- A CDN or a privacy relay appears wherever that relay lives.
Country tracking still works, because those same ranges are usually registered in the right country. The error gets large as you zoom in. The glossary entry on IP geolocation is the short version of the same limit.
Decisions that survive the error
Use the country table to decide language, currency examples, support hours, and whether a page is being read outside your home market. A month of Canada on one article is a reason to look at that article. A single pin in a city you have never shipped to is not a reason to open a warehouse.
Do not use city pins to claim a neighborhood, a store catchment, or a street. The map does not have that resolution, and it cannot show a street address. Do not sort cities and then build an ad campaign around the top three. The top three may be three carrier hubs.
How to look at the map anyway
Glance at the map for shape: is the audience one country, or spread out? Then leave the pins and open the country table over a real date range. If a city name surprises you, check the user agent and the page. A cluster of normal browsers on an article is more interesting than the city label. A cluster of script user agents is a bot, and the city does not matter.
The pin is a picture. The country count is the number. Use the picture on the public page, where "people are reading this from elsewhere" is the point. Use the number when you are about to spend time or money.