Python pour le SEO : guide du débutant pour écrire des scripts avec ChatGPT ou Claude

  • Mis à jour
  • Temps de lecture 17 min
Python for SEO beginner guide, Marketer Coffee
Sommaire 18
  1. Que peut réellement faire Python pour un SEO ?
  2. Faut-il savoir coder avant de commencer ?
  3. Quelle est la configuration la plus simple pour exécuter des scripts SEO ?
  4. Comment formuler un prompt pour que ChatGPT ou Claude écrive un script SEO ?
  5. Exemple 1 : comment vérifier les codes HTTP d’une liste d’URL ?
  6. Exemple 2 : comment extraire les titres et les meta descriptions en masse ?
  7. Exemple 3 : comment trouver les mots-clés « à portée de main » dans un export de la Search Console ?
  8. Exemple 4 : comment voir quelles pages ont perdu des clics entre deux périodes ?
  9. Quelles tâches SEO automatiser ensuite, et lesquelles laisser aux outils ?
  10. Comment utiliser les assistants IA pour comprendre le code, et pas seulement l’écrire ?
  11. Quand est-il pertinent de faire appel à Marketer Coffee ?
  12. Questions fréquentes sur Python pour le SEO
    1. Python vaut-il la peine d’être appris pour le SEO en 2026 ?
    2. ChatGPT ou Claude peuvent-ils écrire des scripts SEO qui fonctionnent du premier coup ?
    3. Quelles bibliothèques Python un débutant en SEO doit-il apprendre en premier ?
    4. Comment obtenir plus de 1 000 lignes de la Search Console ?
    5. Peut-on lancer des scripts SEO sur n’importe quel site sans risque ?
  13. Que retenir sur Python pour le SEO ?

Python pour le SEO, c’est utiliser de courts scripts pour les tâches répétitives du référencement : vérifier des centaines d’URL, récupérer les titres et les meta descriptions, et découper les exports de la Search Console plus vite qu’un tableur ne le permet. Inutile de devenir développeur pour en tirer profit. En 2026, vous pouvez décrire la tâche à ChatGPT ou Claude en langage courant, obtenir un script fonctionnel, l’exécuter et vérifier le résultat.

La compétence qui compte n’est pas de mémoriser la syntaxe. C’est de savoir quoi demander, comment exécuter le code en toute sécurité et comment juger si le résultat est correct. Un débutant capable de lire un script de 20 lignes et de repérer un mauvais nom de colonne ira plus loin que quelqu’un qui copie du code à l’aveugle.

Ce guide vous donne une configuration qui prend une dizaine de minutes, un modèle de prompt qui produit des scripts exploitables et quatre exemples testés à lancer dès aujourd’hui : un vérificateur de codes HTTP, un extracteur de titres et de meta descriptions, un outil de détection des mots-clés « à portée de main » dans les données de la Search Console, et une comparaison de périodes qui montre quelles pages ont perdu des clics.

Chaque script ci-dessous a été exécuté sur des données d’exemple avant publication : vous pouvez donc le copier comme point de départ et l’adapter avec votre assistant IA.

Que peut réellement faire Python pour un SEO ?

Python est le plus utile lorsque vous répétez la même vérification sur de nombreuses lignes de données. Si une tâche vous prend plus d’une heure dans un tableur, ou si vous la faites chaque mois, elle peut faire l’objet d’un script.

Les tâches typiques accessibles aux débutants :

  • Vérifier les codes HTTP et les redirections d’une liste d’URL après une migration
  • Extraire les titres, meta descriptions, H1 ou balises canonical de nombreuses pages
  • Filtrer et regrouper les exports de la Search Console par requête, page ou motif
  • Comparer deux périodes pour trouver les pages ou requêtes qui ont perdu du trafic
  • Fusionner des données de différents outils sur une colonne d’URL commune
  • Récupérer plus de lignes de la Search Console que l’interface ne permet d’en exporter

