Open Source · MIT · Self-hosted · October 2026

Open SERP Checker: a self-hosted Google rank tracker

Every other rank tracker assumes you want to monitor your own rankings. For me, rank tracking is the primary measurement instrument for SEO hypothesis testing. This tool exists so testing a hypothesis doesn't cost a plan upgrade; it costs the proxies you were going to buy anyway.

A self-hosted open source SERP checker. One Docker command, your proxies, your database. Published October 2026.

1. Set up an Open SERP Checker that works in less than a minute

Two setup paths. Docker is the fastest. Python is for when you want to hack on the code.

$ docker run -p 127.0.0.1:8000:8000 -v $(pwd)/data:/data ghcr.io/munni0001/open-serp-checker:latest # Opens on http://localhost:8000. The database lives in ./data in the directory you ran it from, so you can move it, back it up, or point any SQLite client at it.

Python (from source)

$ git clone https://github.com/munni0001/open-serp-checkercd open-serp-checkercp .env.example .envpip install -e .open-serp-checker # Python 3.11 or newer. Camoufox and dependencies are pulled on first run.

Pick your engine, pick your proxy

Bing works out of the box with no proxy. Add a keyword, pick bing, hit go. It uses your local IP, which Bing treats pretty generously (good for 15 to 50 keywords a day from the country your box physically lives in). Fine for a solo starter list.

The moment you need something more, you need a proxy. US Bing results from a European box? Proxy. Tracking real Google ranks? Proxy. Production-scale volume on either engine? Proxy. In every case, the setup is the same: paste residential proxy credentials into the project settings, change the engine dropdown, done. The first Google run also fetches the Camoufox browser (~500 MB) so budget a minute for the warm-up.

Full engine configuration is in docs/engines.md in the repo.

If you've used a rank tracker before, this is no different

Same process, same mental model: create a project, set defaults, add keywords, pick a schedule. The only real difference is you buy a residential proxy and paste the credentials into the project settings instead of trusting that your SaaS vendor's "unlimited" tier is actually unlimited.

If you're new to rank tracking

  1. Create a project. One project per site or per hypothesis you're testing.
  2. Set the project defaults. Country, language, device, engine. Everything downstream inherits these unless a specific keyword overrides them.
  3. Add keywords. Paste a list, upload a CSV, or add them one by one in the UI. Each keyword can override project defaults if the test needs it.
  4. Set the scrape schedule. Daily, weekly, hourly, or ad-hoc. The scheduler respects per-engine rate limits.
  5. Let it run. The database fills up. The dashboard renders. The CSV exports work. Open Claude, point it at data/ranks.db, and ask.

Every fetch leaves a raw HTML snapshot in data/snapshots/. If Google changes the SERP tomorrow, you can reparse last year's data without re-fetching anything.

2. What it does

Not a feature list for marketing. The surface area of the tool, flat and factual, with what's shipped and what's queued.

Scheduled keyword tracking

Cron, systemd timer, or the built-in scheduler. One keyword, 50, or 5000.

available

Geo-specific SERPs

Country, language, and device per keyword. Not a global switch.

available

Competitor tracking

Track your domains and your competitors side by side in the same project.

available

Rank history and deltas

Position over time, winners and losers, SERP features captured and diffed.

available

Dashboard built for rank tracking

Not a general SEO suite with ranks as a tab. Just ranks, done well.

available

Your data, your database

SQLite by default (or Postgres). Zero telemetry, zero third-party data flow.

available

Query it with Claude

SQLite file. Point Claude or any LLM at it and ask SEO questions in plain English.

available

AI Overview tracking

Capture AI Overview blocks, cited sources, and position when Google serves them.

coming soon

Keyword data integration

Volume, CPC, and intent from a provider of your choice, joined to your ranks.

coming soon

MCP server

Expose your rank database to Claude Desktop and other MCP clients as a tool.

coming soon

3. What's included

Five engines ship in the box. The scrapers need proxies for Google; the APIs don't.

