ChaoticSurfer/seo-suite

Analyse des performances de recherche, diagnostic de baisse de trafic et rapports SEO. Utilisez-le pour : "pourquoi notre trafic a-t-il chuté", "le trafic organique a baissé", "classements perdus", "analysez mon export Search Console", "trouvez des gains rapides dans GSC", "mots-clés à portée", "pages à faible CTR", "cannibalisation de mots-clés", "comparez ce mois vs le mois dernier", "marque vs non-marque", "la mise à jour Google nous a-t-elle touchés", "analysez les logs serveur / le crawl Googlebot", "construisez un tableau de bord SEO / rapport KPI", "mon changement SEO a-t-il fonctionné", "suivi de classement". Utilise gsc_analyze.py, log_analyze.py et Looker Studio (gratuit) ; explique quand le suivi de classement Semrush/Ahrefs vaut la peine d'être payé. Pas pour crawler le site à la recherche de défauts (seo-technique / seo-audit), ni pour la découverte de mots-clés pour du nouveau contenu (seo-mots-clés), ni pour la recherche concurrentielle (seo-concurrents).

Qu'est-ce que seo-suite ?

Ce skill, `ChaoticSurfer/seo-suite`, est un assistant SEO complet conçu pour analyser les performances des moteurs de recherche à partir de données propriétaires (Search Console, Bing Webmaster, GA4, logs serveur). Il permet de diagnostiquer les baisses de trafic à l'aide d'un arbre de décision structuré, d'identifier des opportunités d'optimisation (mots-clés à portée, pages à faible CTR, cannibalisation) et de mesurer l'impact des changements SEO via des expériences contrôlées avant/après. Le skill automatise les analyses via des scripts Python (`gsc_analyze.py`, `log_analyze.py`) et génère des recommandations exploitables, tout en fournissant des conseils sur les outils payants (Semrush, Ahrefs) lorsque nécessaire. Il est conçu pour les professionnels du SEO qui souhaitent transformer les données brutes en décisions éclairées, sans nécessiter de crawling de site ou de recherche concurrentielle, qui sont couverts par d'autres skills spécialisés.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ChaoticSurfer/seo-suite/tree/HEAD/skills/seo-analytics

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Analytique : mesurer, diagnostiquer, rapporter

Transformez les données propriétaires (Search Console, Bing Webmaster, GA4, logs serveur) en décisions. Diagnostiquez les baisses avec un arbre de décision fixe au lieu de deviner, et mesurez les changements honnêtement.

Quand l'utiliser / ne pas l'utiliser

Utilisez-le pour :

  • Les exports Search Console, Bing Webmaster et GA4.
  • Les questions de baisse de trafic et de mise à jour d'algorithme.
  • Les cibles d'optimisation du CTR.
  • La cannibalisation.
  • L'analyse des logs de crawl.
  • Les tableaux de bord KPI.
  • Les tests avant/après.

Ne pas utiliser pour :

  • Trouver des défauts sur le site → seo-technique, seo-audit. Ce skill appelle ces skills lorsque l'arbre de baisse les pointe.
  • Idées de mots-clés pour de nouvelles pages → seo-mots-clés.
  • Visibilité des concurrents → seo-concurrents.

Entrées à collecter

  • Export(s) de performances Search Console.
    • Export UI : Queries.csv / Pages.csv (1 000 premières lignes uniquement).
    • Export API ou Looker Studio avec lignes requête+page : nécessaire pour la cannibalisation. Limite API : 25 000 lignes/requête, ~50 000 lignes/jour/type (règles-google §11).
    • Pour les comparaisons : deux fenêtres de même durée, alignées sur les jours de la semaine, avec les 2 à 3 derniers jours exclus (données GSC en retard).
  • Expression régulière de marque. Nom de la marque plus fautes d'orthographe, par ex. acme|acme ?corp|ακμή.
  • Optionnel :
    • Export Bing Webmaster (même format ; fonctionne avec gsc_analyze).
    • Rapport de pages d'atterrissage organiques GA4.
    • Logs d'accès serveur (.log / .gz).
    • Les dates des changements, déploiements et migrations du site.
  • Pour les baisses : quand a-t-elle commencé, quelle section/pays/appareil, et si les conversions ont également chuté.

Workflow