Python ne remplace pas un crawler comme Screaming Frog ni une plateforme tout-en-un. Il comble les trous entre eux : la question ponctuelle à laquelle votre outil ne répond pas, ou le rapport que vous construisez de la même façon chaque mois. Notre liste des outils SEO que nous utilisons couvre le volet commercial de la boîte à outils.

Faut-il savoir coder avant de commencer ?

Non, mais il faut savoir lire le code suffisamment bien pour le vérifier. Les assistants IA écrivent rapidement du code plausible, et plausible ne veut pas dire correct. Un script peut tourner sans erreur et pourtant compter la mauvaise colonne ou ignorer la moitié de vos URL.

Un objectif réaliste pour un débutant : savoir ouvrir un script, trouver l’endroit où il lit le fichier d’entrée, voir quelles colonnes il utilise et comprendre ce qu’il produit en sortie. Ce niveau demande quelques soirées, pas des mois. Demandez à l’assistant d’ajouter des commentaires à chaque bloc et de vous expliquer toute ligne que vous ne comprenez pas.

Trois habitudes vous protègent de la plupart des erreurs :

  1. Testez d’abord sur un petit échantillon. Lancez le script sur 10 URL ou 20 lignes dont vous connaissez déjà la réponse.
  2. Contrôlez la sortie par sondage. Ouvrez trois résultats manuellement dans le navigateur ou dans l’export d’origine et comparez.
  3. Ne collez jamais de secrets. Ne donnez pas à un chat IA vos clés d’API, les mots de passe de vos clients ou des données personnelles issues de vos exports.

Quelle est la configuration la plus simple pour exécuter des scripts SEO ?

Vous avez deux bonnes options : un notebook dans le navigateur, sans rien installer, ou Python sur votre propre ordinateur.

Deux façons d’utiliser Python pour le SEO quand on débute
OptionIdéal pourÀ savoir
Google Colab (notebook dans le navigateur)Premières expériences, partage avec des collèguesAucune installation. Importez un CSV dans la session, exécutez les cellules une par une. Les fichiers disparaissent à la fin de la session sauf si vous les enregistrez dans Drive.
Python sur votre ordinateurRapports réguliers, fichiers plus volumineux, tâches planifiéesInstallez Python 3 depuis python.org, puis lancez pip install requests beautifulsoup4 pandas dans un terminal. Exécutez les scripts avec python script_name.py.
Éditeur de code (facultatif)Lire et modifier les scripts confortablementVS Code ou tout éditeur compatible Python met en évidence les erreurs et rend l’indentation visible.

Les exemples de ce guide utilisent trois bibliothèques. requests récupère les pages web. Beautiful Soup (paquet beautifulsoup4) lit le HTML et trouve les balises. pandas manipule des tableaux, ce que sont la plupart des données SEO. Toutes trois sont gratuites, largement documentées et bien connues des assistants IA, ce qui signifie que le code généré qui les utilise a tendance à être fiable.

Comment formuler un prompt pour que ChatGPT ou Claude écrive un script SEO ?

Décrivez l’entrée, la sortie et les cas limites, pas seulement l’objectif. « Écris un script Python pour vérifier mes URL » produit du code générique. Un prompt précis produit quelque chose que vous pouvez exécuter du premier coup.

Une structure de prompt qui fonctionne bien :

  1. Contexte : « Je suis SEO, pas développeur. J’utilise Python 3 en local. »
  2. Entrée : « J’ai un fichier urls.txt avec une URL par ligne. » Ou collez la ligne d’en-tête et deux lignes d’exemple de votre CSV.
  3. Tâche : « Pour chaque URL, enregistre le code HTTP sans suivre les redirections, ainsi que la cible de redirection s’il y en a une. »
  4. Sortie : « Enregistre un CSV avec les colonnes url, status, redirect_to_or_error, et affiche les résultats. »
  5. Cas limites : « Ne t’arrête pas si une URL dépasse le délai ou si le domaine ne se résout pas. Utilise un délai d’attente de 10 secondes. »
  6. Contraintes : « Utilise uniquement requests, Beautiful Soup et pandas. Ajoute un commentaire au-dessus de chaque bloc. »