Engine
Type
Needs proxy?
Best for
google
scraper
yes (residential)
Real Google ranks on your terms.
bing
scraper
no
Default engine. Free, no setup, 15 to 50 keywords a day.
searxng
scraper
no (needs self-hosted SearXNG)
Google results without touching Google directly.
dataforseo
API
no
Pay per query. Zero scraping setup.
serper
API
no
Pay per query. Cheaper DataForSEO alternative.

The scrapers (google, bing, searxng) are free to run; costs come from proxies if you use them. The APIs are managed services with a per-query bill.

Proxies for the Google engine

The Google engine needs rotating residential proxies to pass JS-challenge checks reliably. So far I have only measured one provider at the depth required to publish a number:

Provider
Cost per 1000 Google SERPs
Decodo (rotating port 10000)
~$0.70

Measured in the research set: ~138 KB wire per SERP after gzip, ~$0.0007 per successful SERP. Other prominent proxy providers will be benchmarked on the same workload and added here as those tests complete.

4. Why I built this

A lot of variables define success in SEO, and the same applies to AI-SEO now. I have always believed the dependable route to success is coming up with hypotheses based on data that is out there, and testing those hypotheses. To make that happen, you need a SERP checker without restrictions.

But every SERP checker in the market today is a rank tracker. They are made to monitor keyword ranking positions. You update your keyword list; they show your position changes over time. None of them, by default, are hypothesis testers or research assistants.

That is the conceptual reason I built this. There are measurable reasons too.

Rank trackers are too expensive, even just for rank tracking

Tool
Cost
Catch
Open SERP Checker
~$0.0007 / query
Your proxy bill. No caps, no vendor lock-in.
Whatsmyserp
$0.003 / query
200 keywords, daily.
SerpRobot
$0.002 / query
75 keywords, daily.
SerpWatch
$0.003 / query
No keyword cap, no daily cap.
Ahrefs
From $29 / month
You can't do much with the entry tier.
Serper.dev (API)
$0.001 / query
You pre-buy $50 of credits upfront.

Prices are per Google SERP query at smallest paid tier where applicable. Open SERP Checker's cost is measured on Decodo residential (rotating port 10000) from the research set.

The restrictions are what make the already-high prices worse. 200 keywords tracked daily, 75 keywords daily, these caps are the thing that pushes you up into a $100-plus-per-month plan when the cost of the underlying rank data is a fraction of a cent.

SERP APIs are the same shape, differently packaged. The cheapest option is Serper.dev at $0.001 per query, but you buy $50 of credits upfront. That is a tax on experimentation: before you have measured anything, you have committed money to a vendor.

Rank trackers are not customizable, and SERP APIs give you what they want to give you

SERP APIs are fine for a lot of workloads, but you get the fields the vendor decided to expose, in the shape the vendor decided to expose them in. If your experiment needs a format the vendor doesn't emit, you build an adapter around their API instead of building the experiment.

Rank trackers are worse. You get a dashboard, a few CSV columns, and whatever the vendor's reporting roadmap considers interesting. You end up shaping your experiment around what the vendor measures, not what Google actually renders on the SERP.

What this unlocks

Open SERP Checker is customizable. Raw HTML snapshots on disk, parsed JSON next to them, a SQLite database you can grep, join, export, or point Claude at. If an experiment needs a new field, you add it to the parser. If a competitor comparison needs a different shape, you write the SQL. The tool stays out of the way; the SEO question stays in focus.

Open SERP Checker costs less. Not because the cost disappears, but because the cost is a residential proxy bill (which you can minimize, swap, or share across tools) rather than a vendor's margin.

Open SERP Checker acts as a research assistant, not a monitoring dashboard. The data model is "every SERP I have ever fetched, forever, in a format you can query." Monitoring falls out of that for free. Hypothesis testing becomes the thing you can actually do.

5. How I got this working after 6 failed attempts

Scraping Google at a hobbyist budget is not easy. Before writing a line of this tool, I spent weeks measuring what actually works. The tool you are reading about is the artifact; the writeups below are the receipts.

Every design decision in Open SERP Checker (Camoufox as the default browser for the Google engine, parked-tab mechanism, residential-rotating as the recommended proxy mode) traces back to a measured result in one of those posts. The tool is not asking you to trust it. The research is the trust.

