# Pack SEO / GEO : auditer la visibilité en recherche et dans les réponses IA

> SEO / GEO : trois agents auditent la visibilité en recherche et dans les réponses générées par IA (qualité du contenu, données structurées, préparation IA), via 15 commandes. Installation, limites.

Canonical: https://bmad-plus.rochetta.fr/fr/docs/packs/seo/
Language: fr
BMAD+ version: 0.23.1
Documentation reviewed: 2026-10-19
Author: Laurent Rochetta
License: MIT

Documentation BMAD+ › [Packs](https://bmad-plus.rochetta.fr/fr/docs/packs/) › Pack SEO / GEO : auditer la visibilité en recherche et dans les réponses IA

Le pack SEO / GEO audite un site sous deux angles. Le SEO, c’est la visibilité dans les résultats des moteurs de recherche. Le GEO (generative engine optimisation), c’est la visibilité dans les réponses générées par les assistants IA et les aperçus IA : leurs robots peuvent-ils lire le site, le contenu et les données structurées sont-ils assez bons pour être cités, et les pages y sont-elles préparées. Le pack apporte trois agents qui partagent une seule commande, `/seo` : Scout explore et inspecte, Judge évalue le contenu, les données structurées et la préparation à l’IA, et Chief note, planifie et rapporte. Il s’appuie sur une petite boîte à outils Python quand elle est disponible et se replie sur un mode « consignes seules » sinon, auquel cas il refuse d’inventer des chiffres.

<a id="when-to-use"></a>
## Quand l’utiliser

- Avant un lancement ou après une refonte, pour repérer les problèmes d’indexation, de canonical, de redirections et d’en-têtes de sécurité.
- Quand le trafic organique baisse et qu’il vous faut une liste priorisée de causes et un plan à 30, 60 et 90 jours.
- Pour savoir si les robots d’IA peuvent lire le site, s’il a un fichier `llms.txt` et si ses passages sont facilement citables.
- Pour comparer votre site à celui d’un concurrent, ou suivre le score dans le temps.

<a id="installed"></a>
## Ce qui est installé

SEO est un pack empaqueté : il vit dans `.agents/skills/pack-seo/` avec le routeur `SKILL.md` (la compétence s’appelle `seo-engine`), les trois fichiers d’agent `seo-scout.md`, `seo-chief.md` et `seo-judge.md`, une `checklist.md`, un `pagespeed-playbook.md`, des fichiers de référence dans `ref/`, des modèles de rapport, `requirements.txt` et les scripts Python dans `scripts/`. Le registre ne liste pas de compétences séparées pour ce pack.

**Trois agents, dix rôles**

| Agent | Rôles | Ce qu’il fait |
| --- | --- | --- |
| SEO Scout (Technical Scanner) | `Crawler`, `Inspector`, `Photographer` | Explore et cartographie le site, exécute neuf catégories de contrôles techniques, prend des captures mobile et bureau. |
| SEO Judge (Content & AI Analyst) | `Content Expert`, `Schema Master`, `GEO Analyst` | Note l’E-E-A-T et la qualité du contenu, valide les données structurées, mesure la préparation à la recherche IA. |
| SEO Chief (Strategist & Reporter) | `Scorer`, `Strategist`, `Reporter`, `Benchmarker` | Calcule le score de santé SEO, priorise les problèmes, rédige le plan et les correctifs, rapporte, compare, étalonne. |

<a id="commands"></a>
### Les 15 commandes /seo

**Routeur de commandes**

| Commande | Agent | Action |
| --- | --- | --- |
| `/seo full <url>` | Scout, Judge, Chief | Les six phases |
| `/seo quick <url>` | Scout, Judge, Chief | Phases 1 à 4 seulement |
| `/seo technical <url>` | Scout (Inspector) | Seulement les contrôles techniques de la phase 2 |
| `/seo content <url>` | Judge (Content Expert) | Seulement les contrôles de contenu de la phase 2 |
| `/seo geo <url>` | Judge (GEO Analyst) | Préparation aux moteurs IA (phase 3) |
| `/seo schema <url>` | Judge (Schema Master) | Détection et validation des données structurées |
| `/seo images <url>` | Judge (Content Expert) | Sous-ensemble d’audit des images |
| `/seo hreflang <url>` | Scout (Inspector) | Audit hreflang |
| `/seo pagespeed <url>` | Scout et Chief | Boucle de perfectionnement PageSpeed |
| `/seo plan <type>` | Chief (Strategist) | Plan stratégique pour saas, ecommerce, local, publisher ou agency |
| `/seo fix` | Chief (Strategist) | Générer des correctifs depuis le dernier audit |
| `/seo history` | Chief (Reporter) | Afficher l’historique des scores |
| `/seo compare` | Chief (Reporter) | Comparer avec l’audit précédent |
| `/seo competitor <url1> <url2>` | Scout, Judge, Chief | Comparer deux sites |
| `/seo api <url>` | Un script | API Google : PageSpeed, CrUX, test d’optimisation mobile |

<a id="phases"></a>
### Les six phases d’un audit complet

1. Reconnaissance : récupérer la page d’accueil, explorer jusqu’à une profondeur de 2 et 25 pages au plus, détecter le type d’activité (SaaS, e-commerce, local, éditeur, agence), chercher `robots.txt`, `sitemap.xml` et `llms.txt`. Un point de contrôle demande s’il faut continuer.
2. Analyse approfondie, en parallèle : Scout vérifie neuf catégories techniques (explorabilité, indexabilité, sécurité, structure des URL, mobile, Core Web Vitals, détection des données structurées, rendu JavaScript, IndexNow) pendant que Judge examine l’E-E-A-T, la qualité du contenu, le schema et les images.
3. Préparation à l’IA : accès de GPTBot, ClaudeBot et PerplexityBot, `llms.txt`, citabilité des passages (blocs de 134 à 167 mots) et un score de préparation à l’IA de 0 à 100.
4. Notation : le score de santé SEO de 0 à 100, uniquement lorsque chaque catégorie pondérée a des entrées vérifiées.
5. Plan d’action : problèmes classés critique, élevé, moyen ou faible, gains rapides, feuille de route à 30, 60 et 90 jours, correctifs générés (balises meta, JSON-LD, `robots.txt`, `llms.txt`). Un point de contrôle demande s’il faut appliquer les correctifs. Une boucle PageSpeed peut suivre.
6. Suivi, facultatif : enregistrer les résultats sous `.bmad-seo/history/` et comparer avec l’audit précédent.

**Pondérations du score de santé SEO**

| Catégorie | Poids |
| --- | --- |
| SEO technique | 20 % |
| Contenu et E-E-A-T | 22 % |
| SEO on-page | 18 % |
| Schema | 10 % |
| Performance (Core Web Vitals) | 12 % |
| Préparation IA (GEO) | 12 % |
| Images | 6 % |

<a id="quick-start"></a>
## Démarrage rapide

1. **Installer le pack** Core est ajouté automatiquement. Le mode « consignes seules » n’exige rien d’autre.

   ```sh
   npx bmad-plus install --packs seo
   ```
2. **Facultatif : provisionner la boîte à outils Python** Avec `--provision-python`, l’installateur construit un environnement isolé dans `.bmad/venv/seo/` (il faut Python 3.11 ou plus récent, ou `uv`, qui peut en récupérer un) et vérifie que `requests`, `bs4`, `defusedxml` et `lxml` s’importent. C’est sur demande.

   ```sh
   npx bmad-plus install --packs seo --provision-python
   ```
3. **Facultatif : définir une clé d’API Google** Nécessaire seulement pour les données PageSpeed et CrUX en direct. La clé est gratuite et lue dans l’environnement ; elle est envoyée dans un en-tête de requête, jamais dans une URL.

   ```sh
   $env:GOOGLE_API_KEY = "votre-cle"
   ```
4. **Lancer un premier audit** Remplacez l’adresse par un site que vous avez le droit d’auditer.

   ```sh
   SEO Scout, lance un audit rapide de https://example.com (la route /seo quick, phases 1 à 4).
   ```

<a id="examples"></a>
## Exemples à copier

<a id="example-seo-full-audit"></a>
### Lancer l’audit complet en six phases

À utiliser sur un site qui vous appartient ou que vous êtes mandaté pour auditer. Scout, Judge et Chief interviennent en séquence.

**Dans votre assistant IA**

```text
SEO Scout, lance l’audit complet en six phases de https://example.com (la route /seo full). Arrête-toi à chaque point de contrôle pour que je décide de continuer ou non.
```

**Ce que vous devriez obtenir** La phase 1 se termine par un résumé de découverte et la question « Continue with full audit? ». Viennent ensuite l’analyse approfondie, la préparation à l’IA et la notation, puis le plan d’action, qui s’arrête sur « Apply fixes automatically? ». Si Python n’est pas disponible, l’audit annonce d’emblée le « prompts-only mode », marque les données manquantes comme non vérifiées et omet tout score aux entrées incomplètes, y compris le score de santé SEO global.

<a id="example-seo-technical"></a>
### Inspection technique seulement

À utiliser quand vous soupçonnez des problèmes d’indexation ou d’infrastructure et n’avez pas besoin de l’analyse du contenu.

**Dans votre assistant IA**

```text
SEO Scout, lance la route technique (/seo technical) sur https://shop.example. Nous avons changé de plateforme vendredi dernier et des pages sortent de Google : vérifie d’abord robots.txt, les directives noindex et les balises canonical.
```

**Ce que vous devriez obtenir** Scout agit en Inspector et rend un rapport technique sur neuf catégories, avec les problèmes triés en critique, élevé, moyen et faible. Les Core Web Vitals sont jugés d’après le code source quand aucune donnée d’API en direct n’existe, et INP est utilisé à la place de FID, abandonné.

<a id="example-seo-hreflang"></a>
### Auditer le hreflang d’un site multilingue

À utiliser pour les sites à plusieurs langues ou régions, par exemple des variantes `/fr/` et `/de/`.

**Dans votre assistant IA**

```text
SEO Scout, audite les annotations hreflang de https://example.com (la route /seo hreflang). Le site a des versions /fr/ et /de/ : vérifie que chaque page renvoie vers ses traductions et que x-default est défini.
```

**Ce que vous devriez obtenir** Scout vérifie les balises auto-référentes, les balises de retour et `x-default` selon les règles hreflang du pack et signale les pages qui les enfreignent.

<a id="example-seo-schema"></a>
### Valider les données structurées

À utiliser avant et après l’ajout de JSON-LD. Judge agit en Schema Master.

**Dans votre assistant IA**

```text
SEO Judge, valide les données structurées de https://example.com/pricing (la route /seo schema) et dis-moi si un type est obsolète ou manquant.
```

**Ce que vous devriez obtenir** Un rapport schema : ce qui a été trouvé, dans quel format, si chaque type est valide et non obsolète, et quelles opportunités manquantes valent d’être ajoutées. Judge recommande JSON-LD, signale les types retirés et peut générer des extraits conformes.

<a id="example-seo-geo"></a>
### Mesurer la préparation à la recherche IA

À utiliser pour décider quoi changer afin que les assistants puissent lire et citer vos pages. Judge agit en GEO Analyst.

**Dans votre assistant IA**

```text
SEO Judge, lance la route GEO (/seo geo) sur https://docs.example. GPTBot, ClaudeBot et PerplexityBot peuvent-ils lire notre documentation, et un llms.txt aiderait-il ?
```

**Ce que vous devriez obtenir** Un rapport GEO : quels robots d’IA `robots.txt` autorise ou bloque, si `llms.txt` existe et est bien formé, combien de passages entrent dans la plage citable de 134 à 167 mots, et le score de préparation à l’IA, affiché seulement si ses entrées ont été vérifiées.

<a id="example-seo-pagespeed"></a>
### Améliorer les scores PageSpeed un correctif à la fois

Exige `GOOGLE_API_KEY` pour les scores en direct. La cible est 100 dans les quatre catégories Lighthouse.

**Dans votre assistant IA**

```text
SEO Chief, avec SEO Scout, lance la boucle PageSpeed (/seo pagespeed) sur https://example.com/landing. Ma GOOGLE_API_KEY est définie. Corrige un problème à la fois et reteste après chacun.
```

**Ce que vous devriez obtenir** Scout et Chief bouclent : mesurer, corriger un problème, retester, confirmer l’amélioration, passer au suivant, selon le playbook et la checklist PageSpeed du pack. Sans clé, les agents disent que les scores en direct ne sont pas disponibles au lieu de les estimer.

<a id="example-seo-plan-and-fix"></a>
### Obtenir un plan adapté à votre type de site, puis les correctifs

À lancer après un audit. Les types de plan sont saas, ecommerce, local, publisher et agency.

**Dans votre assistant IA**

```text
SEO Chief, l’audit de notre site est terminé. Rédige le plan stratégique pour un site SaaS (la route /seo plan saas), puis transforme cet audit en correctifs prêts à appliquer (/seo fix).
```

**Ce que vous devriez obtenir** Chief rédige un plan stratégique pour un site SaaS (pages de prix, comparaison de fonctionnalités, appels à l’essai, SEO de la documentation). Puis `/seo fix` transforme le dernier audit en modifications prêtes à appliquer : balises title et description optimisées, JSON-LD construit à partir des modèles du pack, `robots.txt` amélioré et un `llms.txt`.

<a id="example-seo-competitor-and-history"></a>
### Comparer à un concurrent et suivre les progrès

À utiliser quand vous voulez une lecture côte à côte, ou après un second audit pour voir les écarts.

**Dans votre assistant IA**

```text
SEO Chief, compare https://example.com à https://competitor.example (la route /seo competitor) et dis-moi où le concurrent est devant. Si j’ai enregistré des audits précédents, montre aussi comment notre score a évolué.
```

**Ce que vous devriez obtenir** Chief exécute un audit complet des deux sites et compare les scores avec les écarts (score SEO, E-E-A-T, types de schema, score GEO, PageSpeed), puis liste les retards, vos avantages et ce qu’il faut prioriser. L’historique des scores n’existe que si des audits précédents ont été enregistrés sous `.bmad-seo/history/` par la phase de suivi facultative (phase 6 d’un audit complet) ; `/seo history` et `/seo compare` peuvent alors montrer l’évolution, et sans audit enregistré il n’y a rien à comparer.

<a id="outputs"></a>
## Ce qu’il écrit et où

**Fichiers que le pack SEO peut créer**

| Chemin | Produit par | Contenu |
| --- | --- | --- |
| `.bmad-seo/history/<domain>-<date>.json` | Phase 6 (suivi) | Scores par catégorie et liste des problèmes, pour l’historique et la comparaison |
| `seo-report.html` | `scripts/seo_report.py` | Rapport HTML issu d’un fichier JSON d’audit, nom de fichier par défaut ; utilisé seulement quand chaque score est vérifié |
| `screenshot.png` | `scripts/seo_screenshot.py` | Nom de sortie par défaut d’une capture de page (`--output` le change) |
| `.bmad/venv/seo/` | `install --provision-python` | L’environnement Python isolé |

<a id="data-and-prerequisites"></a>
## Flux de données et prérequis

- Environnements d’exécution : Node.js 20 pour l’installateur ; Python 3.11 ou plus récent seulement si vous voulez la boîte à outils (sinon mode « consignes seules »). Paquets Python : `requests`, `beautifulsoup4`, `defusedxml`, `lxml`.
- Flux hors machine : `seo-site-fetch` (l’exploration contacte le site audité ; les adresses sont contrôlées contre la falsification de requêtes côté serveur et figées), `seo-google-apis` (PageSpeed, CrUX et le test d’optimisation mobile, avec votre `GOOGLE_API_KEY` envoyée dans l’en-tête `x-goog-api-key`), `seo-screenshot` (le navigateur n’atteint que l’hôte audité) et `python-provision` (installation des paquets, sur demande).
- Le pack porte l’étiquette de conformité GDPR (RGPD) parce que les données de Google Analytics ou de Search Console peuvent contenir des données personnelles ; traitez ces exports selon vos propres règles.

<a id="limits"></a>
## Limites et pièges

> **Attention · Pas de données, pas de score** En mode « consignes seules », ou quand une catégorie n’a pas pu être vérifiée, les agents la marquent non vérifiée. Ils ne la remplacent jamais par zéro et ne repondèrent pas les autres catégories : un audit incomplet montre donc sa couverture (pages et contrôles examinés, sources, éléments non vérifiés) au lieu d’un chiffre global.

> **Remarque · Les captures exigent un navigateur à installer vous-même** `requirements.txt` garde Playwright en commentaire, et `--provision-python` ne vérifie que `requests`, `bs4`, `defusedxml` et `lxml`. Pour `seo_screenshot.py`, installez vous-même `playwright` et Chromium dans le même environnement. Les ressources tierces sont bloquées pendant une capture et listées dans `blocked_requests` : une image de CDN manquante est un effet de la capture, pas un défaut du site.

> **Remarque · Demandez en langage naturel : les noms /seo sont des routes, pas des commandes slash** Les noms `/seo ...` sont le vocabulaire du routeur propre au pack. Le pack ne les enregistre pas comme commandes slash dans votre client IA : saisis seuls, ils peuvent recevoir une réponse « commande inconnue ». Écrivez une demande ordinaire à un agent SEO et nommez la route dans la phrase, comme le font les exemples ci-dessus. Pour un audit, demandez la route `full` (les six phases) ou la route `quick` (phases 1 à 4) ; le routeur n’a pas de route `audit` seule.

> **Remarque · Provenance** La base SEO Audit 360 a été écrite par Laurent Rochetta chez Oveanet, sa société, puis intégrée à BMAD+.

**Voir aussi**

- [Les dix packs côte à côte](https://bmad-plus.rochetta.fr/fr/docs/packs/packs-overview/)
- [Pack Design (passation avant une refonte)](https://bmad-plus.rochetta.fr/fr/docs/packs/design/)
- [Référence de la commande install](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-install/)
- [Gestion des données et vie privée](https://bmad-plus.rochetta.fr/fr/docs/security/data-handling/)

[Documentation BMAD+](https://bmad-plus.rochetta.fr/fr/docs/) · [Packs](https://bmad-plus.rochetta.fr/fr/docs/packs/)

[Code sur GitHub](https://github.com/lrochetta/BMAD-PLUS)