Quand le script échoue, recollez le message d’erreur complet dans le chat et indiquez ce que vous avez lancé. ChatGPT comme Claude savent bien corriger leur propre code lorsqu’ils voient la trace exacte de l’erreur. Si la sortie semble fausse sans plantage, décrivez ce que vous attendiez et ce que vous avez obtenu, avec une ligne d’exemple.

Les quatre exemples ci-dessous ont été construits ainsi, puis allégés et testés.

Exemple 1 : comment vérifier les codes HTTP d’une liste d’URL ?

Ce script lit des URL dans un fichier texte, interroge chacune sans suivre les redirections et enregistre les codes HTTP dans un CSV. C’est la première chose à lancer après une migration, une mise à jour du plan de redirections ou un nettoyage de sitemap.

Créez un fichier nommé urls.txt avec une URL par ligne, enregistrez le script à côté sous le nom check_status.py et exécutez-le.

import csv
import requests

HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; MySEOCheck/1.0)"}

with open("urls.txt", encoding="utf-8") as f:
    urls = [line.strip() for line in f if line.strip()]

results = []
for url in urls:
    try:
        r = requests.get(url, headers=HEADERS, timeout=10, allow_redirects=False)
        results.append([url, r.status_code, r.headers.get("Location", "")])
    except requests.RequestException as e:
        results.append([url, "ERROR", type(e).__name__])

with open("status_report.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["url", "status", "redirect_to_or_error"])
    writer.writerows(results)

for row in results:
    print(*row, sep="\t")

Ce qu’il faut regarder dans la sortie :

  • 200 : la page se charge. Parfait pour les URL qui doivent être en ligne et indexables.
  • 301 ou 308 : redirection permanente. Vérifiez que la cible dans la troisième colonne est la bonne page et non la page d’accueil par défaut.
  • 302 ou 307 : redirection temporaire. Souvent le signe qu’une redirection permanente a été mal configurée.
  • 404 ou 410 : la page n’existe plus. Normal si c’est voulu, problématique si l’URL figure dans votre sitemap ou vos liens internes.
  • 5xx ou ERROR : problème de serveur ou de connexion. Relancez plus tard ; si cela persiste, signalez-le à votre développeur.

Le script définit allow_redirects=False volontairement. Si vous laissez requests suivre les redirections, une chaîne de 301 apparaîtrait comme un 200 et vous passeriez complètement à côté de la redirection. Demandez à votre assistant une version qui suit la chaîne et liste chaque saut si vous auditez des chaînes de redirections.

Restez raisonnable sur le volume de requêtes. Pour quelques centaines d’URL sur votre propre site, aucun souci. Pour des milliers, demandez à l’assistant d’ajouter une courte pause entre les requêtes, et ne lancez jamais un tel script sur un site que vous n’avez pas l’autorisation de tester.

Exemple 2 : comment extraire les titres et les meta descriptions en masse ?

Ce script récupère chaque URL, lit le HTML avec Beautiful Soup et enregistre le titre, la meta description et leur longueur. C’est un moyen rapide de repérer les snippets manquants, vides ou dupliqués sur un ensemble de pages, par exemple tous les produits d’une catégorie.

import csv
import requests
from bs4 import BeautifulSoup

HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; MySEOCheck/1.0)"}

def get_title_and_description(html):
    soup = BeautifulSoup(html, "html.parser")
    title = soup.title.get_text(strip=True) if soup.title else ""
    tag = soup.find("meta", attrs={"name": lambda v: v and v.lower() == "description"})
    description = tag.get("content", "").strip() if tag else ""
    return title, description

with open("urls.txt", encoding="utf-8") as f:
    urls = [line.strip() for line in f if line.strip()]

with open("meta_report.csv", "w", newline="", encoding="utf-8") as out:
    writer = csv.writer(out)
    writer.writerow(["url", "title", "title_length", "description", "description_length"])
    for url in urls:
        try:
            r = requests.get(url, headers=HEADERS, timeout=10)
        except requests.RequestException:
            continue
        if r.status_code != 200:
            continue
        title, desc = get_title_and_description(r.text)
        writer.writerow([url, title, len(title), desc, len(desc)])
        print(url, "|", title or "MISSING TITLE", "|", desc or "MISSING DESCRIPTION")