FAQ

Does this ship with proxies? +

No. Google tracking requires residential proxies you bring yourself. See the residential proxy reviews on this site for the ones that have been measured. Bing, SearXNG, and the paid API engines run without proxies.

Does it bypass CAPTCHA walls? +

No. When Google serves a sorry/index interstitial, the fetch fails, the error gets logged, and you try again later. See the two-layer blocks writeup linked in the sidebar for why this isn't a bug: pretending to pass a wall you didn't actually pass is worse than failing cleanly.

Does it do keyword research, backlinks, or site audits? +

No. One job: rank tracking. If you need keyword volume, CPC, backlinks, or site audits, pay for Semrush or Ahrefs. Keyword data integration (volume and CPC joined to your ranks) is on the queue in section 2.

Will it scale to 100-client agency volume? +

Not out of the box. It's a solo-operator and small-agency tool. 1000 scrapes a day across 10 to 15 projects is the reference workload the tool is being hardened against; higher is possible but you'll be doing some tuning.

Is this actually free to run? +

The tool is free (MIT). The scraping cost is not. Bing runs for free with no proxies and no accounts (good for 15 to 50 keywords a day). Google needs rotating residential proxies: measured at roughly $0.0007 per successful SERP on Decodo rotating, so a 500-keyword daily list is roughly $10 to $12 a month in proxy bills. SearXNG lets you avoid both at the cost of running a SearXNG instance yourself. DataForSEO and Serper are supported if you already have accounts and prefer to pay per query.

Why does Google specifically need proxies when Bing does not? +

Google is the aggressive one. Datacenter IPs get blocked at the TLS layer before the request even reaches /search, documented in the 2-layer blocks writeup linked in the sidebar. Bing has much weaker scraper detection and runs fine from a single IP at low volume. SearXNG routes you through a meta-search layer that avoids direct Google contact entirely.

What proxies work best for the Google engine? +

Residential, rotating, with a held connection. Decodo rotating port 10000 is what the research set was measured on: 20/20 pass rate on 20 queries, ~1.0s per query, ~138 KB wire per query. Cross-provider portability is still being measured; other prominent residential names will be benchmarked next and the numbers will land here.

How many keywords can I run on one box? +

Bing engine: hundreds per day on a small VPS with no proxy, limited by Bing's rate limits. Google engine: scales with your proxy budget and concurrency. The default rate is one request per second per keyword to stay under JS-challenge re-check thresholds. 1000 Google scrapes per day across 10 to 15 projects is the reference workload the tool is being hardened against right now.

How does this reduce cost vs. Semrush or Ahrefs? +

Only below a certain scale. If you track under ~2000 keywords and don't need keyword research, backlinks, or site audits, Semrush is overkill and this tool wins on cost. Above that or if you need the full SEO suite, Semrush's bulk pricing and feature set win. This is a rank tracker, not a replacement for a full SEO platform.

What's the license and can I use it commercially? +

MIT. You can run it in your agency, bundle it into client reporting, modify the parser for a specific SERP feature your competitors miss, and never share the modifications back. The only ask: do not strip the attribution from the README if you redistribute.

Does it track Bing or other engines? +

Bing is the default engine (no proxy, no key, works out of the box). SearXNG is supported if you run your own instance. DataForSEO and Serper are plumbed in as paid API engines. Yahoo and DuckDuckGo are not supported today: low demand, happy to accept a PR.

Why open source? +

Three reasons. First, data ownership: your rank history lives in your SQLite file, not in someone else's SaaS database that you churn out of. Second, SERP parsers break; being able to fix the parser for a new local pack layout the day it ships is worth more than any dashboard polish. Third, SEO is a testing discipline; if every hypothesis costs a plan upgrade, people run fewer hypotheses. Lower the tax, raise the testing volume.

Updates log

  • Initial publish. Docker image on GHCR, 5 engines (Google via proxy, Bing default, SearXNG, DataForSEO, Serper). Proxy benchmarks for other providers coming as those tests run.