ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un suivi de classement d'agence avec une API de recherche
Tutoriel

Comment construire un suivi de classement d'agence avec une API de recherche

Construire un suivi de classement pour les clients d'agence SEO en utilisant une API de recherche. Suivre les positions Google quotidiennement sans outils de suivi dédiés.

Obtenez une clé API gratuiteDocumentation API

Les agences SEO paient 100 à 500 $/mois pour des outils de suivi de classement (Ahrefs, SEMrush, AccuRanker). Pour les agences qui suivent des volumes de mots-clés modérés, une API de recherche à 0,005 $/requête peut reproduire le suivi de classement de base à une fraction du coût. Ce tutoriel construit un suivi de classement quotidien pour les clients d'agence.

Prérequis

  • Python 3.8+
  • Une clé API Scavio
  • Mots-clés clients et URL cibles

Parcours

Étape 1: Définir les ensembles de mots-clés clients

Structurer les données clients avec des mots-clés et des domaines cibles.

Python
CLIENTS = [
    {
        'name': 'Client A',
        'domain': 'clienta.com',
        'keywords': ['crm software', 'best crm 2026', 'crm for startups', 'crm comparison'],
    },
    {
        'name': 'Client B',
        'domain': 'clientb.io',
        'keywords': ['project management tool', 'team collaboration app', 'agile project management'],
    },
]

Étape 2: Construire le vérificateur de classement

Rechercher sur Google chaque mot-clé et trouver la position du client.

Python
import requests, os

H = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

def check_rank(keyword: str, target_domain: str) -> dict:
    resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': keyword}, timeout=10)
    results = resp.json().get('organic', [])
    
    for i, r in enumerate(results):
        url = r.get('link', '')
        if target_domain in url:
            return {'keyword': keyword, 'position': i + 1, 'url': url, 'title': r.get('title','')}
    
    return {'keyword': keyword, 'position': None, 'not_in_top_results': True}

Étape 3: Exécuter le suivi quotidien

Vérifier tous les mots-clés d'un client et stocker les données historiques.

Python
import json
from datetime import date
from pathlib import Path

def daily_client_check(client: dict) -> dict:
    today = date.today().isoformat()
    results = []
    for kw in client['keywords']:
        rank = check_rank(kw, client['domain'])
        rank['date'] = today
        results.append(rank)
    
    # Store history
    history_file = Path(f"ranks_{client['name'].replace(' ','_').lower()}.json")
    history = json.loads(history_file.read_text()) if history_file.exists() else []
    history.extend(results)
    history_file.write_text(json.dumps(history, indent=2))
    
    return {
        'client': client['name'],
        'date': today,
        'tracked': len(results),
        'ranking': sum(1 for r in results if r.get('position')),
        'avg_position': sum(r['position'] for r in results if r.get('position')) / max(sum(1 for r in results if r.get('position')), 1),
        'results': results,
    }

Étape 4: Générer un rapport client

Créer un rapport récapitulatif montrant les changements de position dans le temps.

Python
def client_report(client_name: str, days: int = 7) -> dict:
    history_file = Path(f"ranks_{client_name.replace(' ','_').lower()}.json")
    if not history_file.exists():
        return {'error': 'No data found'}
    
    history = json.loads(history_file.read_text())
    dates = sorted(set(r['date'] for r in history))[-days:]
    
    report = {'client': client_name, 'period': f'Last {days} days', 'keywords': {}}
    for kw in set(r['keyword'] for r in history):
        kw_data = [r for r in history if r['keyword'] == kw and r['date'] in dates]
        if len(kw_data) >= 2:
            first = next((r['position'] for r in kw_data if r.get('position')), None)
            last = next((r['position'] for r in reversed(kw_data) if r.get('position')), None)
            if first and last:
                report['keywords'][kw] = {'current': last, 'change': first - last, 'trend': 'up' if last < first else 'down' if last > first else 'stable'}
    
    return report

Exemple Python

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

def check_rank(keyword, domain):
    r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': keyword}).json()
    for i, x in enumerate(r.get('organic',[])):
        if domain in x.get('link',''):
            return i + 1
    return None

Exemple JavaScript

JavaScript
async function checkRank(keyword, domain) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
    body: JSON.stringify({platform: 'google', query: keyword})
  });
  const results = (await r.json()).organic || [];
  const idx = results.findIndex(x => x.link?.includes(domain));
  return idx >= 0 ? idx + 1 : null;
}

Sortie attendue

JSON
A daily rank tracker that monitors Google positions for agency clients, stores historical data, and generates position change reports.

Tutoriels associés

  • Comment suivre les classements SEO quotidiennement avec l'API Scavio
  • Comment construire votre propre API de tracker de classement sans scraping

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.8+. Une clé API Scavio. Mots-clés clients et URL cibles. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Best Of

Meilleurs trackers de classement basés sur API pour le SEO en 2026

Read more
Best Of

Meilleures API de suivi de classement SEO en 2026

Read more
Solution

Construisez un suivi de classement local fiable avec l'API Scavio

Read more
Glossary

Paysage des fournisseurs d'API de recherche (2026)

Read more
Solution

Exécutez des vérifications de classement SEO pendant la nuit en mode batch.

Read more
Use Case

Workflow d'enrichissement de recherche n8n

Read more

Commencer

Construire un suivi de classement pour les clients d'agence SEO en utilisant une API de recherche. Suivre les positions Google quotidiennement sans outils de suivi dédiés.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité