A minimal but honest keyword rank tracker: query Google through a SERP API, find your domain's position for each keyword, append to CSV, alert on movement. No Search Console lag, no per-seat SaaS pricing — a script and a cron job.
import requests
resp = requests.post(
"https://app.quantumproxies.io/api/v1/scraper/serp",
headers={"Authorization": "Bearer qp_live_YOUR_KEY"},
json={"query": "residential proxies", "engine": "google", "country": "us", "num": 20},
)
for hit in resp.json()["organic"]:
if "yourdomain.com" in hit["link"]:
print(f'rank {hit["rank"]}: {hit["title"]}')
break
else:
print("not in top 20")Your logged-in browser gets personalized, geo-biased results. Rank tracking needs neutral, per-country SERPs — which is exactly what the API returns: each query exits from a clean residential IP in the target country with no cookie history. Track country="us" and country="de" separately; they genuinely differ.
rank_tracker.py:
keywords.txt— one keyword per line- appends
date, keyword, country, rank, urltoranks.csv - prints ▲/▼ movement vs. the previous run
QP_API_KEY=qp_live_... DOMAIN=yourdomain.com python rank_tracker.py
Run it daily from cron/GitHub Actions and ranks.csv becomes your position history — plot it with anything.
Rank tracking is bursty: 50 keywords × 2 countries × daily = ~3,000 searches/month. Per-search pricing (no monthly tier) is what makes a DIY tracker cheaper than rank-tracker SaaS. Searches run on the QuantumProxies SERP API — Google/Bing/DuckDuckGo as JSON, docs here, keys at app.quantumproxies.io/api-keys.