thisago's blog


"Opting out" DuckDuckGo search result click tracking

Table of Contents

Despite some search-related ad search results, DuckDuckGo implements a redirect-based tracking for search results, which looks like:

Concerning this annoyance, an convenient config you can use while surfing lite.duckduckgo.com is the kd GET parameter.

If you want to disable "safe search" as well, use kp.

Parameters Table

See below reference table for the more relevant query parameters. It was sourced from their official documentation: How To Use URL Parameters To Change Your DuckDuckGo Search Settings - DuckDuc…

Name Parameter Values
Safe Search kp 1 for On; -1 for Moderate; -2 for Off
Redirect kd 1 for On; -1 for Off
Advertisements k1 1 for On (default); -1 for Off

Final URL

const params = new URLSearchParams({
  kd: -1, // Disable tracking redirect
  kp: -2, // Disable safe search
  k1: -1, // Disable ads
  q: "your query here"
});
return "https://lite.duckduckgo.com/lite/?" + params
'https://lite.duckduckgo.com/lite/?kd=-1&kp=-2&k1=-1&q=your+query+here'

Now, you can configure your browser! Examples:

  • Emacs EWW:

    (setq eww-search-prefix "https://lite.duckduckgo.com/lite/?kd=-1&kp=-2&k1=-1&q=")
    
  • Chawan:

    [omnirule.ddg]
    match = '^ddg:'
    substitute-url = '(x) => "https://lite.duckduckgo.com/lite/?kd=-1&kp=-2&k1=-1&q=" + encodeURIComponent(x.split(":").slice(1).join(":"))'
    

But note, the custom parameters might create a more specific fingerprint to your browsing, they'll be one of the few users that configures via GET parameters.

Either way, I think it's better than letting they know which search result I chose.

Outro

This might be another 1% in your journey, but a more private approach is to avoid searching on unified search engines as DuckDuckGo. If possible, search directly in the website you're aiming.

Thanks for reading, stay safe :p