Auditer le SEO des concurrents avec Claude : méthode
Auditer le SEO de tes concurrents avec Claude : content gap, intention par URL et clusters, sans que le modèle invente le moindre chiffre.
Dans cet article
Le mois dernier, j’ai passé dans Claude un export de quatre mille URL de trois concurrents B2B. En dix minutes, il a pointé une chose que je regardais sans la voir depuis deux jours : les trois avaient une page de comparatif par intégration produit, et mon client aucune. Le motif était sous mes yeux, réparti sur quatre colonnes et mille lignes. Je ne l’ai pas vu.
Ce que Claude n’a pas fait, parce qu’il en est incapable, c’est me dire combien de trafic ces pages rapportaient. Ce chiffre venait d’Ahrefs. Cette séparation résume l’article. J’ai déjà écrit sur la competitor research avec Claude, mais il s’agissait de PPC et de messages : annonces, landing pages, proposition de valeur. Voici la contrepartie organique, qui fonctionne assez différemment : l’input n’est pas une capture d’annonce, ce sont des exports.
En 30 secondes :
- Les outils produisent les données. Claude les lit. Inverse cet ordre et ton audit devient de la fiction mise en tableau.
- Claude n’a pas d’index en direct. Sa fenêtre de contexte est une mémoire de travail, pas une base de positions.
- Le content gap et la classification d’intention URL par URL sont les deux tâches qui m’ont fait gagner le plus d’heures.
- Pour lire un cluster, il te faut un crawl avec les liens sortants de chaque page, pas une liste d’URL.
- Rattache chaque affirmation à une citation littérale de l’export. Pas de citation, pas d’affirmation.
Quelle moitié de l’audit Claude fait-il, et laquelle non ?
La moitié analyse. Jamais la collecte de données. Écrit comme ça, ça paraît évident. Je l’ai vu ignorer dans des rapports d’agence facturés à quatre chiffres.
La documentation d’Anthropic le dit sans détour : la fenêtre de contexte est la mémoire de travail du modèle, quelque chose de distinct de l’énorme corpus d’entraînement. Un modèle n’interroge pas Google quand tu lui demandes une position. Il comble le trou avec ce qui lui semble plausible, ce qui n’est pas la même chose qu’une donnée.
| Étape | Qui la fait | Ce qui en sort |
|---|---|---|
| Positions, volumes, backlinks | Ahrefs, Semrush, Search Console | CSV avec mot-clé, URL et position |
| Crawl de chaque concurrent | Screaming Frog, Sitebulb | CSV avec URL, title, H1 et liens sortants |
| SERP réelle sur un set de requêtes | Outil de SERP ou vérification manuelle | Liste d’URL par requête |
| Croiser ces sources et sortir des motifs | Claude | Tableau de gaps et de clusters |
| Étiqueter l’intention de recherche par URL | Claude | URL, étiquette et justification citée |
| Décider quoi construire et dans quel ordre | Toi | Backlog avec estimation d’effort |
Regarde où passe la frontière. Claude entre une fois le fichier créé, et sort avant la décision. Entre les deux, il fait ce qu’un humain fait mal à partir de la ligne trois cents. Si c’est le côté payant qui t’intéresse, la concurrence publicitaire s’audite avec d’autres outils.
Comment faire un content gap analysis sur un set de concurrents ?
En croisant des exports de mots-clés, pas en posant la question. L’erreur classique consiste à écrire « dis-moi quels sujets concurrent.com couvre et pas moi ». Ça produit une liste jolie et fausse. Je fais l’inverse : je donne les données et j’interdis d’en sortir.
- Exporte les mots-clés organiques de chaque concurrent, avec URL de destination et position. Un fichier par domaine, non retouché.
- Exporte les tiens depuis le même outil et depuis Search Console, qui ne coïncident jamais tout à fait.
- Normalise les colonnes pour que les quatre fichiers aient les mêmes en-têtes. Ça élimine la moitié des erreurs.
- Envoie les quatre fichiers dans le même message, chacun dans sa balise portant le nom du domaine. Anthropic recommande de placer les données longues en haut du prompt, avant l’instruction, et d’entourer chaque document de sa source.
- Demande des regroupements, pas des listes. « Regroupe par thème les mots-clés où au moins deux concurrents sont dans le top 10 et où nous n’apparaissons pas, avec trois lignes d’exemple par groupe. »
- Relis les groupes à la main et écarte ceux qui ne correspondent pas à ce que tu vends. Il en tombe environ un sur quatre.
L’étape six n’est pas facultative. Selon mon expérience, le modèle regroupe très bien par proximité sémantique et très mal par pertinence commerciale : il te range « logiciel gratuit » à côté de « logiciel pour équipes de 200 personnes » parce qu’ils partagent des mots. Tu sais lequel paie les factures.
Comment classer l’intention de recherche de centaines d’URL ?
Avec une taxonomie fermée et une justification obligatoire par ligne. Sans ces deux contraintes, le modèle étiquette selon des critères qui dérivent au milieu du fichier.
Je lui donne quatre étiquettes et seulement quatre : informationnelle, comparative, transactionnelle, marque. Pour chaque URL, je veux l’étiquette, le signal précis qui la justifie (un mot du title, un motif d’URL, des prix visibles dans un H2) et une cinquième option nommée « indéterminable » qu’il peut utiliser quand il veut. Cette permission compte : le guide d’Anthropic pour réduire les hallucinations commence par donner au modèle l’autorisation explicite d’admettre qu’il ne sait pas.
Pourquoi me donner ce mal plutôt que regarder les URL une par une ? Parce que la réponse que je cherche n’est pas « cette URL est comparative », c’est « la plupart des leurs dans le top 10 sont comparatives et presque toutes les miennes sont informationnelles ». Ce contraste n’apparaît que si tu as étiqueté l’ensemble avec un critère unique. À la main, pour quatre cents URL, c’est une demi-journée.
Google publie une liste de questions d’auto-évaluation sur le contenu utile que j’utilise comme second filtre. L’une d’elles, « la personne qui lit ton contenu repartira-t-elle avec le sentiment d’en avoir appris assez pour atteindre son objectif ? », je l’applique aux titles et H2 du concurrent. Le verdict n’est pas fiable. Le tri, si : ses pages écrites pour répondre se séparent de celles écrites pour remplir.
Comment lire le cluster thématique et le maillage interne d’un concurrent ?
Avec un crawl qui inclut les liens internes sortants de chaque page. Sans cette colonne, pas d’analyse de cluster : juste une liste d’URL en forme d’arbre.
Ce que je fais : j’exporte depuis Screaming Frog le rapport de liens internes (source, destination, ancre) du concurrent, et je demande à Claude quelles pages font office de hub. Quelles URL reçoivent plus de vingt liens internes, depuis quels types de page, avec quelles ancres. Puis je compare à ma structure. Le verdict n’est presque jamais « ils ont plus de contenu ». C’est souvent « ils en ont autant, mieux relié ».
Google est clair sur les raisons, et mieux vaut le citer littéralement. Sa documentation indique qu’il utilise les liens comme signal pour déterminer la pertinence des pages et pour trouver de nouvelles pages à explorer, et qu’il ne peut explorer un lien que s’il s’agit d’un élément <a> avec un attribut href. Sur le texte d’ancrage, il dit qu’il doit être descriptif, concis et pertinent. Rien d’autre. Toute règle du type « trois liens internes par article » relève du folklore, la mienne comprise : je travaille avec l’hypothèse qu’un hub bien relié est réexploré plus vite, et je la traite comme telle. Le détail opérationnel est dans maillage interne pour le SEO.
Que comparer dans l’on-page des pages qui te dépassent ?
Les motifs répétés, pas les éléments isolés. Qu’un concurrent ait le mot-clé dans son title ne dit rien. Que les quarante pages qui te dépassent l’aient, au même endroit et avec le même modificateur, c’est une décision de gabarit.
Ma comparaison minimale tient en cinq colonnes par URL : title, H1, nombre de H2, présence d’un tableau, données structurées détectées. Claude croise ça vite et sort la partie ennuyeuse : « trente-huit sur quarante commencent le title par la catégorie ». Pour réécrire titles et metas, j’ai un flux à part dans meta descriptions à l’échelle.
Avec les données structurées, attention à ce qu’on en conclut. Google dit qu’ajouter des données structurées peut rendre les résultats plus attrayants pour les utilisateurs et que respecter les propriétés obligatoires te rend éligible à un affichage enrichi. Éligible. Pas garanti. Et cette page ne parle nulle part de positions. Ses règles interdisent aussi de baliser du contenu invisible pour le lecteur : vérifie que le concurrent l’applique bien avant de copier. J’ai vu recopier un balisage d’avis pour des avis inexistants. Pour l’implémentation, schema markup entre dans le détail.
Où invente-t-il des données et comment le tenir en laisse ?
Dans les chiffres. Toujours dans les chiffres. Volumes, positions moyennes, domaines référents, trafic estimé : si ce n’est pas dans le fichier, Claude produira un chiffre avec la même assurance qu’un vrai. Ce n’est pas un bug rare. C’est ce qui arrive quand tu demandes une donnée à ce qui n’a pas d’index.
La règle que j’applique n’admet aucune nuance : aucun chiffre du rapport ne peut avoir Claude pour origine. Ils viennent tous du CSV, fichier et ligne cités. J’utilise pour ça trois techniques décrites par la documentation d’Anthropic : extraire des citations littérales avant d’analyser, exiger que chaque affirmation arrive avec sa citation et la retirer sinon, et restreindre la connaissance externe aux seuls documents fournis.
Concrètement, ça donne une fin de prompt que je répète presque mot pour mot : « Utilise uniquement les lignes des fichiers joints. N’estime ni volumes ni positions. Si une valeur est absente, écris NON DISPONIBLE. » Est-ce que ça marche à tous les coups ? Non. Ça dépend de la taille du fichier. Le dernier contrôle reste humain : je prends cinq chiffres au hasard et je les cherche dans le CSV. Si un seul cloche, tout repasse.
Comment en sortir une liste d’actions priorisée ?
En demandant l’effort et la preuve dans le même tableau que l’impact. Une liste de recommandations sans coût estimé est une lettre au Père Noël, et le modèle en produit volontiers.
Ce que je demande à la fin, c’est un tableau à quatre colonnes : action, gap qui la motive (en citant le groupe de mots-clés précis), effort estimé en jours, et quel concurrent sert de référence. Ensuite je réordonne, parce que la priorisation dépend de choses que Claude n’a pas : l’équipe disponible, le cycle de vente, la solidité du produit face à la comparaison. Dans la plupart des cas, son ordre et le mien divergent sur la moitié haute de la liste.
Pour ce même squelette appliqué à ton site plutôt qu’à celui du voisin, l’audit SEO avec Claude parcourt les phases de l’intérieur. Et si tu automatises la collecte, connecter Claude à tes sources via MCP supprime l’export manuel.
Questions fréquentes
Claude peut-il consulter les positions d’un concurrent sur Google ?
Non. Un modèle de langage n’a pas d’index de recherche en direct, et sa fenêtre de contexte est une mémoire de travail sur ce que tu lui passes, pas une base interrogeable. Demande-lui une position sans la lui fournir et il renverra un chiffre inventé. Les positions viennent de ton outil de suivi ou de Search Console.
Combien de concurrents mettre dans une même analyse ?
Entre trois et cinq fonctionne bien. En dessous de trois, aucun motif à détecter : toute coïncidence peut être le hasard. Au-delà de cinq, les fichiers gonflent et la précision souffre sur les contextes longs. Je préfère deux séries de trois qu’une de six, puis je croise à la main.
Coller le HTML d’une page suffit-il au lieu d’un crawl ?
Pour une page isolée, oui. Pour une analyse de cluster, non : il te faut les liens sortants de chaque URL en tableau, et ça ne sort proprement que d’un crawler. Coller du HTML consomme énormément de contexte pour peu de signal, et le reste de l’analyse ne tient plus.
Claude peut-il me dire pourquoi un concurrent me dépasse ?
Il peut pointer des différences observables : structure, couverture des sous-sujets, maillage, données structurées. Il ne peut pas donner la cause, parce que personne hors de Google ne la détient. J’utilise ça pour générer des hypothèses classées par testabilité, pas pour clore un diagnostic.
À quelle fréquence répéter cet audit ?
Chaque trimestre suffit dans la plupart des secteurs, chaque mois si tes concurrents publient beaucoup. L’important est de réutiliser le même prompt et la même taxonomie d’intention, pour que les tableaux restent comparables. Changer de critère d’étiquetage en cours d’année te prive de série historique.
L’outil fournit la donnée, Claude fournit le motif
Après pas mal d’audits de ce type, ce que j’ai appris n’est pas que le modèle analyse mieux que moi. C’est qu’il tient quatre mille lignes sans fatiguer, et pas moi. L’avantage tient au volume qu’il porte avant que l’évidence lui échappe. Un bon analyste avec deux jours trouve pareil. Il n’y a presque jamais deux jours.
Le vrai risque n’est pas non plus que Claude se trompe dans une analyse. C’est qu’il comble un trou chiffré et que tu colles le résultat dans une slide client. Le contrôle des chiffres contre le CSV n’est pas une bonne pratique optionnelle : c’est ce qui donne de la valeur au reste. Si tu ne vérifies pas, ne mets pas de chiffres.
Si tu as les exports sous la main et que tu ne sais pas quoi y regarder, réserve 30 minutes de consulting et on les passe en revue ensemble, avec tes données sous les yeux.
Vos campagnes publicitaires
pourraient-elles mieux performer ?
30 minutes pour analyser votre situation et vous dire exactement ce que je changerais. Sans pitch, sans proposition commerciale.