Deux détails le rendent plus robuste que le premier jet que produisent la plupart des assistants. D’abord, il trouve la meta description quelle que soit la casse, car certains thèmes de CMS génèrent name="Description". Ensuite, il ignore les réponses autres que 200, pour que les pages d’erreur ne polluent pas le rapport avec des titres comme « Page introuvable ».

Ouvrez meta_report.csv dans votre tableur et triez par title_length et description_length. Zéro signifie absent. Triez ensuite par titre pour trouver les doublons. La longueur n’est qu’un repère approximatif : Google réécrit les snippets quand il estime qu’un autre texte correspond mieux à la requête. Considérez donc cela comme un contrôle d’hygiène, pas comme un levier de positionnement. Notre guide du SEO on-page explique quoi écrire une fois que vous savez quelles pages retravailler.

Une limite : requests télécharge le HTML brut, donc les titres ajoutés par des scripts côté navigateur après le chargement n’apparaîtront pas. Pour les sites qui reposent fortement sur le rendu côté client, vous aurez peut-être besoin d’un navigateur headless, une étape au-delà du niveau débutant.

Exemple 3 : comment trouver les mots-clés « à portée de main » dans un export de la Search Console ?

Ce script lit le fichier Requêtes d’un export de la Search Console et liste les requêtes avec un nombre significatif d’impressions pour lesquelles votre position moyenne se situe entre 4 et 15. Ce sont souvent les gains les plus rapides : Google considère déjà la page comme pertinente, mais elle se trouve juste en dessous ou en bas de la première page.

Dans la Search Console, ouvrez le rapport Performances, choisissez une période, cliquez sur Exporter et choisissez CSV. Vous obtenez un fichier ZIP contenant plusieurs CSV. Ce script utilise Queries.csv.

import pandas as pd

df = pd.read_csv("Queries.csv")
df.columns = ["query", "clicks", "impressions", "ctr", "position"]
df["ctr"] = df["ctr"].str.rstrip("%").astype(float)

opportunities = df[
    df["position"].between(4, 15) & (df["impressions"] >= 500)
].sort_values("impressions", ascending=False)

print(opportunities.to_string(index=False))
opportunities.to_csv("striking_distance.csv", index=False)

Le script renomme les colonnes à l’import, car l’export utilise des libellés comme « Top queries » et stocke le CTR sous forme de texte avec un signe pourcentage. Convertir le CTR en nombre permet de trier et filtrer dessus. Si votre interface Search Console est dans une autre langue, les libellés des colonnes changent mais l’ordre reste le même : c’est pourquoi le script attribue les noms selon la position.

Ajustez les deux seuils à votre site. Une petite entreprise locale peut utiliser 50 impressions au lieu de 500. Une grande boutique peut resserrer la fourchette aux positions 5 à 12. Pour chaque requête de la sortie, trouvez la page qui se positionne, puis vérifiez si la requête trouve vraiment sa réponse dans le titre, le H1 et les premiers paragraphes.

Une limite à connaître : Google indique que les exports depuis l’interface de la Search Console sont tronqués à 1 000 lignes. Pour les sites plus importants, l’API Search Console renvoie jusqu’à 25 000 lignes par requête, et vous pouvez paginer au-delà avec le paramètre startRow. Configurer l’accès à l’API implique un projet Google Cloud et des identifiants : un bon deuxième projet une fois que ces scripts vous sont familiers.

Exemple 4 : comment voir quelles pages ont perdu des clics entre deux périodes ?

Ce script compare deux exports Pages de la Search Console et liste les pages ayant subi la plus forte baisse de clics, avec leur position moyenne avant et après. C’est le cœur d’un contrôle SEO mensuel, et c’est bien plus rapide que de rapprocher les lignes à la main.

Exportez le rapport Pages deux fois : une fois pour la période récente (enregistrée sous Pages_last.csv) et une fois pour la période précédente (Pages_prev.csv). Utilisez des périodes de même durée et, si votre activité est saisonnière, comparez avec les mêmes semaines un an plus tôt.

