étude de cas SEO programmatique retour d'expérience

SEO programmatique : comment j'ai publié 200 pages en 6h.

Retour d'expérience sur un déploiement de SEO programmatique : le niveau technique réel, ce qu'il faut mesurer, quand il ne faut surtout pas s'y lancer, et ce que Google a décidé de faire de mes pages.

Par Quentin Eischen 12 min de lecture

Le SEO programmatique a une réputation ambiguë. On entend parfois que c’est le levier qui permet à un site de passer de 10 à 10 000 pages sans se fatiguer, mais c’est aussi un très bon moyen de se faire désindexer.

Malheureusement, les deux sont vrais, surtout si on s’y lance sans réfléchir. Il y a quelques décisions importantes à prendre avant même d’écrire la première ligne de code. Voici ce que j’ai construit sur ce site, comment je l’ai fait, ce que je mesure, et aussi ce que je n’aurais pas fait si je savais ce que je sais maintenant.

Ce qu’est le SEO programmatique (et ce qu’il n’est pas)

Le principe est simple : vous prenez un tempalte de page, vous le croisez avec un jeu de données structuré, et vous générez autant de pages qu’il y a de lignes dans le jeu de données.

Un exemple que tout le monde connaît : les pages « restaurants à [ville] » de TheFork, ou « vol [ville A][ville B] » de Skyscanner. On créé la page une seule fois. En ajoutant des informations sur les villes, on peut dynamiquement publier des milliers ou dizaines de milliers de pages.

Ce n’est pas de la génération de contenu par IA à la chaîne. Ce sont deux sujets distincts qu’on confond souvent. Le SEO programmatique, c’est de la mise en page automatisée de données qu’on possède déjà. L’IA peut intervenir pour rédiger certaines portions, mais ce n’est pas le mécanisme principal, et c’est justement quand vous la mettez au centre du processus que les problèmes d’indexation commencent.

Google fait aussi la distinction. Générer 500 pages à partir d’un vrai jeu de données différenciant est généralement toléré. Par contre, générer 500 pages où seul le nom de la ville change relèverait de ce que Google appelle le scaled content abuse. La dernière grosse MAJ (au moment de l’écriture, c’est à dire juillet 2026) cible explicitement ce genre de manipulations algorithmiques. Il va donc falloir mesurer la variance réelle entre nos pages.

Comment ça fonctionne techniquement

C’est pas vraiment compliqué, mais je n’irai pas jusqu’à dire que c’est simple non plus. Il vous faut :

1. Une source de données. Cela peut être un fichier JSON, un CSV, un excel, c’est pas important. Il nous faut une base d’informations. Chaque ligne deviendra une page. Chaque colonne est une variable que le template pourra afficher.

2. Un template. Un fichier HTML dans lequel on place des marqueurs à la place du contenu variable. J’utilise Jinja2, le moteur de templates standard de l’écosystème Python. Mais votre IA préférée peut évidemment utiliser autre chose.

3. Un script de génération. Il lit les données, applique le template ligne par ligne, écrit les fichiers HTML sur le disque, puis met à jour le sitemap. Chez moi il fait environ 300 lignes, dont facilement la moitié est de la normalisation de données (accents, slugs, doublons de noms de communes).

Le niveau technique réel : si vous savez lire du HTML et utiliser une IA, vous êtes au niveau. Il n’y a ni base de données, ni serveur applicatif, ni framework. La sortie est un dossier de fichiers statiques que je dépose en FTP. C’est rustique : pas de publication automatisée parce que j’avais peur de casser un truc. Il n’y a rien à sécuriser, et l’hébergement coûte quelques euros par mois chez OVH.

Evidemment, on peut faire tout ça sans code. Avec Webflow couplé à Airtable, ou WordPress avec un plugin d’import en masse. Les alternativent fonctionnent, mais on paie en abonnement mensuel ce qu’on économise en apprentissage, et on perde en contrôle sur ce qui est généré. Sur un site de service, le choix statique se défend largement.

Le plus difficile, ce n’est pas le code. Le script a été écrit en une 2/3 jours à raison de quelques heures par jour. Générer Le jeu de données propre a pris au moins aussi longtemps. C’est une erreur assez classique, mais on sous-estime souvent le temps nécessaire pour collecter les données.

Bon voilà la méthode concrète, étape par étape

Voici la séquence que je mets en place sur les sites avec lesquels je travaille.

1. Choisir la variable qui porte une vraie demande

Le premier choix est le plus important. Sur quelle dimension va-t-on décliner ? Ville, secteur d’activité, cas d’usage, taille d’entreprise, logiciel ?

Pour décider, il y a une question simple : cette dimension apparaît-elle dans la façon dont les gens formulent leurs recherches ? « automatisation SEO Lyon » est une requête que les gens tapent. « automatisation SEO pour entreprise de 12 à 25 salariés », pas vraiment, même si le segment a du sens commercialement.

