Degoog Engines, autocomplete and transports
Where your results come from, where your suggestions come from, and how your server reaches either.
Engines
An engine is one source of results. Degoog runs every enabled engine for the current tab in parallel, then merges what comes back. A page found by three engines becomes one row that credits all three, and that overlap pushes it up the ranking.
None ship with the app. Install them from the Store first.
Types and tabs
Every engine declares one or more search types: web, images, videos, news, files, or anything a developer invents. The Engines tab groups your engines by their primary type, and those same groups become the tabs on your results page. Web always sorts first; the rest sort alphabetically until you reorder them.
An engine that serves more than one type shows an Extra types badge listing the others.
Order tabs at the top of the Engines tab opens a drag-and-drop list so you can put Images before News, or whatever suits how you search.
Configuring an engine
Configure on an engine card opens its settings. What is inside varies by engine (safe search, results format, API keys, instance URLs), but three options are added by Degoog to every engine, under Advanced:
| Option | What it does |
|---|---|
| Score | A ranking multiplier for this engine's results. Raise it for an engine you trust; lower it for one that returns noise. |
| Outgoing HTTP client | Which transport this engine uses to reach the internet. This is the setting that fixes most "blocked" failures. |
| Timeout (ms) | How long to wait for this engine before giving up. Leave blank for the default. |
Cards also carry small status badges:
- Configured or Needs configuration, so you can spot the engine that is silently doing nothing because it wants an API key.
- Requires a newer version of Degoog, when an extension declares a minimum version you have not reached.
- Server restart required, when the extension cannot fully load until you restart.
- An exposure note: either "Browser requests go through the server" or "Browser may contact external services directly". Worth reading if you care about what your own browser is talking to.
Your engines versus the instance's
Which engines are enabled is stored in your browser. The Engines tab has Save as instance defaults and Reset to instance defaults for publishing your selection as the starting point for new visitors, or throwing yours away and adopting theirs.
SearX compatibility layer
Degoog can run SearXNG's own engine files directly, inside Degoog, with no separate SearXNG instance. Enable it in Settings, Server, SearX compatibility layer and a SearX engines section appears in the Engines tab with an Add from SearX button.
It is marked experimental for good reasons, and the UI is upfront about them:
- Score, safe search, proxies, transports, and bangs all behave like a normally installed engine.
- The engine code comes from SearXNG upstream and is not maintained by Degoog. Use at your own risk.
- Image filters beyond safe search are not ported. Applying them to a SearX engine will usually return nothing.
- Some SearXNG engines borrow code from other engines. Degoog tells you which extra files it needs to download and asks before doing it. Those files stay behind the scenes and never show up as engines of their own.
Only engines known to be compatible are listed. Running these requires Python
on the host; the binary can be pointed elsewhere with
DEGOOG_PYTHON_BIN.
Autocomplete providers
These power the suggestion dropdown under the search box. They are separate from engines, and like engines, none are installed by default.
The official store publishes providers for Google, DuckDuckGo, Brave, Bing, Yahoo, and Qwant. The tab itself is deliberately simple: one toggle per provider, plus a Configure button when the provider has options.
The notable option is Rich suggestions, available on providers that support it. Turn it on and you get entity cards with a thumbnail and short description at the top of the dropdown, instead of plain text. Off by default.
Suggestions from all enabled providers are merged, so enabling six of them mostly gets you six copies of the same suggestion. One or two is usually plenty.
The Autocomplete delay in Server settings controls how long Degoog waits after you stop typing before asking for suggestions.
Transports
A transport is how your server makes an outgoing HTTP request. This matters because most search engines actively try to detect and block requests that do not come from a real browser.
You choose a transport per engine, in Configure, Advanced, Outgoing HTTP client. Four are built in:
| Transport | What it is |
|---|---|
| Fetch | Bun's native fetch, with SOCKS and HTTP proxy support. Always available. |
| Curl |
Shells out to the curl binary. A useful TLS fallback.
|
| Curl Fallback | Tries native fetch, then automatically retries with curl on 403, 429, 502, and 503. |
| Curl Impersonate |
Uses curl-impersonate to mimic Firefox's TLS fingerprint. Only offered
when the binary is on PATH.
|
The Store adds heavier options: FlareSolverr for Cloudflare challenges, Browserless and the stealth browsers CloakBrowser and Camoufox, and the two 4play transports that borrow a real browser session.
The Transports tab has a Test Connection button on transports that support it, which saves a lot of guessing when you are wiring up a service on another host.
Which transport an engine needs is not something you have to work out yourself. Tips and tricks has the known pairings, including the ones Google's engine settings explicitly ask for.
Proxies
Separately from transports, Degoog can send all server-side search requests through a list of proxy URLs, rotating between them. That is configured once for the whole instance in Server settings, and there is a Test proxy connection button that compares your direct exit IP against the proxied one and tells you plainly whether it is actually working.
How aggregation works
Each engine returns its own list. Degoog gives every result points based on where it appeared in that engine's list, then merges matching URLs together.
points = position points * engine score
| Engine position | Position points |
|---|---|
| 1st | 10 |
| 2nd | 9 |
| 3rd | 8 |
| ... | ... |
| 10th and lower | 1 |
Engine score is the Score setting in
Configure, Advanced. The default is 1. A score of
2 doubles that engine's points. A score of 0.5
halves them.
If two engines return the same URL, Degoog merges them into one result. The
points are added together, and each extra engine gives a small
+5 agreement bonus.
DuckDuckGo returns a URL 1st, score 1:
10 * 1 = 10
Brave returns the same URL 4th, score 2:
7 * 2 = 14
Same URL from two engines:
10 + 14 + 5 = 29
After that, Server domain scores are added or removed as plain points. So if
example.com|20 matches that 29-point result, it ends
at 49. If spam.example|-15 matches, it ends at
14.
In short: higher engine position helps, trusted engines can count more, overlap helps, and domain scores are the final nudge.