Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is SearXNG?
SearXNG is a free, open-source metasearch engine that aggregates results from many search services while avoiding user tracking and profiling. According to its documentation, it can draw on up to 261 search services, does not require JavaScript or cookies, and can be used over Tor. You can either use an existing public instance or host your own.
What that means in practice
- Metasearch: Instead of sending your query to one provider, SearXNG queries multiple search services and merges the results into one page.
- Privacy-oriented: The project states that users are neither tracked nor profiled. Because JavaScript and cookies are optional, it also works in restrictive browsers or with scripts disabled.
- Self-hostable: If you don't want to rely on someone else's instance, you can install and run your own. The documentation covers container and script-based installation, plus web server setups such as NGINX and Apache.
- Extensible: New search engines can be integrated, and the project is maintained by an open community with translations and bug reporting open to non-experts.
Public instance vs. self-hosted
| Public instance | Self-hosted | |
|---|---|---|
| Setup effort | None; pick one from the instance list | Requires installation and ongoing maintenance |
| Trust model | You trust the instance operator | You control the server and logs |
| Privacy from your network | Depends on the instance and your connection | Can be combined with Tor or a private network |
| Best for | Quick, low-commitment use | Users who want full control or a private group instance |
A concrete scenario
Suppose you want to research a sensitive topic—a medical condition or a legal question—without building a profile tied to your usual account. You open a public SearXNG instance, run the query, and get aggregated results without JavaScript or cookies. If you'd rather not trust any third party, you install SearXNG on a small server and use that instead.
Next step
If you just want to try it, browse the public instances listed at searx.space. If you want control over logs and configuration, start with the Installation section of the documentation. As a general rule: choose a public instance when convenience matters most, and self-host when the queries themselves are sensitive enough that you don't want an operator to see them.
How do I set up my own SearXNG instance?
Setting up your own SearXNG instance means running the metasearch engine on hardware you control, so queries are not tied to a third-party instance. The official documentation covers the whole path: SearXNG Documentation. It describes SearXNG as a free metasearch engine that aggregates results from up to 261 search services, with no user tracking or profiling, and notes that JavaScript and cookies are optional. Because it is self-hosted, you choose whether to expose it only on your local network, to a few trusted users, or to the public internet.
The main decision is how you install it. The documentation groups the options under Installation, including a container route and a script-based route, plus a step-by-step installation. It also lists deployment components such as Granian, uWSGI, NGINX and Apache. In practice:
- Container installation is the quickest way to get a working instance and the easiest to update or remove. It suits people who already run Docker or Podman.
- Installation Script is for a conventional server install where you want the pieces placed for you.
- Step-by-step installation is for administrators who want to understand and control each component, for example when integrating SearXNG with an existing web server.
- uWSGI or Granian are application server choices; NGINX or Apache sit in front as reverse proxies. These are separate concerns, so you can mix them.
If you are unsure, start with the container route on a machine you can rebuild, confirm search works, then decide whether you need a reverse proxy, TLS, or a public hostname.
A practical setup sequence
- Choose a host: a small VPS, a home server, or a local machine. For a private instance, a local machine is often enough.
- Follow the installation method that matches your environment from the documentation's Installation section.
- Configure your instance using the Settings documentation. This is where you decide which engines are enabled and how the instance behaves.
- Put a reverse proxy in front if you want a domain name, HTTPS, or to share the instance. The docs list NGINX and Apache configurations.
- Test with a few queries. SearXNG aggregates results from many services, so a query may show results from several engines at once.
- Review SearXNG maintenance and the Administration pages for ongoing tasks such as updates, limiter settings, and favicons.
Trade-offs to weigh
| Choice | Good for | Cost or caveat |
|---|---|---|
| Public instance from searx.space | Trying SearXNG immediately | You rely on someone else's uptime and configuration |
| Self-hosted, private | Personal or household use | You handle updates and any breakage |
| Self-hosted, public | Sharing with others | Needs a reverse proxy, TLS, and attention to abuse controls |
| Container install | Fast setup and clean removal | Requires container tooling on the host |
| Step-by-step install | Fine-grained control | More moving parts to configure and maintain |
Privacy and anonymity notes
The documentation states that users are neither tracked nor profiled, and that SearXNG can be used over Tor for online anonymity. It also points to a page explaining why you might use a private instance and how SearXNG protects privacy. If anonymity is your goal, read those pages before exposing your instance, since a public instance with identifying logs or a recognizable domain can undercut the benefit.
Where to go next
Read the Installation section for your platform, then the Settings page to choose engines and defaults. If you want to contribute rather than just run it, the documentation lists ways to help, including translations, bug reports, and community discussion, and notes that no expertise is required.
How does SearXNG protect my privacy compared to Google or Bing?
SearXNG is a metasearch engine: it queries other search services on your behalf and returns the combined results, rather than running its own web index. The privacy difference comes from where your data goes and what gets stored.
What changes compared with Google or Bing
- No user tracking or profiling. The documentation states users are neither tracked nor profiled. There is no account, no search history tied to you, and no advertising profile built over time.
- JavaScript and cookies are optional. With Google or Bing, scripts and cookies are part of normal use. In SearXNG they are not required, which removes a large class of cross-site tracking and fingerprinting signals.
- Your IP reaches the engine, not the source. You connect to a SearXNG instance; that instance forwards queries to the underlying search services. Google or Bing see the instance's request, not yours.
- Tor support. SearXNG can be used over Tor, which hides your IP from the instance itself.
- Breadth instead of a single index. It aggregates results from up to 261 search services, so no single provider sees your full query pattern.
The trade-off to understand
The instance operator can still see your queries and your IP. That is why the documentation distinguishes between using a public instance and self-hosting. Public instances vary in logging policy, so the trust question shifts from "do I trust Google" to "do I trust this operator."
| Situation | Sensible choice |
|---|---|
| Occasional private searches, minimal effort | A well-maintained public instance |
| You want no third-party operator at all | Self-hosted instance |
| You want your IP hidden from the instance too | Access over Tor |
| You need Google-grade result coverage for niche queries | Expect some gaps; metasearch depends on upstream services |
Next step
If you want a public instance, browse the list at searx.space and pick one with a stated no-logging policy. If you would rather not trust any operator, follow the installation section of the documentation and run your own — the project lists container, script and step-by-step installation paths, so you can choose based on your comfort with server administration. Related projects worth knowing: SearXNG for the project itself and GitHub for the source repository and issue tracker.
How can I integrate a new search engine into SearXNG?
SearXNG treats each source as an "engine" module, so integration means writing a small Python file that tells SearXNG how to query a site and parse its results. The documentation lists "easy integration of search engines" as a core feature and ships an "Engine Implementations" section under Developer documentation, which is where the required interface is described.
What integration involves
- A request definition — the URL pattern, HTTP method, and any parameters (query term, page number, language, safe-search flag) the source expects.
- A response parser — code that extracts titles, URLs, and snippets from the returned HTML, JSON, or RSS.
- Engine metadata — categories (general, images, news, etc.), whether paging is supported, and which settings or API keys the engine needs.
- Registration — the engine must be listed in the settings so instances can enable it.
Because SearXNG is self-hosted and aggregates many services, a new engine usually runs alongside the existing ones rather than replacing them; its results are merged into the metasearch output.
A practical path
- Read the engine-implementation guidance in the developer docs, then copy the closest existing engine file as a template — a JSON API engine is far easier than one that scrapes HTML.
- Run it against a local instance and test with
!engine_name queryto isolate its results. - Check the site's terms and rate limits before enabling it broadly; a misbehaving engine can get an instance blocked.
If you only want to use existing engines rather than add one, start from a public instance listed at searx.space or follow the Installation pages to host your own.
How do I use the SearXNG search API?
The SearXNG Search API lets you query a SearXNG instance programmatically and receive results in machine-readable formats. It is documented under the "Search API" section of the official documentation at SearXNG Documentation. Because SearXNG is self-hosted, the API endpoint belongs to whichever instance you use, not to a central service.
Basic request pattern
Send an HTTP GET request to the /search path of an instance, with your query in the q parameter and a response format such as format=json:
GET https://<instance-host>/search?q=your+query&format=json
The documentation also covers other parameters for refining results, such as language, categories, engines, time range and pagination. Check the Search API page for the exact parameter names and accepted values, since these define what your client can control.
Practical points
- Instance choice matters. You can use a public instance listed at searx.space or run your own. Public instances may rate-limit, restrict formats, or disable the API; a private instance gives you predictable access and lets you configure which engines are enabled.
- Formats vary. JSON is the usual choice for scripts and applications. Other formats may be available depending on instance configuration, so confirm what your chosen instance supports rather than assuming.
- Respect limits and terms. Automated querying can burden an instance. If you need volume or reliability, self-hosting is the more sustainable route, which the documentation's Installation section explains.
When to self-host for API use
A concrete scenario: you are building a small research tool that runs a few dozen queries a day. A public instance may work, but if you hit rate limits or need specific engines enabled, installing SearXNG yourself removes those constraints and keeps your queries on infrastructure you control.
Next step: open the Search API page in the documentation and test one request against an instance you trust, starting with format=json and a single query, then add parameters one at a time.
How can I contribute translations or report bugs to SearXNG?
Use the project's own community channels rather than the documentation pages themselves. SearXNG describes itself as driven by an open community and explicitly says no expertise is needed to help with translations, report bugs and suggestions, or discuss with the community. The documentation's contribution pointers live under its developer documentation section, with "How to contribute" and "Translation" as the relevant entries.
Two separate jobs, two separate paths
- Translations: the docs list a dedicated Translation page under developer documentation, plus a "Custom message extractor (i18n)" page. This is where the mechanics of editing locale files and how strings are extracted are explained. Translation work suits people who are comfortable editing text files and following a review process, and it does not require understanding the search engine internals.
- Bugs and suggestions: the docs point to reporting bugs and suggestions as a general community activity. A useful report includes the instance you used, what you searched, what you expected, what happened, and whether the issue is reproducible — especially relevant here because results depend on which of the up-to-261 search services are enabled and on the instance's configuration.
Which route fits your situation
| Your situation | Better starting point |
|---|---|
| You spotted a mistranslated label or missing language | Translation page in developer documentation |
| You found a crash, wrong result, or broken setting | Bug report through the project's community channels |
| You are unsure whether it is a bug or misconfiguration | Discuss with the community first |
| You want to add a new search engine | "Engine Implementations" and "Easy integration of search engines" |
A concrete next step
If you run your own instance (the docs cover installation, including container and script-based setups), reproduce the problem there before reporting: it removes doubt about whether a public instance's configuration caused it. Then check whether the behaviour appears on a second public instance listed at searx.space. If it does, it is likely a genuine code issue rather than a local setting.
For orientation on the wider ecosystem while you work, the project's own documentation is at SearXNG Documentation, the instance list is at searx.space, and the upstream project it forked from in mid-2021 is at searx. If you prefer to contribute to a code-hosting discussion, the project's repository is the place maintainers expect patches and issue reports, but confirm the exact URL from the documentation's "How to contribute" page rather than assuming one.
User reviews (0)