Détecter les chutes de mots-clés automatiquement avec Python et l'API GSC

Fini le monitoring manuel. Écrivez un script Python léger pour être alerté instantanément par email en cas de baisse sur vos mots-clés majeurs.

Par Eddy Vuillaume 4 juin 2026
Détecter les chutes de mots-clés automatiquement avec Python et l'API GSC

Pour les dirigeants et directeurs marketing gérant de grands sites web, surveiller quotidiennement les positions et les clics de milliers de Mots-clés dans la Google Search Console est une tâche chronophage et sujette aux erreurs humaines. Une baisse d'audience sur une requête commerciale majeure peut passer inaperçue pendant des semaines, impactant directement votre chiffre d'affaires. La seule méthode professionnelle pour sanctuariser vos positions consiste à automatiser la détection de chutes de Mots-clés via un script Python connecté à l'API Search Console.

Dans ce guide Technique de niveau senior, nous fournissons le code Python prêt à l'emploi pour auditer automatiquement votre site chaque matin et recevoir une alerte immédiate en cas de anomalie.

1. Pourquoi utiliser l'API Search Console plutôt que l'interface standard


L'interface web classique de la Google Search Console est limitée à 1 000 lignes à l'exportation et exige une extraction manuelle fatigante. L'API officielle de Google supprime ces contraintes :

  • Accès de masse : Possibilité d'extraire jusqu'à 25 000 lignes de Mots-clés par requête d'API.
  • Finesse d'Analyse : Croisement instantané des dimensions (Requêtes, Pages, Pays, Appareils) sans limitation de filtrage.
  • Automatisation totale : Exécution programmée du script sur un serveur VPS ou une tâche cron pour surveiller vos cocons sémantiques 24h/24.

2. Code Python : Détecteur de chutes de performances


Voici le script Python complet. Il se connecte à l'API de Google, compare les clics des 3 derniers jours par rapport aux 3 jours précédents, isole les Mots-clés stratégiques ayant subi une chute de Trafic supérieure à 30%, et génère une alerte.

<code class="language-python"># script-gsc-monitor.py
import datetime
from googleapiclient.discovery import build
from google.oauth2 import service_account

1. Configurer l'authentification via clé de compte de service JSON


SERVICE_ACCOUNT_FILE = 'credentials-gsc.json'
PROPERTY_URI = 'sc-domain:whaz.fr' # Votre site Search Console

scopes = ['https://www.googleapis.com/auth/webmasters.readonly']
creds = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=scopes)
service = build('webmasters', 'v3', credentials=creds)

def get_gsc_data(start_date, end_date):
request = {
'startDate': start_date.strftime('%Y-%m-%d'),
'endDate': end_date.strftime('%Y-%m-%d'),
'dimensions': ['query'],
'rowLimit': 5000
}
response = service.searchanalytics().query(
siteUrl=PROPERTY_URI, body=request).execute()
return {row['keys'][0]: row['clicks'] for row in response.get('rows', [])}

2. Calculer les plages de dates (en évitant le délai de latence de 48h de GSC)


today = datetime.date.today()
end_recent = today - datetime.timedelta(days=2)
start_recent = end_recent - datetime.timedelta(days=3)

end_prior = start_recent - datetime.timedelta(days=1)
start_prior = end_prior - datetime.timedelta(days=3)

3. Récupérer les clics des deux périodes


clicks_recent = get_gsc_data(start_recent, end_recent)
clicks_prior = get_gsc_data(start_prior, end_prior)

4. Isoler les chutes critiques (> 30% et min 50 clics)


alerts = []
for query, prior_clicks in clicks_prior.items():
if prior_clicks >= 50: # Seuil minimum de clics significatif
recent_clicks = clicks_recent.get(query, 0)
drop_percent = ((prior_clicks - recent_clicks) / prior_clicks) * 100

if drop_percent >= 30.0:
alerts.append({
'query': query,
'prior': prior_clicks,
'recent': recent_clicks,
'drop': round(drop_percent, 1)
})

5. Afficher les alertes


if alerts:
print("⚠️ ALERTE : Chutes critiques de Mots-clés détectées !")
for alert in alerts:
print(f"- Requête : '{alert['query']}' | Avant : {alert['prior']} clics | Après : {alert['recent']} clics | Chute : -{alert['drop']}%")
else:
print("🟢 Tout est sous contrôle. Aucune anomalie détectée sur vos mots-clés stratégiques.")
</code>

3. Interpréter les résultats et réagir


Lorsqu'une alerte est levée, le script identifie les variations de performances significatives. Voici la procédure d'audit sémantique d'urgence à suivre :

Origine possible de la chuteMoyen de diagnostic dans GSCAction corrective recommandée
Pénalité ou désindexation TechniqueVérifier l'état de couverture de l'URL cible (Erreur d'Indexation).Soumettre à nouveau l'URL dans l'outil d'inspection Google.
Cannibalisation sémantiqueFiltrer par requête et observer si plusieurs pages s'affichent alternativement.Déployer une balise canonique ou fusionner les articles concurrents.
Perte d'un backlink d'autoritéAuditer le profil de liens récents dans Ahrefs ou Majestic.Recontacter le site partenaire pour corriger le lien brisé.

4. L'avis de l'expert Whaz : L'industrialisation de votre monitoring


Chez Whaz, nous militons pour l'automatisation des tâches rébarbatives à faible valeur ajoutée. Passer ses journées à croiser des fichiers CSV dans Excel est le meilleur moyen de passer à côté d'une baisse sémantique majeure. La Technique doit être au service de la décision stratégique.

En hébergeant ce script Python léger et en le couplant à un envoi automatique d'email ou d'alerte Slack, vous sanctuarisez la santé SEO de vos sites de services B2B. Vos équipes techniques et éditoriales sont alertées en direct dès que Googlebot montre des signes de désintérêt pour vos requêtes commerciales majeures, vous permettant de corriger le tir en quelques heures.

Demander mon audit vidéo offert

Analyse de votre site en 5 minutes • Gratuit & Sans engagement

Retour à la liste des articles