Vos classements n’existent pas dans le vide — ils bougent parce que les concurrents bougent. Capturer toute la SERP de vos mots-clés révèle qui progresse, qui est nouveau et quelles fonctionnalités (extraits, packs) occupent la page. Voici comment, avec serp.cheap.
Capturer la page de résultats complète
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.", "")
Détecter les changements
Stockez les instantanés et comparez les jours consécutifs :
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]
Cela fait remonter les concurrents qui viennent de percer dans les premiers résultats pour un mot-clé qui vous tient à cœur — un signal précoce qui mérite une alerte.
Quoi suivre
- Part du top 10 par concurrent dans le temps.
- Nouveaux entrants qui percent dans la page.
- Volatilité des positions — les mots-clés dont la SERP se réorganise souvent.
- Fonctionnalités SERP — vérifier si un featured snippet ou un pack repousse l’organique vers le bas.
Gardez-le pas cher
C’est une requête par mot-clé et par marché. La surveillance quotidienne de 200 mots-clés ≈ 0,12 $/jour en frais, moins avec les hits de cache. Pas de frais SaaS par mot-clé, et vous possédez les données historiques.