Give each published language version a stable URL. A visitor following a French link should see French content regardless of their IP address. Use country detection only when the visitor has not chosen a version.
Add reciprocal hreflang links to real equivalents and keep each page’s canonical on its own version. A language switcher should preserve the current page where a translation exists.
A saved preference should outrank automatic detection. Test VPNs, unknown countries and search crawlers. Country and language are related, but a country lookup cannot tell you which language an individual prefers.