Ensuite on vérifie le volume. Peuu importe l’outil, l’important est d’avoir un ordre de grandeur.

2. Construire le jeu de données

C’est là qu’on met à profit notre formation en data. Pour chaque entrée, il vous faut au minimum :

  • les données factuelles (population, département, région dans mon cas)
  • au moins un élément de contexte non intéressant quelque chose qu’on ne peut pas déduire mécaniquement du nom de la ligne ;
  • de quoi générer une meta description distincte.

Le point °2 est important. Voici une règle simple: si une phrase de la page peut être produite par une simple substitution de variable, elle n’apporte rien. Exemple : Paris est une ville dynamique, et Toulouse est une ville dynamique, sont essentiellement la même phrase. Cela n’apporte rien et me rapproche de la pénalité Google. Chaque page doit contenir au moins un bloc que je n’aurais pas pu écrire sans avoir regardé cette ligne précise du jeu de données.

C’est laborieux mais c’est (à mon sens) ce qui fait la différence entre du SEO programmatique bien fait et mal fait.

3. Écrire le template

Il faut qu’il soit structuré comme une vraie page : un H1 qui contient la variable, une introduction contextualisée, une section de contenu de fond commune à toutes les pages (elle a le droit d’être identique, c’est de la documentation), une FAQ, un CTA. Si vous souhaitez ajouter plus de sections, vous pouvez.

Deux points techniques à surveiller : une balise canonique auto-référente sur chaque page (demandez à votre IA préférée ce que ça veut dire), et des données structurées cohérentes avec ce que la page annonce réellement.

4. Publier par vagues

C’est important. Le script gère l’état de publication : chaque ligne du jeu de données contient une variable ‘publiée’ pour savoir si la ligne a déjà été utilisée. De cette façon, je peux contrôler précisément le nombre de pages à publier.

Trois bénéfices :

  • Le risque est contenu. Si les vingt premières pages sont mal indexées ou déclenchent un signal négatif, je peux modifier le template et régénérer l’ensemble.
  • Ça ressemble à un site vivant. Un site qui passe de 8 à 208 pages en une nuit envoie un signal clair d’automatisation à Google. Un site qui grossit par paliers est plus réaliste.
  • Chaque vague devient une cohorte de mesure. C’est ce qui rend l’analyse d’indexation exploitable, on y reviens plus bas.

5. Soigner le maillage interne

Pas de pages orphelines. Chaque page générée pointe vers d’autres pages du cluster. Sur ce site c’est huit, sélectionnées par proximité géographique. Une page hub liste l’ensemble par région, et le sitemap ne contient que les pages réellement publiées.

Sans ce maillage, Google n’a que le sitemap pour découvrir les pages. Cela ajoute un peu de sûreté et de redondance, ce qui est une bonne chose.

6. Déployer et laisser reposer

Génération, upload, puis on ne touche plus à rien pendant 2/3 semaines. La tentation de retoucher les pages tous les trois jours est réelle, mais cela détruirait toute possibilité de lecture des résultats.

Ce que je mesure

Une erreur que j ‘ai beaucoup faite par le passé était de regarder le trafic à trois semaines et de conclure que ça ne marche pas. En réalité, le trafic est le dernier maillon d’une chaîne de cinq indicateurs, et il ne dit rien tant que les précédents ne sont pas au vert.

1. Le taux d’indexation. Combien de pages publiées sont effectivement dans l’index ? C’est le seul KPI qui compte les premières semaines. Quand on fait du SEO programmatique, on publie énormément de pages, mais la majorité ne sont pas forcément indexées. Visez un taux d’indexation d’au moins 20% dans les premières semaines.

2. Le délai d’indexation. Combien de jours entre la mise en ligne et l’entrée dans l’index ? Cet indicateur est bien plus informatif que le taux seul : il vous dit si vous êtes limité par la découverte, par le budget de crawl, ou par un jugement qualitatif. Plus c’est long, moins c’est bon signe.

3. Les impressions. Une fois que quelques semaines sont passées, on peut commencer à se demander si les pages apparaissent dans les résultats ? C’est le premier vrai signal que Google leur trouve une pertinence.

4. Les requêtes réellement déclenchées. À ne surtout pas confondre avec les requêtes cibles. Les pages que vous avez crées vont parfois apparaître pour des requêtes différentes de celles prévues à la base. C’est un signal important. A voir ensuite si vous décidez de le suivre. Dans mon cas, je prévois presque tout le temps de refaire une page dédiée pour les mots clés que Google m’indique.

5. Les clics et les conversions. En dernier, et pas avant plusieurs mois.

