107

I recently started using a VPN and I've felt more comfortable browsing the Internet. My VPN allows me to select another country through which my traffic is routed to make it appear I'm located in that particular country. "What's my IP" and similar services show my IP address located in that country as expected.

Search engines, however, are apparently not fooled. As I go to Google, for example, the front page is in my native language and it says my true country of origin at the bottom of the page. I was aware that this happens, as a VPN is not truly a means to make myself anonymous, and companies like Google can track my true location (I assume they do this for example by looking at the country specific top-level domain of the sites I visit?).

But what puzzles me though, is that other search engines, such as DuckDuckGo, which promise not to track their users in anyway, can also see my true country of origin. The front page of DDG also appears in my native language (not English).

So how is it that DDG and other "non-tracking" services see my true location without "tracking" me? Even when my IP address is located somewhere else, what gives my location away in such an obvious way that DDG can still claim not to track me?

Anders
  • 64,406
  • 24
  • 178
  • 215
S. Rotos
  • 1,003
  • 2
  • 6
  • 5
  • 136
    Hint: what is your browser's preferred language? – Dmitry Grigoryev Dec 04 '17 at 21:13
  • Google cant track you while using a vpn, it's the headers as others said maybe or maybe your vpn just sucks. I use http://www.ufreevpn.com/ and http://mybestvpn.com/ to fool a software into believing that I'm living in UK so it let me in, google is fooled too. It redirects me to google.co.uk. I'm not saying that vpn makes you anonymous, I'm saying google isn't as great as you think, unless you have a gps enabled on your phone or windows 10 – Lynob Dec 04 '17 at 22:31
  • 37
    @Lynob Why couldn’t Google track you when you’re using a VPN? A VPN doesn’t block cookies. – Steve Dec 05 '17 at 05:04
  • 10
    It annoys me that google is shown in the language of whatever country I choose as my VPN's exit. The exact opposite of the OP. – Mawg says reinstate Monica Dec 05 '17 at 07:28
  • @Steve I didn't say it couldn't track you (maybe i did but didn't mean it) I meant to say what Mawg said – Lynob Dec 05 '17 at 07:35
  • 22
    If you live in London, and your VPN is set to make you appear in Los Angeles, you are the same as a Londoner who took his laptop to Los Angeles and uses it there. You will still carry tons of cookies with you on your laptop that were created in London. – gnasher729 Dec 05 '17 at 08:15
  • 15
    Language != country. Duckduckgo isn't implicitly or explicitly doing anything with your location and simply honors your language preference. Many websites conflate the two, ignore the language preferences and redirect you to a different version of the site based on the location, which I find very annoying. – Relaxed Dec 05 '17 at 09:22
  • The other answers about browser language settings are likely correct, but I will draw your attention to a tangential question. You can also be tracked by a process known as browser fingerprinting. To check if you are unique, see here: https://amiunique.org/ You can get additional Tor packs to mitigate this risk. – Sentinel Dec 05 '17 at 06:18
  • This question is not about different ways to track a user. It is about showing the correct language without validating the claim of not tracking the user. – Steffen Ullrich Dec 05 '17 at 06:37
  • From the question, it is not clear whether the user is worried about being tracked by Google or DDG, and uses as an indicator, the fact that Google / DDG seems to know his language despite VPN, or whether he's "annoyed/surprised/..." not to be able to use Google/DDG in another language. I remember, when I had my (IPv6) problem, that I was worried about tracking, not about the language. The language was simply an indicator. So I do think that the above answer is useful to some possible aspect of the question. – entrop-x Dec 05 '17 at 06:50
  • Tip: Use [Simple Sniff](http://simplesniff.com/) to see what your HTTP **Request** headers are. – dotancohen Dec 06 '17 at 08:49
  • Btw, if you *really* want to appear to be from different country, it is a good idea to set the appropriate timezone in OS settings. Too many people forget to do that, and it is easily detectable with javascript. – user1643723 Dec 07 '17 at 02:52
  • Could be a DNS leak. Did you change your DNS from the default? – Ne Mo Dec 08 '17 at 12:56

3 Answers3

185

One possible explanation is that DuckDuckGo is using the headers that are sent in your request to determine their display. For example, it is very common to use the Accept-Language header to determine in which language a webpage should be displayed. This header is set by default in all modern browsers based on the language preference settings. My browser, as an example, sends Accept-Language: en-US for all requests, letting the target site know that they should attempt to send back US based English if possible. This does not require any sort of tracking to be used.

If you visit https://duckduckgo.com/settings you can see what the language settings are. The default language is Browser preferred language

PunPun1000
  • 1,385
  • 1
  • 9
  • 7
  • 22
    I just tested changing the Browser's language to set this header, and DuckDuckGo does respond to it. For completeness, there is also a related JavaScript API under: `navigator.language` and `navigator.languages` – Alexander O'Mara Dec 04 '17 at 20:15
  • 13
    Yes, this was the issue. I tried another browser where my language is set as English and now DDG changed to English as well. Thank you! – S. Rotos Dec 04 '17 at 21:07
  • 80
    More of a feature than an issue. I hate when websites switch which language they show pages in because my of VPN – Qwertie Dec 05 '17 at 00:07
  • 16
    @Qwertie I actually hate when websites switch which language they show pages in for any reason. – Peter Dec 05 '17 at 13:35
  • 4
    Along these lines, @S.Rotos, you should have a look at [your browser fingerprint](https://amiunique.org/) after taking any security precautions you normally take - you may be rather more trackable than you thought. – E.P. Dec 05 '17 at 23:01
  • 17
    _"it is very common to use the Accept-Language header to determine in which language a webpage should be displayed,"_ which is exactly what they should do. Sadly, it seems even more common for sites to completely ignore the Accept-Language header and choose the language based on unreliable methods such as IP geolocation. – Dave Sherohman Dec 06 '17 at 12:01
  • 1
    ps, major browsers tend to set default preferred language based on what keyboard layout you got. (specifically Firefox and Chrome) – user1067003 Dec 06 '17 at 19:10
  • 4
    @Peter Honestly, it bugs me far more when I encounter a website that *has* alternative languages but doesn't default to one of them when it matches the accept language header. Like seriously, I'm grateful they took the time to translate their site in to English but it would be even better if I didn't have to locate the button to switch to it. – Kaithar Dec 07 '17 at 02:18
  • @DaveSherohman which is why I sometimes get all my webpages in czech, even though I don't speak a single word of it – Christian Dec 07 '17 at 14:03
  • @DaveSherohman The reason many sites go with geolocation is because the contents are not exactly the same between the languages. The services offered in each country vary slightly, so even if you were able to read the pages in the other language, they may not be applicable to your physical location. I agree there are better ways to handle it, but it can't be handled using the Accept-Language header alone. – さりげない告白 Dec 08 '17 at 01:14
  • 1
    @雰囲気読めない人 - Those are two different things. You're correct that geolocation may be necessary to determine which services are offered, but they should always be offered in the language specified by Accept-Language if that language is available for the set of services offered. You can't reliably assume a user's language based on their location, nor their location based on their language. – Dave Sherohman Dec 08 '17 at 10:34
47

I had the same problem: Google always responding in my native language, even though I used a VPN elsewhere in the world. I wiped all cookies and so on....to no avail... and then I found that I had an IPv6 leak! Google was using IPv6, and saw my home IP as usual. It wasn't "tracking" me, I just contacted Google straight around my VPN.

Do the test here: http://ipv6leak.com/

When I blocked ipv6, google responded in the language of the country of the VPN address.

Maybe you have a different problem, but have you checked this ?

entrop-x
  • 1,017
  • 6
  • 9
  • 1
    This does not seem to be the problem; the link you provided displays the IP address of my VPN. – S. Rotos Dec 04 '17 at 20:25
  • 4
    All the better for you then ; you had a different issue. The symptoms just were the same. – entrop-x Dec 04 '17 at 20:30
  • 3
    And why wouldn't it? Since when is the language you speak determined by your location? – hobbs Dec 04 '17 at 22:35
  • 1
    @hobbs The question wasn't so much _why_ it should/shouldn't do this, but _how_ given the use of a VPN and DDG's promise not to track. As now confirmed, the "how" is the `Accept-Language:` header that (most) browsers send. – TripeHound Dec 05 '17 at 10:27
  • That ipv6leak.com site appears to be broken. Do not trust its results. – Michael Hampton Dec 05 '17 at 23:38
10

I think @punpun1000 is right, you can easily test your browser language by visiting this website - https://browserleaks.com/ip or just simply run this JavaScript code:

alert(navigator.language);//works both in Mozilla and chrome
alert(navigator.language);//works both in Mozilla and chrome
alert(navigator.userLanguage);// Works in IE

More about regions and languages visit https://duck.co/help/settings/regions and https://duckduckgo.com/params

Mirsad
  • 10,005
  • 8
  • 33
  • 53
  • 6
    FYI: `window.navigator` is the same as `navigator` (excluding any funny business). The former is just accessing the object via a property of the global object. – Alexander O'Mara Dec 05 '17 at 01:47