Je rankings bestaan niet in een vacuüm — ze bewegen omdat concurrenten bewegen. Het vastleggen van de hele SERP voor je zoekwoorden onthult wie wint, wie nieuw is, en welke features (snippets, packs) de pagina bezitten. Hier is hoe, met serp.cheap.
Leg de volledige resultatenpagina vast
import requests, datetime
def serp_snapshot(keyword, gl="us"):
data = requests.post(
"https://api.serp.cheap/v1/search",
headers={"X-API-Key": "YOUR_KEY"},
json={"q": keyword, "gl": gl},
timeout=30,
).json()
return {
"date": datetime.date.today().isoformat(),
"keyword": keyword,
"ranking": [(r["position"], domain_of(r["link"])) for r in data["organic"]],
}
def domain_of(url):
from urllib.parse import urlparse
return urlparse(url).netloc.replace("www.", "")
Detecteer wijzigingen
Sla snapshots op en vergelijk opeenvolgende dagen:
def new_entrants(today, yesterday):
seen = {d for _, d in yesterday["ranking"]}
return [(pos, d) for pos, d in today["ranking"] if d not in seen]
Dat brengt concurrenten naar boven die net in de topresultaten zijn doorgebroken voor een zoekwoord dat je belangrijk vindt — een vroeg signaal dat een alert waard is.
Wat te volgen
- Aandeel in de top 10 per concurrent in de tijd.
- Nieuwkomers die op de pagina doorbreken.
- Positievolatiliteit — zoekwoorden waar de SERP vaak herschikt.
- SERP-features — volg of een featured snippet of pack organisch naar beneden duwt.
Houd het goedkoop
Het is één request per zoekwoord per markt. Dagelijkse monitoring van 200 zoekwoorden ≈ $0.12/dag fresh, minder met cache hits. Geen SaaS-kosten per zoekwoord, en je bezit de historische data zelf.