À quoi s’attendre. Sur un domaine récent, sans autorité acquise, il m’a fallu facilement compter 4 à 5 semaines avant les premières indexations. Le taux d’indexation initial était entre 20% (42 indexations sur 200 pages), et l’entrée dans l’index ne suivait pas du tout l’ordre de priorité commerciale. Les pages visant Rennes et Nantes ont été indexées bien avant les pages de Lyon et Paris. C’est logique, elles sont moins concurrentielles.

Quand il ne faut pas faire de SEO programmatique

Autant le dire clairement : dans la majorité des situations que je rencontre en mission, le SEO programmatique n’est pas le bon levier. Les cas où je le déconseille :

Quand vous n’avez pas de vraie variance entre vos pages. Si votre jeu de données ne contient rien d’autre que le nom de la ville ou de l’industrie, vos pages seront trop similaires. Google va probablement refuser d’indexer votre contenu.

Quand la demande n’existe pas sur la déclinaison choisie. Même si vous créez cinq cents pages, si les requêtes n’ont aucune recherche mensuelle, le site n’aura aucune visite. C’était le cas pour des requêtes que je voulais viser initialement, comme : “agence référencement local + ville”. Il y a quelques recherches dans les grandes villes, mais pas assez pour faire ud SEO programmatique.

Quand le domaine est trop jeune. Sans un minimum d’autorité, publier massivement sature le budget de crawl que Google vous attribue et les pages restent en file d’attente. Sur un site neuf, quelques excellentes pages et quelques liens externes rapportent davantage que deux cents pages moyennes. On peut voir le SEO programmatique comme un est un levier de multiplication : il multiplie une autorité existante, si elle est à zéro au début, elle n’augmentera pas.

Quand personne ne maintiendra les pages. Un cluster programmatique n’est pas un actif figé. Les données vieillissent, les templates doivent évoluer. Il faut prévoir un petit budget de maintenance. Actuellement, j’y passe 1/2j par trimestre et par site.

Quand un seul contenu de fond ferait mieux. C’est le cas le plus fréquent. Beaucoup d’entreprises que je conseille ont bien plus à gagner à publier dix pages bien écrites sur leur cœur de métier qu’à en générer deux cents. Le programmatique se justifie quand l’objectif est la large couverture du contenu, que ce soit géographique ou autre.

Et ensuite ? Il faut mesurer proprement l’indexation

L’étape suivante de ce chantier est méthodologique. Aujourd’hui, je regarde le rapport d’indexation de la Search Console à intervalles irréguliers, ce qui me donne une photo mais pas une courbe. En pratique, je conseille de le regarder une fois par semaine, pas plus, pour ne pas se faire influencer par les variations journalières. Malheureusement, je ne suis pas capable de suivre mon propre conseil. La semaine dernière, j’ai commencé chacune de mes journées en regardant la search console.

Ce que je mets en place :

Un relevé automatisé. L’API URL Inspection de la Search Console permet d’interroger chaque URL et de connaître son statut. Pas besoin de le faire tous les jours, à moins que vous ayez des milliers de page, auquel cas, pourquoi vous lisez cet article ?

Trois événements distincts. Une URL est d’abord découverte, puis explorée, et enfin indexée. C’est important de différencier les 3 étapes. Un problème de découverte : meilleur maillage et le sitemap, un problème d’exploration : budget de crawl, un blocage à l’indexation après exploration :page de mauvaise qualité.

Un traitement en analyse de survie. Le délai d’indexation est censuré à droite. A la date d’analyse, une partie des pages n’est pas encore indexée, et les exclure fausserait la durée mesurée, puisqu’on a qu’une petite partie des pages, et seulement celles qui sont indexées.

Les vagues comme unité de comparaison. Cjhaque vague est une cohorte datée. Je peux comparer le délai d’indexation de la vague 1 à celui de la vague 4 et voir si le site gagne en vitesse de crawl à mesure qu’il gagne en autorité. Pas possible si tout a été publié le même jour.

Ce que je retiens

Le SEO programmatique est un levier intéressant. Mais les résultats sont très dépendants de ce que le site a déjà : une autorité, un jeu de données, une offre claire. Quand j’ai appliqué la même méthode à un site sans ces trois éléments, j’obtiens des résultats très faibles.

La partie technique est la plus simple (surtout si vous utilisez des IA). La partie données est la plus longue. La partie mesure est aussi importante mais franchement moins glamour.

Le second cluster est en cours de déploiement. Les prochaines études de cas suivront le même format : les chiffres réels, y compris ceux qui ne vont pas dans mon sens.

Vous envisagez un déploiement programmatique et vous vous demandez si votre situation s’y prête ? Écrivez-moi pour en discuter.

Envie d'en discuter pour votre PME ?

Un échange de 30 minutes pour identifier vos gisements d'automatisation SEO ou vous orienter vers la formation adaptée à vos équipes.

Réserver un échange stratégique

Autres articles