SEO Rank Tracker (standalone)
Eigenständiger Rank-Tracker für qrmaster.net über die Serper.dev
Google-SERP-API. Läuft komplett außerhalb der Next.js-App, greift auf keine
Datenbank zu und hat keine npm-Dependencies — nur Node 18+.
Ersetzt kostenpflichtige Rank-Tracker (Wincher, SerpRobot, ~10–25 €/Monat) für ein paar Cent pro Lauf.
Setup
cd seo-tracker
cp .env.example .env
# SERPER_API_KEY in .env eintragen
Nutzung
node track.mjs --dry-run # zeigt Keywords + Credit-Schätzung, ohne API-Calls
node track.mjs --limit 5 --num 20 # kleiner Testlauf (~10 Credits)
node track.mjs # voller Lauf
node track.mjs --num 20 # nur Top 20 prüfen — spart 80% Credits
# eigene Liste / eigene Ausgabedatei (z. B. für Ad-hoc-Checks)
node track.mjs --keywords test.txt --out test.csv --num 20
Ergebnisse werden an results.csv angehängt (eine Zeile pro Keyword pro Lauf).
Beim zweiten Lauf zeigt die Konsole automatisch die Δ-Veränderung gegenüber dem
vorherigen Durchlauf.
Keywords pflegen
keywords.txt, eine Zeile pro Keyword. # = Kommentar.
Land optional per Pipe anhängen:
qr code generator
qr code generator kostenlos | de
Credits im Blick behalten
Serper rechnet 1 Credit pro 10 Ergebnisse ab:
Tiefe (--num) |
Credits/Keyword | 43 Keywords | Läufe mit 2.500 Credits |
|---|---|---|---|
| 100 | 10 | 430 | ~5 |
| 20 | 2 | 86 | ~29 |
| 10 | 1 | 43 | ~58 |
Empfehlung: RESULTS_PER_QUERY=20 in der .env und wöchentlich laufen lassen.
Damit reicht das kostenlose Guthaben gut ein halbes Jahr, und Positionen jenseits
von Platz 20 sind ohnehin kaum handlungsrelevant.
Für die tiefe Sicht (Top 100) einmal im Quartal node track.mjs --num 100 laufen lassen.
Automatisierung
Wöchentlich, montags 6 Uhr:
Windows (Aufgabenplanung)
schtasks /create /tn "QR Master Rank Tracker" /tr "node C:\Users\timo\Documents\qrmaster\QR-master\seo-tracker\track.mjs" /sc weekly /d MON /st 06:00
Linux/Server (crontab)
0 6 * * 1 cd /pfad/zu/seo-tracker && node track.mjs >> tracker.log 2>&1
Ausgabe-Spalten
| Spalte | Bedeutung |
|---|---|
date |
Datum des Laufs |
keyword / country |
Abgefragte Query und Land |
position |
Position von qrmaster.net (leer = nicht in Top N) |
url |
Welche URL rankt |
top_competitor |
Domain auf Platz 1 (ausser eigener) |
ai_overview |
1 = Google zeigte AI Overview / Answer Box |
error |
Fehlermeldung, falls der Call fehlschlug |
Die Spalte ai_overview ist der Einstieg ins AEO-Tracking: Keywords, bei denen
Google eine AI-Antwort ausspielt, verlieren organische Klicks — die gehören
priorisiert in die AEO-Backlog-Liste in CLAUDE.md.
Blinder Fleck
Der Tracker sieht nur, was Serper sieht — Google-Rankings. Für echte Impressions/Klicks empfiehlt sich zusätzlich die Google-Search-Console-API (kostenlos, offizielle Daten).