Watch-IP

Suggest a language and region while preserving user choice

Use available visitor context to offer a useful starting point for language, region, and currency — then remember the visitor's explicit preference instead of re-deriving it from location on every visit.

Preference precedence

Check for an explicit saved choice first — a cookie, account setting, or query parameter the visitor set themselves. Fall back to an IP-derived suggestion only when no explicit choice exists, and never let a fresh /v1/geo call overwrite a preference the visitor already made.

IP country versus browser language

These answer different questions and can disagree. A French-speaking visitor connecting from Canada might resolve to country: "CA" from /v1/geo while their browser's Accept-Language header (used by locale.suggestedLocale) already reflects "fr" — combine country with the response's own locale.suggestedLocale rather than guessing a language from country code alone, and treat the result as a suggestion, not a redirect target.

Locale and currency fields

geo.locale.suggestedLocale, measurementSystem, firstDayOfWeek, and dateFormat give regional formatting defaults; geo.currency gives a starting currency guess. All of it is a starting suggestion derived from country and request headers, not a verified preference.

When there's no location

locale, currency, and country are nullable — a request from an unresolvable network returns null rather than a guess. Fall back to your site's own default language and formatting rather than blocking the page while you wait for a value that may not arrive.

Keep language URLs stable and indexable

Offer a visible switcher instead of an automatic redirect on every visit. A permanent IP-based redirect makes a language version unreachable at a stable URL for both search engines and visitors on an unexpected network, such as a VPN or a hotel connection.

What this doesn't guarantee

An IP-derived country is not proof of language preference, citizenship, or physical presence — a traveler, VPN user, or shared corporate network can all resolve somewhere the visitor doesn't actually associate with their preferred language. Treat every suggestion as reversible.

Related pages