import pandas as pd

cols = ["page", "clicks", "impressions", "ctr", "position"]
now = pd.read_csv("Pages_last.csv", names=cols, header=0)
before = pd.read_csv("Pages_prev.csv", names=cols, header=0)

merged = now.merge(before, on="page", how="outer", suffixes=("_now", "_before"))
merged[["clicks_now", "clicks_before"]] = merged[["clicks_now", "clicks_before"]].fillna(0).astype(int)
merged["click_change"] = merged["clicks_now"] - merged["clicks_before"]

losers = merged.sort_values("click_change").head(10)
print(losers[["page", "clicks_before", "clicks_now", "click_change",
              "position_before", "position_now"]].to_string(index=False))

La jointure externe est importante. Une page qui a disparu de l’export récent affiche clicks_now à 0 et position_now vide, c’est exactement le type de page que vous voulez repérer. Une nouvelle page apparaît avec clicks_before à 0. Une simple RECHERCHEV dans un tableur masque souvent ces deux cas.

Lisez la sortie par paires. Des clics perdus avec une position dégradée signalent un problème de positionnement : examinez la page, ses concurrents et les changements récents. Des clics perdus avec une position stable signifient généralement moins de recherches ou une page de résultats modifiée, par exemple un nouvel AI Overview ou davantage d’annonces. Notre guide du suivi des résultats SEO explique comment distinguer ces causes.

Quelles tâches SEO automatiser ensuite, et lesquelles laisser aux outils ?

Automatisez par script les tâches propres à votre site ou à votre reporting ; achetez des outils pour les tâches qui exigent du volume ou une infrastructure.

Script maison ou outil dédié ?
TâcheScript PythonOutil dédié
Codes HTTP d’une liste d’URL connueOui, simple et rapideFaisable aussi dans n’importe quel crawler
Crawl complet du site avec renduPossible, mais long à construireMieux : un logiciel de crawl
Rapports Search Console personnalisésOui, idéal avec pandasLooker Studio pour les tableaux de bord
Croiser des données de plusieurs outilsOui, jointure pandas sur l’URLLes tableurs peinent à grande échelle
Suivi des positions dans le tempsDéconseilléMieux : un outil de suivi de positions
Regrouper des mots-clés par thèmeOui, avec l’aide d’un assistant IACertaines plateformes le proposent
Données de backlinksUniquement via une API payanteMieux : un outil de backlinks

Bons projets suivants : regrouper les requêtes selon un mot qu’elles contiennent, comme « prix » ou un nom de ville, et croiser les données de pages de la Search Console avec les conversions GA4 sur l’URL.

Comment utiliser les assistants IA pour comprendre le code, et pas seulement l’écrire ?

Demandez des explications au niveau dont vous avez besoin, puis testez votre compréhension en modifiant un seul élément. Collez un script et demandez : « Explique-le ligne par ligne à quelqu’un qui connaît Excel mais pas Python. » Posez ensuite une question précise, comme « Que faudrait-il changer pour extraire aussi le H1 ? », et faites la modification vous-même avant de demander la réponse.

La relance la plus précieuse est : « Qu’est-ce qui pourrait faire donner à ce script des résultats faux sans erreur ? » Elle pousse l’assistant à lister les défaillances silencieuses, comme un mauvais encodage, des lignes dupliquées ou un filtre qui supprime plus que prévu.

Quand est-il pertinent de faire appel à Marketer Coffee ?

Les scripts répondent aux questions ; ils ne décident pas quelles questions comptent. Marketer Coffee est une agence SEO IA et GEO, et nous utilisons ce type d’automatisation au sein de projets plus larges : nettoyages techniques, programmes de contenu et travail de visibilité IA. Deux résultats de nos clients, dans des secteurs sans rapport avec les exemples de ce guide :

  • Aldi.pl (commerce de détail). Les clics organiques sont passés de 367 127 à 852 724 par mois en 12 mois (+132 %) grâce aux contenus produits, au balisage Product, à une architecture allégée et à l’unification des données des magasins. Lire l’étude de cas Aldi.
  • Planika (cheminées design). Sept articles localisés pour les États-Unis ont fait passer un site que Google n’avait pas indexé à 1 052 visites américaines par mois, Ahrefs enregistrant 401 mentions dans Google AI Overviews, 136 mentions dans Perplexity et 20 mentions dans ChatGPT. Lire l’étude de cas Planika.

