Google knows what you search for. Every query you type, every link you click, every ad you ignore — it all feeds into a massive profile about you. For many self-hosters, that’s unacceptable. The good news? You can run your own private search engine that aggregates results from multiple sources without tracking you.
In this guide, we’ll compare the two most popular self-hosted search solutions in 2026: SearXNG and Whoogle. Both offer privacy-focused search, but they take different approaches. We’ll cover features, performance, Docker setup, and help you choose the right one for your homelab.
Why Self-Host a Search Engine?
Before diving into the comparison, let’s clarify what these tools actually do. Neither SearXNG nor Whoogle crawl the web themselves — that would require massive infrastructure. Instead, they act as privacy-respecting proxies to existing search engines.
Here’s what you gain by self-hosting your search:
- Zero tracking: No search history, no user profiles, no behavioral targeting
- No filter bubbles: Results aren’t personalized based on past behavior
- IP privacy: Search engines see your server’s IP, not yours
- No ads (or at least, no targeted ads based on your searches)
- Complete control: You decide which engines to query and how results are aggregated
- Censorship resistance: Bypass regional restrictions and content filtering
The trade-off? You lose some conveniences like search history sync and personalized results. For privacy-conscious users, that’s a feature, not a bug.
SearXNG Overview
SearXNG is a fork of the original SearX project, developed by the community after the original went unmaintained. It’s a metasearch engine that queries multiple search engines and aggregates results into a single, privacy-respecting interface.
Key Features
- Multi-engine aggregation: Queries Google, Bing, DuckDuckGo, Wikipedia, Reddit, GitHub, and 70+ other sources simultaneously
- Highly customizable: Configure which engines to use, adjust weights, enable/disable specific categories
- Themes and plugins: Modern UI with dark mode, customizable search preferences
- No JavaScript required: Works perfectly with JS disabled (though the experience is better with it enabled)
- Instance privacy: Can disable logs, metrics, and cookies entirely
- Tor-friendly: Works over Tor, supports onion services
- API access: JSON API for programmatic searches
- Result preferences: Save preferences locally (not on server) via browser cookies or URL parameters
Performance
SearXNG is fast when properly configured. Because it queries multiple engines in parallel, response times typically range from 0.5 to 2 seconds depending on:
- Which engines you enable (some are slower than others)
- Your server’s network connectivity
- Whether you’re using rate-limiting or caching
The resource footprint is light: ~150-300 MB RAM for a typical instance.
Privacy Model
SearXNG’s privacy approach is thorough:
- No logs by default (can be enabled for debugging)
- No cookies required (preferences stored client-side or in URL)
- Removes tracking parameters from result URLs
- No user identification — each search is anonymous
- Configurable forwarding: Can proxy images and results to prevent leakage
Whoogle Overview
Whoogle takes a simpler approach: it’s a lightweight, privacy-respecting proxy specifically for Google Search. The name is a portmanteau of “private” + “Google.”
Key Features
- Google-only interface: Mimics Google’s search experience without the tracking
- Minimal and fast: Extremely lightweight, single-purpose design
- No JavaScript required: Fully functional with JS disabled
- Ad-free: Strips all ads from Google results
- Dark mode: Built-in dark theme support
- Result filtering: Remove specific domains or keywords from results
- Custom bangs: DDG-style bang shortcuts (!w for Wikipedia, etc.)
- Tor support: Works seamlessly over Tor
- Image and video search: Proxy Google Images and Videos privately
- Search shortcuts: Quick access to Maps, News, Books, and more
Performance
Whoogle is fast. Because it only queries Google (the fastest search engine), response times are typically under 1 second. The resource footprint is minimal: ~50-100 MB RAM.
The simplicity is intentional — Whoogle does one thing well.
Privacy Model
Whoogle strips all tracking from Google searches:
- No cookies sent to Google
- No user agent tracking
- No search history stored
- Removes AMP links (loads original sites instead)
- Blocks JavaScript tracking
- Proxies images to prevent Google from seeing which results you click
SearXNG vs Whoogle: Feature Comparison
| Feature | SearXNG | Whoogle |
|---|---|---|
| Search engines | 70+ engines (configurable) | Google only |
| Result aggregation | Yes, merges multiple sources | No, single source |
| Customization | Extensive (engines, weights, themes) | Moderate (filters, preferences) |
| Resource usage | ~150-300 MB RAM | ~50-100 MB RAM |
| Speed | 0.5-2s (multi-query) | <1s (single query) |
| UI customization | Multiple themes, plugins | Minimal, Google-like |
| JavaScript dependency | Optional (better with) | None |
| API access | Yes (JSON, CSV, RSS) | No |
| Image search | Yes (multiple sources) | Yes (Google only) |
| Tor support | Yes | Yes |
| Setup complexity | Moderate | Simple |
| Active development | Very active | Active |
When to Choose SearXNG
Choose SearXNG if you:
- Want diverse sources: Aggregating multiple engines gives broader results
- Value customization: You want fine-grained control over search behavior
- Need specialized searches: Academic papers, GitHub repos, torrent sites, etc.
- Want API access: For automation or integration with other tools
- Prefer open ecosystems: More sources mean less dependence on Google
SearXNG is the power-user choice. It’s more complex to configure but far more versatile.
When to Choose Whoogle
Choose Whoogle if you:
- Prefer Google’s results: You like Google’s search quality, just not the tracking
- Want simplicity: Minimal config, fast setup, low maintenance
- Need speed: Single-query searches are consistently faster
- Run on limited hardware: Lower resource usage matters
- Don’t need variety: Google’s index is comprehensive enough for you
Whoogle is the pragmatist’s choice — maximum privacy with minimal effort.
Setting Up SearXNG with Docker
Here’s a production-ready Docker Compose setup for SearXNG.
Prerequisites
- Docker and Docker Compose installed
- A reverse proxy setup (Traefik, Caddy, or nginx) for HTTPS
- Basic Linux server (even a budget mini PC works great)
Docker Compose File
Create docker-compose.yml:
| |
Generate Secret Key
| |
Add it to a .env file:
SEARXNG_SECRET_KEY=your_generated_key_here
Configuration File
Create searxng/settings.yml:
| |
Launch
| |
Access SearXNG at http://localhost:8080. Configure your reverse proxy to expose it securely over HTTPS.
Customization Tips
- Enable more engines: Edit
settings.ymland setdisabled: falsefor engines like Bing, Brave, Qwant, etc. - Adjust weights: Higher weights prioritize certain engines in aggregated results
- Privacy hardening: Set
limiter: trueandimage_proxy: truein the server block - Disable telemetry: Ensure no outbound analytics are enabled in
settings.yml
Setting Up Whoogle with Docker
Whoogle is even simpler to deploy.
Docker Compose File
Create docker-compose.yml:
| |
Environment Variables Explained
WHOOGLE_CONFIG_DARK=1: Enable dark mode by defaultWHOOGLE_CONFIG_GET_ONLY=1: Use GET requests (better for privacy over Tor)WHOOGLE_CONFIG_NEW_TAB=1: Open results in new tabsWHOOGLE_CONFIG_VIEW_IMAGE=1: Enable direct image viewingWHOOGLE_CONFIG_BLOCK: Block specific domains from results (comma-separated)
Launch
| |
Access Whoogle at http://localhost:5000.
Customization Tips
- Block sites: Add domains to
WHOOGLE_CONFIG_BLOCKto filter out unwanted sites - Custom CSS: Mount a custom stylesheet in
/configfor UI tweaks - DDG bangs: Use
!w <query>for Wikipedia,!ghfor GitHub, etc. - Result preferences: Configure via the web UI settings page
Performance Optimization
SearXNG
- Enable Redis caching: Add a Redis container to cache results
- Disable slow engines: Some engines (Yacy, Gigablast) can be slow — disable them
- Tune timeouts: Lower
request_timeoutvalues insettings.ymlfor faster responses - Limit concurrent queries: Adjust
max_workersto balance speed and server load
Whoogle
- Use GET requests: Already enabled in the example config
- Enable caching: Mount a persistent volume for
/configto cache preferences - Reduce blocked sites: Overly aggressive blocking can slow down result processing
- Use a CDN: If exposing publicly, put Whoogle behind Cloudflare or similar
Security Hardening
Both engines should run behind HTTPS with a valid certificate. Here are additional hardening steps:
For Both
- Run as non-root: Both images support dropping privileges (already configured in examples)
- Limit network access: Use Docker networks to isolate search containers
- Enable rate limiting: Prevent abuse if exposing publicly
- Use Fail2Ban: Protect against brute-force attacks on the search endpoint
- Disable public access: If personal use only, restrict to local network or VPN
SearXNG-Specific
- Disable unsafe engines: Some engines (like torrent sites) may be risky depending on jurisdiction
- Enable HMAC verification: Prevents result manipulation
- Disable autocomplete: Reduces requests to third-party services
Whoogle-Specific
- Enable
GET_ONLYmode: Reduces fingerprinting risk - Disable config endpoint: Set
WHOOGLE_CONFIG_DISABLE=1to lock preferences
Mobile Access
Both SearXNG and Whoogle work great on mobile browsers. To improve the experience:
SearXNG
- Use the “simple” theme (better for small screens)
- Enable infinite scroll for easier browsing
- Install as a PWA (Progressive Web App) on iOS/Android
Whoogle
- Already mobile-optimized (mimics Google’s mobile UI)
- Minimal JavaScript means fast loading on slower connections
- Install as a PWA for app-like experience
Integrations and Workflows
Browser Integration
Set either engine as your default search:
Firefox:
- Visit your SearXNG/Whoogle instance
- Click the address bar
- Look for “Add Search Engine” at the bottom
- Select it and set as default
Chrome/Brave:
- Settings → Search Engine → Manage Search Engines
- Add new search engine
- URL:
https://your-instance.com/search?q=%s - Set as default
Alfred/Raycast (macOS)
Create a custom search workflow:
https://your-instance.com/search?q={query}
API Usage (SearXNG only)
SearXNG provides a JSON API for programmatic access:
| |
This returns structured JSON you can parse in scripts.
Public Instances vs Self-Hosted
Both projects maintain lists of public instances you can use without self-hosting. Why self-host instead?
Advantages of self-hosting:
- Trust: You control the server, no third-party can log your searches
- Performance: Dedicated resources mean faster responses
- Customization: Configure exactly which engines and features you want
- Reliability: No dependence on volunteer-run instances that may go offline
- Learning: Great project for understanding web privacy and containerization
When public instances make sense:
- You don’t have a homelab yet
- You want to test before committing hardware
- You’re okay with trusting a reputable public instance operator
If you choose a public instance, pick one with a clear privacy policy and ideally located in a privacy-friendly jurisdiction.
Troubleshooting Common Issues
SearXNG
Issue: Slow search results
- Fix: Disable slow engines, reduce timeout values, enable Redis caching
Issue: Engine errors in results
- Fix: Some engines require API keys or have rate limits — check logs and disable problematic ones
Issue: No results for certain queries
- Fix: Enable more engines, adjust weights, check if Google/Bing are enabled
Whoogle
Issue: “No results” error
- Fix: Google may be blocking your server’s IP — use a VPN or switch IPs
Issue: Images not loading
- Fix: Ensure
WHOOGLE_CONFIG_VIEW_IMAGE=1and check firewall rules
Issue: Rate limiting errors
- Fix: Google imposes limits — space out searches or use SearXNG instead
Cost Analysis
Running a self-hosted search engine is cheap:
Hardware
- Existing homelab: $0 (marginal electricity cost)
- Dedicated mini PC: $150-300 (one-time)
- Raspberry Pi 4: $50-80 (sufficient for Whoogle, tight for SearXNG)
Network
- Bandwidth: Negligible (search results are small)
- Domain: $10-15/year (optional, use local DNS instead)
- VPN: $0-5/month (optional, if you want to avoid IP blocking)
Total annual cost: $0-60 depending on setup.
Compare that to Google’s business model: they monetize your searches through advertising and data. Your data is worth far more than $60/year to them.
Conclusion: Which Should You Choose?
After testing both extensively, here’s my recommendation:
Choose SearXNG if:
- You want maximum privacy through diversity (multiple engines = less dependence on any single company)
- You value customization and control
- You search for specialized content (academic, code, torrents, etc.)
- You want API access for automation
Choose Whoogle if:
- You’re happy with Google’s results, just not their tracking
- You want the simplest possible setup
- Speed and low resource usage are priorities
- You’re new to self-hosting and want an easy win
Why not both? If you have the resources, run both. Use SearXNG for general searches and Whoogle as a fast fallback when you need Google-quality results quickly. They complement each other well.
Personally, I run SearXNG as my daily driver and keep a Whoogle instance for occasional use when I need Google’s knowledge graph or recent news. The Docker overhead is minimal, and having options is always good.
Final Thoughts
Self-hosting a search engine is one of the most impactful privacy wins you can achieve. Every search you make is a small piece of data about you — your interests, your questions, your concerns. Over time, that data builds a detailed profile.
By running SearXNG or Whoogle, you take that data back. You search on your terms, without surveillance, without ads, without algorithmic manipulation.
It’s not about hiding something. It’s about owning something: your privacy, your data, your digital autonomy.
If you’re already self-hosting Nextcloud, Vaultwarden, or Jellyfin, adding a private search engine is the next logical step. Your homelab becomes more than infrastructure — it becomes digital sovereignty.
Start with Whoogle if you want quick wins. Graduate to SearXNG when you’re ready for more control. Either way, you’ll never look at Google search the same way again.
Have questions about SearXNG or Whoogle? Drop a comment below or reach out on Twitter. Happy searching! 🔍