A. Analyse d'opportunités (export GSC/Bing)

  1. Exécutez l'analyse :

    mkdir -p seo-work
    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gsc_analyze.py" Queries.csv --brand "marque|marq" --min-impressions 50 > seo-work/gsc.json
    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gsc_analyze.py" query_page.csv --brand "marque" > seo-work/gsc-qp.json   # cannibalisation
    

    Flags : --striking-from 4 --striking-to 20 (valeurs par défaut) ; augmentez --min-impressions sur les grands sites.

  2. Lisez striking_distance (positions 4–20, triées par est_extra_clicks_at_pos3 [estimation]). Ce sont les pages à améliorer en premier. Transmettez chacune à seo-onpage / seo-content avec sa requête.

  3. Lisez ctr_underperformers. Top 10 des requêtes dont le CTR est inférieur à la moitié du propre CTR médian de ce site pour cette position (ctr_curve_used ; il utilise des valeurs par défaut lorsqu'il y a trop peu de données).

    • Causes : titre/extrait faible, une fonctionnalité SERP ou AI Overview au-dessus du résultat, ou une inadéquation d'intention.
    • Inspectez la SERP en direct avec WebSearch avant de réécrire.
  4. question_queries : matériel pour les sections FAQ et les passages axés sur les réponses (seo-content, seo-recherche-ia).

  5. brand_split : rapportez les clics non liés à la marque séparément. La demande liée à la marque n'est pas une performance SEO.

  6. cannibalization : une requête pour laquelle 2 pages ou plus obtiennent chacune ≥10 % des impressions. Décidez au cas par cas : fusionnez + 301, différenciez l'intention, ou orientez les liens internes vers la page principale. Toute division n'est pas un problème : si les deux pages se classent bien, laissez-les.

B. Comparaison de périodes et diagnostic de baisse de trafic

  1. Exécutez la comparaison :

    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gsc_analyze.py" 28_derniers_jours.csv --compare 28_jours_precedents.csv > seo-work/gsc-compare.json
    

    Chaque perdant reçoit un likely_cause :

    • "classements en baisse"
    • "moins d'impressions à un rang similaire" (demande, ou une fonctionnalité SERP)
    • "CTR en baisse à un rang similaire"

    Ce sont des heuristiques : formulez-les comme "compatible avec".

  2. Parcourez l'arbre de baisse dans l'ordre et arrêtez-vous à la première branche que les preuves soutiennent. Enregistrez les preuves pour chaque branche :

    1. La baisse est-elle réelle ?

      • Clics GSC vs sessions organiques GA4, comparez la direction de la tendance (attendez-vous à un écart de niveau de 10 à 20 %).
      • Une baisse dans GA4 uniquement → problème de suivi/consentement/balise, pas SEO.
      • Vérifiez d'une année sur l'autre pour exclure la saisonnalité.
    2. Technique. Exécutez en parallèle :

      • robots_check.py
      • sitemap_check.py
      • page_audit.py sur les principales URL en perte
      • crawl.py sur la section concernée

      Recherchez :

      • noindex, changements canoniques, 5xx/429, blocages robots, changements de redirection, un défi bot (bot-challenge).
      • Déploiements à la date de la baisse.
      • Le rapport d'indexation des pages Search Console pour les sauts dans "Exclu" (seo-technique).
    3. Mise à jour d'algorithme. Comparez la date de la baisse avec le Tableau de bord d'état de la recherche Google (https://status.search.google.com/ → incidents de classement ; récupérez-le). La forme est importante :

      • Un changement d'étape à l'échelle du site à une date de mise à jour coïncide avec une réévaluation des systèmes (contenu utile / core / spam). Voir règles-google §4.
      • Les changements spécifiques à une section pointent vers des problèmes au niveau de la page.
      • Ne dites jamais "pénalisé" à moins que Search Console n'affiche une action manuelle.
    4. Saisonnalité / demande. Année sur année dans GSC (16 mois de données ; règles-google §11), plus Google Trends pour les termes principaux. Impressions en baisse à une position stable = demande.

    5. Déplacement SERP. Position stable mais CTR en baisse. WebSearch les requêtes :

      • AI Overview présent ? Nouvelles fonctionnalités (vidéo, PAA, shopping, forums) ? Annonces ?
      • Le rapport "Performances de recherche générative IA" de Search Console est-il disponible ? (règles-google §10)
    6. Concurrents. Position perdue au profit d'URL spécifiques → seo-concurrents (compare_pages sur les gagnants). Vérifiez la Wayback CDX pour savoir quand leur page a changé.

  3. Utilisez les données de log lorsqu'elles sont disponibles :

    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/log_analyze.py" access.log access.log.1.gz --verify-dns --sitemap-urls seo-work/urls.txt > seo-work/logs.json
    

    Recherchez :

    • Les hits Googlebot par jour qui s'effondrent (problème de capacité de crawl : 5xx/429 ou serveur lent ; règles-google §1).
    • Les erreurs servies aux bots.
    • La part d'URL avec paramètres (gaspillage de crawl).
    • Les chemins de sitemap jamais crawls.
    • Les fausses IP "Googlebot" (unverified_ips).
    • Si les bots IA (OAI-SearchBot, Claude-SearchBot, PerplexityBot) atteignent le site.

C. Rapports et tableaux de bord

  • KPI. Séparez les indicateurs avancés des indicateurs retardés :
    • Avancés : pages indexées (GSC), impressions, position moyenne pour les clusters cibles, taux de réussite CWV, erreurs de crawl.
    • Retardés : clics non liés à la marque, conversions/revenus organiques (GA4), taux de citation IA (seo-recherche-ia).
  • Tableau de bord gratuit : Looker Studio avec le connecteur natif Search Console (tables d'impressions de site + d'URL) et le connecteur GA4. Pages :
    • Aperçu.
    • Tendance non liée à la marque (filtre regex).
    • Clusters (regroupement par chemin d'URL).
    • Opportunités (positions 4–20).
    • CWV (connecteur CrUX, ou instantanés psi.py).
  • Rapport mensuel : ce qui a changé, pourquoi (avec preuves étiquetées), ce que nous avons fait (depuis SEO-WORKLOG.md), la suite.

D. Mesurer si un changement SEO a fonctionné

  1. Pré-enregistrez. Avant le changement, notez dans le journal de travail :
    • URL modifiées.
    • URL de contrôle (similaires, non modifiées).
    • Métrique (clics/impressions/CTR/position pour les requêtes cibles).
    • Direction attendue.
    • Fenêtre : ≥4 semaines après l'indexation ; vérifiez la date de re-crawl dans URL Inspection.
  2. Exportez des fenêtres égales avant et après pour les deux groupes, puis exécutez gsc_analyze.py apres.csv --compare avant.csv pour chaque groupe.
  3. Rapportez le changement du traitement moins le changement du contrôle. Avec peu de pages ou de faibles clics, dites "non concluant". Ne prétendez jamais à une causalité à partir d'un seul avant/après.

Suivi de classement

  • Gratuit : position moyenne Search Console par requête (pondéré par les impressions, tous emplacements). Idéal pour les tendances ; pas une vue "où suis-je en ce moment".

  • Payant : positions quotidiennes pour une liste de mots-clés fixe, par emplacement/appareil, avec fonctionnalités SERP. Justifiez-le lorsque :

    • les classements locaux ou multi-villes sont importants,
    • le contrat client nécessite des rapports de classement, ou
    • vous devez suivre des mots-clés sans encore d'impressions.

    Options : Semrush Position Tracking, Ahrefs Rank Tracker, SE Ranking, ou l'API SERP DataForSEO pour des vérifications scriptées (tools.md).

Vérifications

VérificationRègleSource
Fenêtres de comparaison de même durée, alignées sur les jours de la semaine, 2 à 3 derniers jours exclusLes données GSC ont un retard de 2 à 3 joursrègles-google §11 [document Google]
Rétention GSC16 moisrègles-google §11 [document Google]
Allégations de "pénalité"uniquement avec une entrée du rapport d'actions manuellesrègles-google §4 [document Google]
Trafic AI Overviews/AI Modecomptabilisé dans Performance → Web ; pas de clics séparésrègles-google §10 [document Google]
Baisse du taux de crawl Googlebotcoïncide avec des réponses 5xx/429/lentesrègles-google §1 [document Google]
Attentes CTRpropre courbe du site d'abord ; les valeurs par défaut sont heuristiquesheuristique
Seuil de cannibalisation≥2 pages ≥10 % des impressions, ≥100 impressionsheuristique

Données : gratuites vs payantes

Le gratuit couvre presque tout ici. Search Console (+API), Bing Webmaster (+ son rapport de performances IA, si disponible ; règles-google §10), GA4, Looker Studio, logs serveur, le Tableau de bord d'état de la recherche Google, Google Trends.

Le payant ajoute (voir ${CLAUDE_PLUGIN_ROOT}/references/tools.md) :

  • Semrush / Ahrefs.
    • Historique de visibilité concurrentielle et mouvement de mots-clés (vos propres données sont meilleures dans GSC).
    • Leurs capteurs de volatilité d'algorithme (Semrush Sensor) pour voir si une baisse est à l'échelle de l'industrie.
    • Justifié pour la question "est-ce que c'est seulement nous ?" lors d'une mise à jour.
    • Tactique de coût : vérifiez la page gratuite du Sensor et l'historique d'un seul concurrent dans Organic Research au lieu d'un projet complet.
  • Suiveurs de classement : voir ci-dessus. Suivez uniquement les mots-clés à forte valeur et limitez les emplacements/appareils à ceux qui sont importants. La plupart des outils facturent par mot-clé × emplacement × appareil × fréquence, donc préférez hebdomadaire plutôt que quotidien pour les ensembles non volatils.
  • Screaming Frog Log File Analyser (## Screaming Frog). Utile si les logs sont volumineux et que l'utilisateur préfère une interface graphique. log_analyze.py couvre les questions essentielles gratuitement.

Étiquetez les chiffres de trafic tiers [données fournisseur] / [estimation]. Ils sont modélisés, pas mesurés.

Résultats

  1. seo-work/gsc.json et autres, plus un court résumé des conclusions :
    • Top 10 des opportunités de distance frappante : requête, page, clics supplémentaires estimés [estimation].
    • Principales corrections de CTR.
    • Décisions de cannibalisation.
  2. Diagnostic de baisse : l'arbre avec ✅/❌ et preuves par branche, l'explication la plus probable dans un langage "compatible avec", et les actions suivantes routées vers la bonne compétence.
  3. Spécification KPI/tableau de bord (sources de données Looker Studio, champs, filtres) ou un projet de rapport mensuel.
  4. Enregistrement d'expérience (pré-enregistrement + résultat).

Pièges et mythes

  • La position moyenne est pondérée par les impressions sur toutes les requêtes/emplacements. Un nouveau classement en page 2 peut abaisser la moyenne tandis que le trafic augmente.
  • Les exports UI sont limités à 1 000 lignes et masquent les requêtes anonymisées, donc les totaux ne correspondront pas au graphique.
  • Une baisse à une date de mise à jour n'est pas une preuve que la mise à jour en est la cause. Éliminez d'abord les causes techniques et de suivi.
  • L'année sur année bat le mois sur mois pour les entreprises saisonnières.
  • Les clics qui baissent tandis que les impressions restent stables sont souvent dus aux AI Overviews ou à une autre fonctionnalité SERP, pas à une perte de classement.
  • "Organique" dans GA4 dépend du mode de consentement et du regroupement des canaux, donc vérifiez les changements de configuration à la date de la baisse.
  • N'optimisez pas le CTR avec des titres putaclic. Google peut les réécrire (règles-google §3).

Enregistrez le travail

Ajoutez à SEO-WORKLOG.md (${CLAUDE_PLUGIN_ROOT}/references/worklog.md) :

  • Exports utilisés (plages de dates).
  • Scripts exécutés.
  • Résultats avec balises de preuve.
  • Verdict du diagnostic.
  • Expériences pré-enregistrées.
  • Utilisation d'outils payants.
  • La date de revérification (par exemple "re-tirer GSC le 2026-11-21 pour le test de titre").

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

ChaoticSurfer/seo-suite

Use for visibility in AI answers (AEO, GEO, "LLM SEO") — "get cited by ChatGPT / Perplexity / Google AI Overviews / AI Mode / Copilot / Claude / Gemini", "why doesn't ChatGPT mention us", "should we block GPTBot or ClaudeBot", "AI crawler access", "do we need llms.txt", "track our AI visibility", "brand in AI answers", "opt out of AI Overviews". Covers eligibility, crawler policy by purpose (search vs user-fetch vs training), Bing indexing for ChatGPT and Copilot, consistent entity facts, citable content, off-site sources, and repeatable measurement with confidence intervals. Not for: classic keyword and ranking work (seo-keywords, seo-content), schema validation (seo-schema), Business Profile and maps (seo-local), traffic-drop forensics (seo-analytics).

ChaoticSurfer/seo-suite

Competitor and SERP analysis. Use for "who are my SEO competitors", "why does X outrank me", "compare my page with the top results", "competitor content gap", "keyword gap vs competitors", "what is ranking for <keyword>", "SERP features for <keyword>", "competitor backlinks", "how much traffic does competitor get", "what did competitor change on their page", "monitor competitor sites". Finds real SERP competitors (not just business rivals), compares pages with compare_pages.py, inventories SERP features and intent, tracks competitor page changes via the Wayback Machine, and states exactly when Semrush/Ahrefs/Similarweb are worth paying for. Not for keyword discovery from seeds (seo-keywords), link building execution (seo-links), or your own traffic analysis (seo-analytics).

Skills associés