Duckduckgo is the ubiquitous “private” search engine as a replacement for Google. I’ve been doubtful of it for a while given that it is US-based and obviously spends so much money on advertising, but too dissatisfied with the alternatives to give it too much thought, really.
I really started getting the heebie-jeebies when I saw billboards for Duckduckgo “private AI” on my drive home. The search results have started sucking (although that is the case in general when it comes to search engines), and the AI overview is shoved in your face just like Google is doing. I’ve put switching off long enough.
I did try a SearXNG instance at some point, but the results were so useless and I couldn’t be bothered to investigate at that time. I’ve also heard of Kagi, a paid search engine, but I’d rather not have all my internet searches directly tied to an account (I’m trying to de-Google after all), and paying for a search engine still isn’t something my brain can quite grasp (I’ve gotten over paid email, though, so who knows).
I landed on Startpage. As far as I understand it, it’s just anonymized Google. EU-based. I don’t know how much I trust it, but almost certainly more than DDG at this point. Also very nice that you can set all your settings to a URL instead of saving cookies - I think there is a similar feature with DDG, but I never bothered and certainly can’t be bothered now. So I decided to add Startpage as my default search engine.
Where I ran into issues was this: one of the settings I prefer is putting everything in a POST request instead of a GET request - so instead of visiting startpage.com/sp/search?query=startpage, you would visit startpage.com/sp/search. However, when you add a custom search engine to Firefox, typically you add %s as a placeholder in the URL (which would be sent as a GET request). This was fairly straightforward without the settings URL complicating things. I tried adding the customized URL, but the query either wouldn’t work, or I would be stuck on the Startpage main page with the query typed in awaiting me to press enter. Only slightly annoying, but annoying enough for me to fiddle with it more.
What I figured out is that Startpage simply accepts your search query, then navigates to startpage.com/sp/search, passing your settings (which were initially sent as a GET request from the bookmarked URL) and the search query as a POST request. On the backend, the POST request looks something like this:
query=<your+search+query>&prfe=<very_long_string_of_characters>
As it turns out, that long string of characters matches the settings string in the URL bar.
So, here’s how you add your customized Startpage as a search engine to Firefox:
- Go to Startpage settings and customize your settings. Make note of the URL that it generates on the right-hand side - you’ll want to grab everything after the question mark (e.g.
?prfe=ABC123...). - Go to Firefox Settings, Search, then add a search engine. For the URL, simply use
https://startpage.com/sp/search. - Expand Advanced settings. In the POST data field, add the following:
query=%s&prfe=<your_settings_string>
That’s it! Now you can search from the URL bar and your queries will be sent to Startpage with a) your preferred settings (such as disabling that godforsaken “instant answers” AI) and b) your search query in a POST request.
P.S. unfortunately, I will have to do some thinking for a solution like this on mobile. GrapheneOS’s Vanadium (hardened Chromium implementation) only supports the default search engines (Google, Yahoo, Bing, Yandex, and DDG), with no way to add a custom search engine.
EOF