Le problème
L'optimisation des moteurs génératifs (GEO) nécessite de savoir quand et où les réponses générées par l'IA citent votre contenu. Google AI Overviews, Bing Copilot et Perplexity génèrent tous des citations différemment. Il n'existe pas de tableau de bord standard qui suit si votre domaine est cité sur ces surfaces de réponses génératives. Les équipes SEO ne peuvent pas mesurer les performances GEO car elles n'ont aucune donnée de citation à traiter.
La solution Scavio
Construisez un pipeline de surveillance qui interroge Scavio pour vos mots-clés cibles avec AI Overview activé, extrait les sources de citation de chaque réponse AI Overview et suit le taux de citation de votre domaine au fil du temps. Exécutez-le chaque semaine pour constituer un ensemble de données de tendance de citation. Comparez votre taux de citation à celui des concurrents. Signalez les mots-clés où vous avez perdu ou gagné des citations d'une semaine à l'autre.
Avant
Avant le pipeline, l'équipe SEO n'avait aucun moyen systématique de suivre les citations d'AI Overview. Ils effectuaient des vérifications ponctuelles manuelles en recherchant des mots-clés dans un navigateur, ce qui était lent, incohérent et ne pouvait pas produire de données de tendance.
Après
Après le déploiement du pipeline, l'équipe suit 500 mots-clés par semaine avec les données de citation pour leur domaine et 3 concurrents. Les rapports hebdomadaires montrent les tendances du taux de citation, les nouvelles victoires et les pertes. Les données orientent les décisions d'optimisation de contenu.
À qui cela s'adresse
Équipes SEO mesurant les performances de l'optimisation des moteurs génératifs. Spécialistes du marketing de contenu qui ont besoin de vérifier si leur contenu est cité dans les réponses générées par l'IA. Agences fournissant des rapports GEO à leurs clients.
Avantages clés
- Suivi automatisé hebdomadaire des citations AI Overview par mot-clé
- Tendances du taux de citation au fil du temps pour votre domaine et vos concurrents
- Alerte sur les gains et pertes de citations d'une semaine à l'autre
- 500 mots-clés surveillés chaque semaine pour moins de 2,50 $/semaine
- La sortie de données structurées alimente tout outil BI ou de reporting
Exemple Python
import requests
import json
from datetime import datetime
from pathlib import Path
API_KEY = "your_scavio_api_key"
def check_citations(keywords: list[str], target_domain: str) -> dict:
results = []
for kw in keywords:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": kw, "ai_overview": True},
timeout=15,
)
res.raise_for_status()
data = res.json()
ai = data.get("ai_overview")
cited = False
all_citations = []
if ai:
all_citations = [c.get("source", "") for c in ai.get("citations", [])]
cited = any(target_domain in c for c in all_citations)
results.append({"keyword": kw, "has_ai_overview": bool(ai), "cited": cited, "citation_sources": all_citations[:5]})
date = datetime.utcnow().strftime("%Y-%m-%d")
cited_count = sum(1 for r in results if r["cited"])
report = {"date": date, "domain": target_domain, "keywords_checked": len(keywords), "citation_count": cited_count, "citation_rate": f"{cited_count/len(keywords)*100:.1f}%", "details": results}
Path(f"geo_citations_{date}.json").write_text(json.dumps(report, indent=2))
return report
report = check_citations(["best search api", "web scraping api", "serp api pricing"], "scavio.dev")
print(f"Citation rate: {report["citation_rate"]} ({report["citation_count"]}/{report["keywords_checked"]})")Exemple JavaScript
const API_KEY = "your_scavio_api_key";
async function checkCitations(keywords, targetDomain) {
const results = [];
for (const kw of keywords) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "google", query: kw, ai_overview: true }),
});
const data = await res.json();
const citations = (data.ai_overview?.citations ?? []).map((c) => c.source ?? "");
results.push({ keyword: kw, cited: citations.some((c) => c.includes(targetDomain)), sources: citations.slice(0, 5) });
}
const citedCount = results.filter((r) => r.cited).length;
console.log(`Citation rate: ${(citedCount / keywords.length * 100).toFixed(1)}% (${citedCount}/${keywords.length})`);
return results;
}
await checkCitations(["best search api", "web scraping api"], "scavio.dev");Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA