ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un analyseur SEO local avec les données de l'API Google Maps
Tutoriel

Comment construire un analyseur SEO local avec les données de l'API Google Maps

Construisez un analyseur SEO local en Python qui analyse les fiches Google Maps et les résultats du pack local en utilisant l'API Scavio. Notez les entreprises sur les facteurs SEO locaux.

Obtenez une clé API gratuiteDocumentation API

Le SEO local détermine si une entreprise apparaît dans Google Maps et le pack local pour des requêtes géociblées. Un analyseur SEO local examine comment une entreprise se présente dans les résultats locaux : sa note, le nombre d'avis, la présence d'un site web, et son classement par rapport aux concurrents. Ce tutoriel construit un analyseur SEO local utilisant l'API Scavio qui interroge les résultats locaux pour des mots-clés ciblés, évalue la qualité de la fiche entreprise et produit un rapport de score SEO local.

Prérequis

  • Python 3.8 ou supérieur
  • bibliothèque requests installée
  • Une clé API Scavio
  • Un nom d'entreprise et un emplacement à vérifier

Parcours

Étape 1: Récupérer les résultats locaux pour les mots-clés cibles

Recherchez des mots-clés à intention locale pour lesquels votre entreprise devrait être classée. Le champ local_results contient les fiches Google Maps.

Python
def get_local_results(keyword: str, location: str) -> list[dict]:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"query": f"{keyword} in {location}", "country_code": "us"}
    )
    r.raise_for_status()
    return r.json().get("local_results", [])

Étape 2: Trouver l'entreprise cible dans les résultats

Scannez les résultats locaux pour trouver le nom de l'entreprise cible. Retournez sa position et les détails de la fiche si trouvée.

Python
def find_business(results: list[dict], business_name: str) -> dict | None:
    for i, r in enumerate(results):
        if business_name.lower() in r.get("title", "").lower():
            return {"position": i + 1, **r}
    return None

Étape 3: Évaluer la qualité de la fiche

Calculez un score SEO local basé sur la note, le nombre d'avis, la présence d'un site web et la disponibilité du numéro de téléphone.

Python
def score_listing(listing: dict) -> dict:
    score = 0
    factors = {}
    rating = float(listing.get("rating", 0) or 0)
    if rating >= 4.5:
        score += 30
        factors["rating"] = f"{rating}/5 (excellent)"
    elif rating >= 4.0:
        score += 20
        factors["rating"] = f"{rating}/5 (good)"
    else:
        factors["rating"] = f"{rating}/5 (needs improvement)"
    reviews = int(listing.get("reviews", 0) or 0)
    if reviews >= 100:
        score += 25
    elif reviews >= 20:
        score += 15
    factors["reviews"] = str(reviews)
    if listing.get("website"):
        score += 20
        factors["website"] = "present"
    else:
        factors["website"] = "missing"
    if listing.get("phone"):
        score += 15
        factors["phone"] = "present"
    else:
        factors["phone"] = "missing"
    return {"score": score, "max_score": 90, "factors": factors}

Étape 4: Générer le rapport SEO local

Exécutez l'analyseur sur plusieurs mots-clés et produisez un rapport SEO local complet.

Python
def local_seo_check(business: str, location: str, keywords: list[str]) -> None:
    print(f"Local SEO Report: {business} in {location}\n" + "=" * 50)
    for kw in keywords:
        results = get_local_results(kw, location)
        match = find_business(results, business)
        if match:
            scores = score_listing(match)
            print(f"\n{kw}: Position #{match['position']}, Score: {scores['score']}/{scores['max_score']}")
        else:
            print(f"\n{kw}: Not found in local results")

Exemple Python

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def get_local(kw: str, loc: str) -> list[dict]:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"query": f"{kw} in {loc}", "country_code": "us"})
    r.raise_for_status()
    return r.json().get("local_results", [])

def score(listing: dict) -> int:
    s = 0
    if float(listing.get("rating") or 0) >= 4.0: s += 25
    if int(listing.get("reviews") or 0) >= 50: s += 25
    if listing.get("website"): s += 25
    if listing.get("phone"): s += 15
    return s

if __name__ == "__main__":
    business = "Joe's Coffee"
    keywords = ["coffee shop", "best coffee", "cafe near me"]
    for kw in keywords:
        results = get_local(kw, "Austin, TX")
        match = next((r for r in results if business.lower() in r.get("title", "").lower()), None)
        if match:
            print(f"{kw}: #{results.index(match)+1}, score={score(match)}/90")
        else:
            print(f"{kw}: not found")

Exemple JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

async function getLocal(kw, loc) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query: `${kw} in ${loc}`, country_code: "us" })
  });
  const data = await res.json();
  return data.local_results || [];
}

async function main() {
  const business = "Joe's Coffee";
  const keywords = ["coffee shop", "best coffee"];
  for (const kw of keywords) {
    const results = await getLocal(kw, "Austin, TX");
    const idx = results.findIndex(r => r.title?.toLowerCase().includes(business.toLowerCase()));
    if (idx >= 0) {
      console.log(`${kw}: #${idx + 1}, rating: ${results[idx].rating}`);
    } else {
      console.log(`${kw}: not found`);
    }
  }
}
main().catch(console.error);

Sortie attendue

JSON
Local SEO Report: Joe's Coffee in Austin, TX
==================================================

coffee shop: Position #3, Score: 75/90
  rating: 4.7/5 (excellent)
  reviews: 234
  website: present
  phone: present

best coffee: Position #5, Score: 65/90

cafe near me: Not found in local results

Tutoriels associés

  • Comment scraper les données commerciales de Google Maps sans être bloqué
  • Comment construire un outil d'audit SEO avec analyse SERP et concurrentielle

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 ou supérieur. bibliothèque requests installée. Une clé API Scavio. Un nom d'entreprise et un emplacement à vérifier. 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

Meilleures API de données commerciales Google Maps (Mai 2026)

Read more
Best Of

Meilleure API SERP pour le SEO local en 2026

Read more
Use Case

Génération de leads locaux Google Maps

Read more
Use Case

Recherche SEO locale avec les données Google Maps

Read more
Glossary

Données structurées du Local Pack

Read more
Comparison

Google Places API vs SERP Local Pack API

Read more

Commencer

Construisez un analyseur SEO local en Python qui analyse les fiches Google Maps et les résultats du pack local en utilisant l'API Scavio. Notez les entreprises sur les facteurs SEO locaux.

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é