À qui nous convenons : les entreprises dotées de sites volumineux ou internationaux pour lesquelles le travail sur les données, le contenu et la recherche IA doivent suivre un plan unique. À qui nous ne convenons pas : quiconque a seulement besoin d’un script ; un assistant IA et ce guide vous serviront mieux et ne vous coûteront rien.

Si vous voulez voir comment les moteurs d’IA décrivent actuellement votre site, lancez notre audit gratuit de visibilité IA. Plus d’informations sur le service sur notre page SEO IA.

Questions fréquentes sur Python pour le SEO

Python vaut-il la peine d’être appris pour le SEO en 2026 ?

Oui, à un niveau basique. Avec ChatGPT ou Claude pour écrire l’essentiel du code, la valeur réside dans le fait de savoir quoi demander et comment vérifier le résultat. Quelques soirées de pratique suffisent pour automatiser les vérifications de codes HTTP, les audits de métadonnées et les rapports Search Console.

ChatGPT ou Claude peuvent-ils écrire des scripts SEO qui fonctionnent du premier coup ?

Souvent, si vous décrivez le fichier d’entrée, les colonnes de sortie et les cas limites. Testez toujours sur un petit échantillon dont vous connaissez la réponse, et recollez le message d’erreur complet à l’assistant en cas d’échec.

Quelles bibliothèques Python un débutant en SEO doit-il apprendre en premier ?

requests pour récupérer les pages, Beautiful Soup pour lire le HTML et pandas pour manipuler les données CSV et de tableur. Ces trois bibliothèques couvrent la plupart des scripts SEO pour débutants.

Comment obtenir plus de 1 000 lignes de la Search Console ?

L’export depuis l’interface est tronqué à 1 000 lignes. L’API Search Console renvoie jusqu’à 25 000 lignes par requête et permet de paginer avec startRow : un script Python qui utilise l’API peut donc récupérer des jeux de données bien plus volumineux.

Peut-on lancer des scripts SEO sur n’importe quel site sans risque ?

Lancez-les sur des sites qui vous appartiennent ou que vous avez l’autorisation de tester, gardez un volume de requêtes modéré, définissez un délai d’attente et ajoutez des pauses pour les longues listes. Ne partagez jamais de clés d’API ni de données clients dans un chat IA.

Que retenir sur Python pour le SEO ?

Commencez petit, testez sur des données que vous connaissez et laissez l’assistant IA taper le code pendant que vous réfléchissez. Les quatre scripts de ce guide couvrent les besoins les plus courants des débutants : codes HTTP, métadonnées, requêtes à portée de main et comparaisons de périodes. Chacun remplace une tâche récurrente dans un tableur et peut être enrichi un prompt après l’autre.

Si vous préférez une équipe qui associe ce type d’analyse à une stratégie de contenu et de recherche IA, réservez une consultation gratuite.

Sources : Aide Google Search Console, « Exporter des données directement depuis un rapport de la Search Console » (limite d’export de 1 000 lignes) ; Google for Developers, API Search Console, référence Search Analytics: query (rowLimit de 1 à 25 000, startRow) ; documentation officielle de requests, Beautiful Soup et pandas ; scripts testés par Marketer Coffee sur des données d’exemple avec Python 3.13 (novembre 2026) ; Marketer Coffee, études de cas Aldi et Planika (autres secteurs).

Leave a Reply

Your email address will not be published. Required fields are marked *

Vous voulez de tels résultats pour votre site ?

Réservez un appel gratuit de 30 minutes. Vous repartez avec trois opportunités SEO concrètes, que nous travaillions ensemble ou non.

Réserver un appel gratuit