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?

  • 137
    Hint: what is your browser's preferred language? Commented Dec 4, 2017 at 21:13
  • 38
    @Lynob Why couldn’t Google track you when you’re using a VPN? A VPN doesn’t block cookies.
    – Steve
    Commented Dec 5, 2017 at 5: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
    Commented Dec 5, 2017 at 7:28
  • 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
    Commented Dec 5, 2017 at 8: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
    Commented Dec 5, 2017 at 9:22

3 Answers 3


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

  • 23
    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 Commented Dec 4, 2017 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
    Commented Dec 4, 2017 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
    Commented Dec 5, 2017 at 0:07
  • 16
    @Qwertie I actually hate when websites switch which language they show pages in for any reason.
    – Peter
    Commented Dec 5, 2017 at 13:35
  • 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. Commented Dec 6, 2017 at 12:01

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 ?

  • 1
    This does not seem to be the problem; the link you provided displays the IP address of my VPN.
    – S. Rotos
    Commented Dec 4, 2017 at 20:25
  • 4
    All the better for you then ; you had a different issue. The symptoms just were the same.
    – entrop-x
    Commented Dec 4, 2017 at 20:30
  • 3
    And why wouldn't it? Since when is the language you speak determined by your location?
    – hobbs
    Commented Dec 4, 2017 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
    Commented Dec 5, 2017 at 10:27
  • That ipv6leak.com site appears to be broken. Do not trust its results. Commented Dec 5, 2017 at 23:38

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

  • 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. Commented Dec 5, 2017 at 1:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .