[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$folWoBjBzlvCRcw7P9iB3Qt3TqGDaaP_mVp3iuKqs-ts":3,"$fF4sfRHk5HaP5kT9EHHwhmKL_sJI1Whf4oOMDBjlC8Zc":25},{"_id":4,"slug":5,"__v":6,"author":7,"body":8,"canonical":9,"category":10,"createdAt":11,"date":12,"description":13,"htmlContent":14,"image":15,"imageAlt":15,"readingTime":16,"tags":17,"title":23,"updatedAt":24},"69fdb4c1aa6b273b0cfedd51","google-s-quality-threshold-is-quietly-killing-scaled-ai-content-at-ranking-via-sejournal-taylordanrw",0,"Equipe Seogard","Un site média publie 4 000 articles générés par LLM en trois mois. Le trafic organique triple. Puis une core update passe, et 78 % des pages tombent hors du top 100 en moins de deux semaines. Ce scénario — que Taylor DanRW décrit comme le \"Mt. AI\" pattern dans [Search Engine Journal](https://www.searchenginejournal.com/googles-quality-threshold-is-quietly-killing-scaled-ai-content/574071/) — se répète sur des dizaines de domaines depuis fin 2024. Le problème n'est pas que Google détecte le contenu AI. Le problème est qu'il applique un seuil de qualité que le volume seul ne peut pas franchir.\n\n## Le \"Mt. AI\" pattern : anatomie d'un crash prévisible\n\nLe terme \"Mt. AI\" décrit une courbe de trafic en forme de montagne : ascension rapide, plateau court, chute verticale. Ce pattern est devenu tellement récurrent qu'il constitue un signal d'alerte fiable pour les SEO qui analysent des domaines concurrents.\n\n### La mécanique du seuil\n\nGoogle ne fonctionne pas avec un classificateur binaire \"AI = mauvais / humain = bon\". Le quality threshold est un ensemble de signaux agrégés qui évaluent la valeur ajoutée d'une page par rapport au corpus existant sur la même intention de recherche. Quand un site publie massivement du contenu reformulé sans expertise différenciante, ces signaux convergent vers un score insuffisant — pas page par page, mais au niveau du domaine.\n\nLe mécanisme ressemble à ce que les ingénieurs de Google décrivent dans la documentation sur le [site-level classifier](https://developers.google.com/search/docs/fundamentals/creating-helpful-content) : un signal de qualité global qui affecte la capacité de toutes les pages du domaine à se positionner, y compris celles qui existaient avant la vague de contenu AI.\n\n### Un scénario réel : le cas d'un site e-commerce contenu\n\nPrenons un cas concret et représentatif. Un e-commerce de matériel de sport avec 12 000 pages produit et 800 pages éditoriales décide d'utiliser GPT-4 pour créer 3 200 guides d'achat et comparatifs en 10 semaines. La stratégie semble rationnelle : couvrir la longue traîne informationnelle pour alimenter le haut du tunnel.\n\n**Semaines 1-8** : les pages sont indexées rapidement (le site a un bon crawl budget historique). Le trafic organique passe de 145 000 à 310 000 sessions/mois. Les KPIs internes sont au vert.\n\n**Semaines 9-14** : plateau. Le taux d'indexation des nouvelles pages chute de 92 % à 34 %. Google Search Console montre une augmentation des pages \"Discovered – currently not indexed\" et \"Crawled – currently not indexed\".\n\n**Semaine 15 (core update)** : le trafic tombe à 89 000 sessions/mois. Les 3 200 nouvelles pages perdent en moyenne 47 positions. Pire : les 800 pages éditoriales historiques (rédigées par des experts) perdent 12 positions en moyenne. Le signal site-level a contaminé l'ensemble du domaine.\n\nCe scénario illustre un point que [nous avons déjà analysé](/blog/why-more-content-is-no-longer-a-reliable-way-to-grow-seo) : la corrélation entre volume de publication et croissance SEO s'est rompue. Le quality threshold rend cette stratégie non seulement inefficace, mais activement destructrice.\n\n## Détecter les signaux avant-coureurs dans Search Console\n\nLe crash ne survient pas sans avertissement. Les signaux existent dans vos données — il faut savoir où regarder.\n\n### Le ratio indexation / publication\n\nLe premier indicateur fiable est l'évolution du taux d'indexation de vos nouvelles pages. Un site en bonne santé éditoriale maintient un ratio supérieur à 85 % sur les pages soumises. Quand ce ratio chute sous 50 % sans changement technique, Google vous envoie un message clair : il ne juge pas vos nouvelles pages dignes d'indexation.\n\nVous pouvez monitorer ce ratio en exportant les données de couverture d'index via l'API Search Console :\n\n```python\nfrom google.oauth2 import service_account\nfrom googleapiclient.discovery import build\nimport json\n\nSCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']\nSERVICE_ACCOUNT_FILE = 'credentials.json'\n\ncredentials = service_account.Credentials.from_service_account_file(\n    SERVICE_ACCOUNT_FILE, scopes=SCOPES)\nservice = build('searchconsole', 'v1', credentials=credentials)\n\n# Récupérer les stats d'indexation par catégorie\nrequest = {\n    'startDate': '2026-04-01',\n    'endDate': '2026-05-07',\n    'dimensions': ['page'],\n    'dimensionFilterGroups': [{\n        'filters': [{\n            'dimension': 'page',\n            'operator': 'includingRegex',\n            'expression': '/guides/.*'  # Filtrer sur le répertoire des contenus AI\n        }]\n    }],\n    'rowLimit': 25000\n}\n\nresponse = service.searchanalytics().query(\n    siteUrl='https://www.sport-equipment-example.fr',\n    body=request\n).execute()\n\nindexed_pages = len(response.get('rows', []))\ntotal_published = 3200  # Nombre connu de pages publiées\n\nratio = (indexed_pages / total_published) * 100\nprint(f\"Ratio d'indexation : {ratio:.1f}%\")\nprint(f\"Pages indexées avec impressions : {indexed_pages}\")\nprint(f\"Pages sans visibilité : {total_published - indexed_pages}\")\n```\n\n### Le signal de qualité dans les données de performance\n\nLe deuxième indicateur est plus subtil : une baisse du CTR moyen sur les pages existantes, combinée à une perte de positions sur des requêtes historiquement stables. Ce pattern indique que le site-level quality signal commence à affecter votre domaine.\n\nDans Search Console, comparez les performances de vos pages pré-AI et post-AI sur une fenêtre de 28 jours glissants. Si les pages historiques perdent du terrain sans modification, c'est le signal site-level qui agit.\n\n### Les logs serveur ne mentent pas\n\nL'analyse des logs Googlebot révèle un autre signal : la fréquence de recrawl des pages AI par rapport aux pages historiques. Un bot qui diminue sa fréquence de crawl sur un segment spécifique indique une dépriorisation.\n\n```bash\n# Extraire la fréquence de crawl Googlebot par répertoire sur les 30 derniers jours\nzcat /var/log/nginx/access.log.*.gz | \\\n  grep -i \"googlebot\" | \\\n  awk '{print $7}' | \\\n  sed 's/\\?.*//g' | \\\n  awk -F'/' '{\n    if ($2 == \"guides\") print \"ai_content\";\n    else if ($2 == \"blog\") print \"editorial_legacy\";\n    else if ($2 == \"products\") print \"product_pages\";\n    else print \"other\";\n  }' | \\\n  sort | uniq -c | sort -rn\n\n# Résultat typique d'un site touché :\n# 145230  product_pages\n#  23100  editorial_legacy\n#   4200  ai_content        ← ratio disproportionné vs nombre de pages\n#  12400  other\n```\n\nSi vous avez 3 200 pages AI et que Googlebot n'en visite que 4 200 fois en 30 jours (1.3 crawl/page/mois), contre 29 crawls/page/mois pour vos pages produit, la conclusion est évidente. Un outil de monitoring comme Seogard permet de détecter automatiquement ces variations de crawl budget par segment, sans parsing manuel des logs.\n\n## Ce que Google évalue réellement : au-delà du détecteur AI\n\nLa confusion la plus répandue dans l'industrie est de croire que Google utilise un \"détecteur d'IA\" binaire. Ce n'est pas le cas. Les documents de la [Google Search Quality Rater Guidelines](https://static.googleusercontent.com/media/guidelines.raterhub.com/en//searchqualityevaluatorguidelines.pdf) et les communications officielles pointent vers une évaluation multi-dimensionnelle.\n\n### Information gain : le critère qui tue le contenu scalé\n\nLe brevet Google sur l'[information gain score](https://patents.google.com/patent/US20200349181A1/en) (US20200349181A1) décrit un système qui évalue la valeur informationnelle marginale d'un document par rapport aux documents déjà connus pour une requête donnée. Un contenu AI scalé, par définition entraîné sur le corpus existant, a un information gain proche de zéro. Il reformule ce qui existe déjà.\n\nCe critère explique pourquoi un article AI bien rédigé (syntaxe correcte, structure claire, pas de hallucination) peut quand même être éliminé : il n'apporte rien de nouveau au corpus.\n\n### E-E-A-T au niveau du site, pas de la page\n\nL'Experience, Expertise, Authoritativeness et Trustworthiness ne se jouent pas uniquement page par page. Quand 40 % de votre contenu est perçu comme générique, le signal E-E-A-T du domaine entier est dilué. C'est la raison pour laquelle les pages historiques de qualité souffrent après une vague de publication AI — un phénomène que les [signaux de visibilité AI](/blog/4-signals-that-now-define-visibility-in-ai-search) confirment par un autre angle.\n\n### Le test du \"so what\"\n\nLa heuristique la plus fiable pour évaluer si votre contenu AI survivra au quality threshold : prenez un article, supprimez mentalement tout ce qui peut être trouvé dans les 5 premiers résultats existants. Ce qui reste est votre information gain réelle. Si la page est vide après cet exercice, elle est condamnée.\n\n## Stratégie de contenu post-threshold : le framework éditorial qui résiste\n\nLa réponse n'est pas d'abandonner l'AI. C'est de restructurer la chaîne de production pour que l'AI serve une stratégie éditoriale au lieu de la remplacer.\n\n### L'approche \"seed + scale\" au lieu de \"generate + publish\"\n\nLe modèle qui fonctionne en 2026 :\n\n1. **Seed** : un expert produit un document source dense — données propriétaires, retour d'expérience terrain, benchmark interne, analyse originale. Ce document n'est pas destiné à la publication directe.\n\n2. **Structure** : l'AI transforme ce document source en plusieurs contenus dérivés — chacun ciblant une intention différente, mais tous ancrés dans l'expertise originale.\n\n3. **Validate** : un éditeur vérifie la fidélité au document source et enrichit avec des éléments que l'AI ne peut pas produire (screenshots de cas clients anonymisés, données internes, nuances métier).\n\nCe workflow est plus lent (20-30 contenus/semaine au lieu de 200), mais chaque page porte un information gain réel parce qu'elle est dérivée d'une source originale.\n\n### Implémentation technique : structurer les signaux d'expertise\n\nAu-delà du contenu textuel, les signaux techniques renforcent l'évaluation E-E-A-T. Les données structurées d'auteur, correctement implémentées, constituent l'un de ces signaux.\n\n```html\n\u003Cscript type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"Guide technique : calibration des suspensions VTT pour l'enduro\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Marc Delannoy\",\n    \"jobTitle\": \"Mécanicien cycle certifié Shimano\",\n    \"url\": \"https://www.sport-equipment-example.fr/experts/marc-delannoy\",\n    \"sameAs\": [\n      \"https://www.linkedin.com/in/marc-delannoy-vtt\",\n      \"https://www.strava.com/athletes/marc-delannoy\"\n    ],\n    \"knowsAbout\": [\"mountain bike suspension\", \"enduro racing\", \"bicycle mechanics\"],\n    \"worksFor\": {\n      \"@type\": \"Organization\",\n      \"name\": \"Sport Equipment Example\",\n      \"url\": \"https://www.sport-equipment-example.fr\"\n    }\n  },\n  \"datePublished\": \"2026-05-01\",\n  \"dateModified\": \"2026-05-07\",\n  \"isBasedOn\": {\n    \"@type\": \"CreativeWork\",\n    \"name\": \"Données de calibration sur 340 vélos en atelier (2024-2026)\",\n    \"description\": \"Base de données propriétaire issue de 340 interventions de calibration suspension en atelier\"\n  }\n}\n\u003C/script>\n```\n\nLe champ `isBasedOn` est un signal rarement utilisé mais pertinent : il explicite que le contenu dérive de données propriétaires. Ce n'est pas un facteur de ranking direct, mais il alimente le knowledge graph de Google sur la provenance de l'information.\n\nNotez que la page auteur (`/experts/marc-delannoy`) doit elle-même être substantielle — bio détaillée, liste de publications, preuves d'expertise. Une page auteur vide ou template est pire que pas de page auteur du tout.\n\n## Auditer et assainir un corpus contaminé\n\nSi vous êtes déjà dans la phase descendante du \"Mt. AI\", la question urgente est : comment limiter les dégâts et récupérer ?\n\n### Segmentation du corpus par qualité\n\nL'audit commence par une segmentation. Vous devez identifier précisément quelles pages tirent le signal de qualité vers le bas. Screaming Frog, combiné avec un export Search Console, permet de croiser les données de performance avec les métadonnées de publication.\n\n```bash\n# Screaming Frog CLI : crawl avec extraction personnalisée\n# Configuration : extraire la date de publication et le mot-count\nscreamingfrog --crawl https://www.sport-equipment-example.fr \\\n  --headless \\\n  --output-folder /tmp/audit \\\n  --export-tabs \"Internal:All\" \\\n  --config /path/to/custom-config.seospiderconfig\n\n# Puis croiser avec les données Search Console via Python\nimport pandas as pd\n\ncrawl = pd.read_csv('/tmp/audit/internal_all.csv')\ngsc = pd.read_csv('search_console_export.csv')\n\n# Joindre sur l'URL\nmerged = crawl.merge(gsc, left_on='Address', right_on='page', how='left')\n\n# Identifier les pages à faible performance (\u003C 10 impressions sur 90 jours)\n# publiées après la vague AI (après le 2026-01-15)\nai_wave_start = '2026-01-15'\nlow_performers = merged[\n    (merged['Impressions'] \u003C 10) & \n    (merged['last_modified'] > ai_wave_start)\n]\n\nprint(f\"Pages AI à faible performance : {len(low_performers)}\")\nprint(f\"Pourcentage du total AI : {len(low_performers)/3200*100:.1f}%\")\n\n# Catégoriser l'action recommandée\nfor idx, row in low_performers.iterrows():\n    if row['Impressions'] == 0 and row['Word Count'] \u003C 800:\n        action = 'SUPPRIMER (410)'\n    elif row['Impressions'] \u003C 5:\n        action = 'NOINDEX ou fusionner'\n    else:\n        action = 'RÉÉCRIRE avec expertise'\n    low_performers.at[idx, 'action'] = action\n\nlow_performers.to_csv('remediation_plan.csv', index=False)\n```\n\n### Les trois leviers de remédiation\n\n**Levier 1 — Suppression franche (HTTP 410)** : les pages sans aucune impression sur 90 jours et sans backlinks doivent être supprimées avec un code 410 (Gone), pas un 404. Le 410 indique explicitement à Googlebot que la page est intentionnellement retirée, ce qui accélère la désindexation.\n\n**Levier 2 — Consolidation** : les pages qui couvrent des sujets proches doivent être fusionnées en un seul contenu exhaustif. Si vous avez 15 \"guides\" sur les chaussures de trail qui disent tous la même chose avec des variantes de longue traîne, consolidez en 3 pages substantielles avec des redirections 301.\n\n**Levier 3 — Enrichissement éditorial** : les pages qui ont un embryon de trafic (10-50 impressions) méritent d'être retravaillées par un expert du sujet pour injecter de l'information gain réelle. C'est le levier le plus rentable en ratio effort/impact.\n\nCe travail d'assainissement rejoint les principes de la [SEO programmatique sémantique](/blog/a-blueprint-for-semantic-programmatic-seo) : chaque page doit avoir une raison d'exister qui dépasse le simple ciblage d'un keyword.\n\n## Le monitoring continu comme filet de sécurité\n\nLe quality threshold n'est pas un événement ponctuel. C'est un filtre permanent qui s'applique à chaque crawl, à chaque core update. La détection tardive est ce qui transforme un problème gérable en catastrophe.\n\n### Les métriques à surveiller en continu\n\nTrois métriques composites permettent de détecter une dégradation avant qu'elle ne devienne visible dans le trafic :\n\n1. **Ratio pages indexées / pages soumises** (par segment) : une chute de plus de 15 points sur 14 jours est un signal d'alerte.\n\n2. **Position moyenne pondérée des pages historiques** : si les pages créées avant votre campagne AI perdent des positions, le signal site-level est en train de se dégrader.\n\n3. **Fréquence de crawl par segment** : une diminution du crawl budget alloué à un segment spécifique précède généralement une perte de visibilité de 2 à 4 semaines.\n\nCes trois métriques, suivies de manière automatisée avec un outil comme Seogard qui alerte sur les régressions en temps réel, permettent de réagir avant la core update plutôt qu'après.\n\n### Le piège de l'inertie post-crash\n\nLe réflexe le plus dangereux après un crash \"Mt. AI\" est de ne rien faire en espérant que la prochaine update sera plus clémente. Les données montrent le contraire : chaque core update successive enfonce davantage les sites dont le ratio contenu à faible valeur / contenu de qualité est défavorable. L'assainissement doit être immédiat et agressif.\n\nLes sites qui ont récupéré le plus rapidement après les updates 2025-2026 partagent un point commun : ils ont supprimé entre 40 et 60 % de leur contenu AI dans les 30 jours suivant le crash, avant de reconstruire progressivement avec le framework \"seed + scale\".\n\n## L'AI comme outil, pas comme stratégie\n\nLa distinction fondamentale que le quality threshold de Google force l'industrie à intégrer : l'AI est un outil de production, pas une stratégie de contenu. Un LLM peut accélérer la rédaction, structurer l'information, adapter le ton. Il ne peut pas créer d'expertise, générer des données propriétaires, ni apporter une perspective originale sur un sujet.\n\nLes sites qui utilisent l'AI pour amplifier une expertise existante — données internes, retours terrain, analyses originales — ne sont pas affectés par le quality threshold. Ceux qui utilisent l'AI pour fabriquer de l'expertise à partir de rien sont systématiquement éliminés.\n\nC'est la même dynamique que celle observée dans [la visibilité AI](/blog/why-ai-search-skips-your-content-and-how-to-diagnose-where-it-s-failing-via-sejournal-jeffrey-coyle) : les modèles de langage, qu'ils soient chez Google ou chez OpenAI, convergent vers les mêmes signaux de qualité. Un contenu sans information gain est ignoré par les deux systèmes.\n\nLe quality threshold de Google n'est pas un filtre anti-AI. C'est un filtre anti-médiocrité à grande échelle — et l'AI a simplement rendu la médiocrité scalable. La survie passe par le monitoring continu des signaux de dégradation, l'assainissement agressif des corpus contaminés, et une chaîne éditoriale où l'expertise humaine reste le point d'entrée, pas un vernis de relecture.","https://seogard.io/blog/google-s-quality-threshold-is-quietly-killing-scaled-ai-content-at-ranking-via-sejournal-taylordanrw","Actualités SEO","2026-05-08T10:02:41.970Z","2026-05-08","Analyse technique du quality threshold de Google qui élimine silencieusement le contenu AI scalé. Détection, diagnostic et stratégie éditoriale pour survivre.","\u003Cp>Un site média publie 4 000 articles générés par LLM en trois mois. Le trafic organique triple. Puis une core update passe, et 78 % des pages tombent hors du top 100 en moins de deux semaines. Ce scénario — que Taylor DanRW décrit comme le \"Mt. AI\" pattern dans \u003Ca href=\"https://www.searchenginejournal.com/googles-quality-threshold-is-quietly-killing-scaled-ai-content/574071/\">Search Engine Journal\u003C/a> — se répète sur des dizaines de domaines depuis fin 2024. Le problème n'est pas que Google détecte le contenu AI. Le problème est qu'il applique un seuil de qualité que le volume seul ne peut pas franchir.\u003C/p>\n\u003Ch2>Le \"Mt. AI\" pattern : anatomie d'un crash prévisible\u003C/h2>\n\u003Cp>Le terme \"Mt. AI\" décrit une courbe de trafic en forme de montagne : ascension rapide, plateau court, chute verticale. Ce pattern est devenu tellement récurrent qu'il constitue un signal d'alerte fiable pour les SEO qui analysent des domaines concurrents.\u003C/p>\n\u003Ch3>La mécanique du seuil\u003C/h3>\n\u003Cp>Google ne fonctionne pas avec un classificateur binaire \"AI = mauvais / humain = bon\". Le quality threshold est un ensemble de signaux agrégés qui évaluent la valeur ajoutée d'une page par rapport au corpus existant sur la même intention de recherche. Quand un site publie massivement du contenu reformulé sans expertise différenciante, ces signaux convergent vers un score insuffisant — pas page par page, mais au niveau du domaine.\u003C/p>\n\u003Cp>Le mécanisme ressemble à ce que les ingénieurs de Google décrivent dans la documentation sur le \u003Ca href=\"https://developers.google.com/search/docs/fundamentals/creating-helpful-content\">site-level classifier\u003C/a> : un signal de qualité global qui affecte la capacité de toutes les pages du domaine à se positionner, y compris celles qui existaient avant la vague de contenu AI.\u003C/p>\n\u003Ch3>Un scénario réel : le cas d'un site e-commerce contenu\u003C/h3>\n\u003Cp>Prenons un cas concret et représentatif. Un e-commerce de matériel de sport avec 12 000 pages produit et 800 pages éditoriales décide d'utiliser GPT-4 pour créer 3 200 guides d'achat et comparatifs en 10 semaines. La stratégie semble rationnelle : couvrir la longue traîne informationnelle pour alimenter le haut du tunnel.\u003C/p>\n\u003Cp>\u003Cstrong>Semaines 1-8\u003C/strong> : les pages sont indexées rapidement (le site a un bon crawl budget historique). Le trafic organique passe de 145 000 à 310 000 sessions/mois. Les KPIs internes sont au vert.\u003C/p>\n\u003Cp>\u003Cstrong>Semaines 9-14\u003C/strong> : plateau. Le taux d'indexation des nouvelles pages chute de 92 % à 34 %. Google Search Console montre une augmentation des pages \"Discovered – currently not indexed\" et \"Crawled – currently not indexed\".\u003C/p>\n\u003Cp>\u003Cstrong>Semaine 15 (core update)\u003C/strong> : le trafic tombe à 89 000 sessions/mois. Les 3 200 nouvelles pages perdent en moyenne 47 positions. Pire : les 800 pages éditoriales historiques (rédigées par des experts) perdent 12 positions en moyenne. Le signal site-level a contaminé l'ensemble du domaine.\u003C/p>\n\u003Cp>Ce scénario illustre un point que \u003Ca href=\"/blog/why-more-content-is-no-longer-a-reliable-way-to-grow-seo\">nous avons déjà analysé\u003C/a> : la corrélation entre volume de publication et croissance SEO s'est rompue. Le quality threshold rend cette stratégie non seulement inefficace, mais activement destructrice.\u003C/p>\n\u003Ch2>Détecter les signaux avant-coureurs dans Search Console\u003C/h2>\n\u003Cp>Le crash ne survient pas sans avertissement. Les signaux existent dans vos données — il faut savoir où regarder.\u003C/p>\n\u003Ch3>Le ratio indexation / publication\u003C/h3>\n\u003Cp>Le premier indicateur fiable est l'évolution du taux d'indexation de vos nouvelles pages. Un site en bonne santé éditoriale maintient un ratio supérieur à 85 % sur les pages soumises. Quand ce ratio chute sous 50 % sans changement technique, Google vous envoie un message clair : il ne juge pas vos nouvelles pages dignes d'indexation.\u003C/p>\n\u003Cp>Vous pouvez monitorer ce ratio en exportant les données de couverture d'index via l'API Search Console :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">from\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> google.oauth2 \u003C/span>\u003Cspan style=\"color:#F97583\">import\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> service_account\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">from\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> googleapiclient.discovery \u003C/span>\u003Cspan style=\"color:#F97583\">import\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> build\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> json\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">SCOPES\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'https://www.googleapis.com/auth/webmasters.readonly'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">SERVICE_ACCOUNT_FILE\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'credentials.json'\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">credentials \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> service_account.Credentials.from_service_account_file(\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    SERVICE_ACCOUNT_FILE\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#FFAB70\">scopes\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\">SCOPES\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">service \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> build(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'searchconsole'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'v1'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#FFAB70\">credentials\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">credentials)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Récupérer les stats d'indexation par catégorie\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">request \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    'startDate'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'2026-04-01'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    'endDate'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'2026-05-07'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    'dimensions'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'page'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    'dimensionFilterGroups'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">        'filters'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">            'dimension'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'page'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">            'operator'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'includingRegex'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">            'expression'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'/guides/.*'\u003C/span>\u003Cspan style=\"color:#6A737D\">  # Filtrer sur le répertoire des contenus AI\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        }]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    }],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    'rowLimit'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">25000\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">response \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> service.searchanalytics().query(\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\">    siteUrl\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'https://www.sport-equipment-example.fr'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFAB70\">    body\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">request\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">).execute()\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">indexed_pages \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> len\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(response.get(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'rows'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, []))\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">total_published \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 3200\u003C/span>\u003Cspan style=\"color:#6A737D\">  # Nombre connu de pages publiées\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">ratio \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (indexed_pages \u003C/span>\u003Cspan style=\"color:#F97583\">/\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> total_published) \u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 100\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#F97583\">f\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Ratio d'indexation : \u003C/span>\u003Cspan style=\"color:#79B8FF\">{\u003C/span>\u003Cspan style=\"color:#E1E4E8\">ratio\u003C/span>\u003Cspan style=\"color:#F97583\">:.1f\u003C/span>\u003Cspan style=\"color:#79B8FF\">}\u003C/span>\u003Cspan style=\"color:#9ECBFF\">%\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#F97583\">f\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Pages indexées avec impressions : \u003C/span>\u003Cspan style=\"color:#79B8FF\">{\u003C/span>\u003Cspan style=\"color:#E1E4E8\">indexed_pages\u003C/span>\u003Cspan style=\"color:#79B8FF\">}\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#F97583\">f\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Pages sans visibilité : \u003C/span>\u003Cspan style=\"color:#79B8FF\">{\u003C/span>\u003Cspan style=\"color:#E1E4E8\">total_published \u003C/span>\u003Cspan style=\"color:#F97583\">-\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> indexed_pages\u003C/span>\u003Cspan style=\"color:#79B8FF\">}\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3>Le signal de qualité dans les données de performance\u003C/h3>\n\u003Cp>Le deuxième indicateur est plus subtil : une baisse du CTR moyen sur les pages existantes, combinée à une perte de positions sur des requêtes historiquement stables. Ce pattern indique que le site-level quality signal commence à affecter votre domaine.\u003C/p>\n\u003Cp>Dans Search Console, comparez les performances de vos pages pré-AI et post-AI sur une fenêtre de 28 jours glissants. Si les pages historiques perdent du terrain sans modification, c'est le signal site-level qui agit.\u003C/p>\n\u003Ch3>Les logs serveur ne mentent pas\u003C/h3>\n\u003Cp>L'analyse des logs Googlebot révèle un autre signal : la fréquence de recrawl des pages AI par rapport aux pages historiques. Un bot qui diminue sa fréquence de crawl sur un segment spécifique indique une dépriorisation.\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Extraire la fréquence de crawl Googlebot par répertoire sur les 30 derniers jours\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">zcat\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/log/nginx/access.log.\u003C/span>\u003Cspan style=\"color:#79B8FF\">*\u003C/span>\u003Cspan style=\"color:#9ECBFF\">.gz\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">  grep\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"googlebot\"\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">  awk\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{print $7}'\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">  sed\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 's/\\?.*//g'\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">  awk\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -F\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'/'\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    if ($2 == \"guides\") print \"ai_content\";\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    else if ($2 == \"blog\") print \"editorial_legacy\";\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    else if ($2 == \"products\") print \"product_pages\";\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    else print \"other\";\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">  sort\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> uniq\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> sort\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -rn\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Résultat typique d'un site touché :\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># 145230  product_pages\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">#  23100  editorial_legacy\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">#   4200  ai_content        ← ratio disproportionné vs nombre de pages\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">#  12400  other\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Si vous avez 3 200 pages AI et que Googlebot n'en visite que 4 200 fois en 30 jours (1.3 crawl/page/mois), contre 29 crawls/page/mois pour vos pages produit, la conclusion est évidente. Un outil de monitoring comme Seogard permet de détecter automatiquement ces variations de crawl budget par segment, sans parsing manuel des logs.\u003C/p>\n\u003Ch2>Ce que Google évalue réellement : au-delà du détecteur AI\u003C/h2>\n\u003Cp>La confusion la plus répandue dans l'industrie est de croire que Google utilise un \"détecteur d'IA\" binaire. Ce n'est pas le cas. Les documents de la \u003Ca href=\"https://static.googleusercontent.com/media/guidelines.raterhub.com/en//searchqualityevaluatorguidelines.pdf\">Google Search Quality Rater Guidelines\u003C/a> et les communications officielles pointent vers une évaluation multi-dimensionnelle.\u003C/p>\n\u003Ch3>Information gain : le critère qui tue le contenu scalé\u003C/h3>\n\u003Cp>Le brevet Google sur l'\u003Ca href=\"https://patents.google.com/patent/US20200349181A1/en\">information gain score\u003C/a> (US20200349181A1) décrit un système qui évalue la valeur informationnelle marginale d'un document par rapport aux documents déjà connus pour une requête donnée. Un contenu AI scalé, par définition entraîné sur le corpus existant, a un information gain proche de zéro. Il reformule ce qui existe déjà.\u003C/p>\n\u003Cp>Ce critère explique pourquoi un article AI bien rédigé (syntaxe correcte, structure claire, pas de hallucination) peut quand même être éliminé : il n'apporte rien de nouveau au corpus.\u003C/p>\n\u003Ch3>E-E-A-T au niveau du site, pas de la page\u003C/h3>\n\u003Cp>L'Experience, Expertise, Authoritativeness et Trustworthiness ne se jouent pas uniquement page par page. Quand 40 % de votre contenu est perçu comme générique, le signal E-E-A-T du domaine entier est dilué. C'est la raison pour laquelle les pages historiques de qualité souffrent après une vague de publication AI — un phénomène que les \u003Ca href=\"/blog/4-signals-that-now-define-visibility-in-ai-search\">signaux de visibilité AI\u003C/a> confirment par un autre angle.\u003C/p>\n\u003Ch3>Le test du \"so what\"\u003C/h3>\n\u003Cp>La heuristique la plus fiable pour évaluer si votre contenu AI survivra au quality threshold : prenez un article, supprimez mentalement tout ce qui peut être trouvé dans les 5 premiers résultats existants. Ce qui reste est votre information gain réelle. Si la page est vide après cet exercice, elle est condamnée.\u003C/p>\n\u003Ch2>Stratégie de contenu post-threshold : le framework éditorial qui résiste\u003C/h2>\n\u003Cp>La réponse n'est pas d'abandonner l'AI. C'est de restructurer la chaîne de production pour que l'AI serve une stratégie éditoriale au lieu de la remplacer.\u003C/p>\n\u003Ch3>L'approche \"seed + scale\" au lieu de \"generate + publish\"\u003C/h3>\n\u003Cp>Le modèle qui fonctionne en 2026 :\u003C/p>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Seed\u003C/strong> : un expert produit un document source dense — données propriétaires, retour d'expérience terrain, benchmark interne, analyse originale. Ce document n'est pas destiné à la publication directe.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Structure\u003C/strong> : l'AI transforme ce document source en plusieurs contenus dérivés — chacun ciblant une intention différente, mais tous ancrés dans l'expertise originale.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Validate\u003C/strong> : un éditeur vérifie la fidélité au document source et enrichit avec des éléments que l'AI ne peut pas produire (screenshots de cas clients anonymisés, données internes, nuances métier).\u003C/p>\n\u003C/li>\n\u003C/ol>\n\u003Cp>Ce workflow est plus lent (20-30 contenus/semaine au lieu de 200), mais chaque page porte un information gain réel parce qu'elle est dérivée d'une source originale.\u003C/p>\n\u003Ch3>Implémentation technique : structurer les signaux d'expertise\u003C/h3>\n\u003Cp>Au-delà du contenu textuel, les signaux techniques renforcent l'évaluation E-E-A-T. Les données structurées d'auteur, correctement implémentées, constituent l'un de ces signaux.\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">&#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">script\u003C/span>\u003Cspan style=\"color:#B392F0\"> type\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"application/ld+json\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"@context\": \"https://schema.org\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"@type\": \"Article\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"headline\": \"Guide technique : calibration des suspensions VTT pour l'enduro\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"author\": {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"@type\": \"Person\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"name\": \"Marc Delannoy\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"jobTitle\": \"Mécanicien cycle certifié Shimano\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"url\": \"https://www.sport-equipment-example.fr/experts/marc-delannoy\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"sameAs\": [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      \"https://www.linkedin.com/in/marc-delannoy-vtt\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      \"https://www.strava.com/athletes/marc-delannoy\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"knowsAbout\": [\"mountain bike suspension\", \"enduro racing\", \"bicycle mechanics\"],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"worksFor\": {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      \"@type\": \"Organization\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      \"name\": \"Sport Equipment Example\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      \"url\": \"https://www.sport-equipment-example.fr\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"datePublished\": \"2026-05-01\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"dateModified\": \"2026-05-07\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  \"isBasedOn\": {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"@type\": \"CreativeWork\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"name\": \"Données de calibration sur 340 vélos en atelier (2024-2026)\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    \"description\": \"Base de données propriétaire issue de 340 interventions de calibration suspension en atelier\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">&#x3C;/\u003C/span>\u003Cspan style=\"color:#85E89D\">script\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Le champ \u003Ccode>isBasedOn\u003C/code> est un signal rarement utilisé mais pertinent : il explicite que le contenu dérive de données propriétaires. Ce n'est pas un facteur de ranking direct, mais il alimente le knowledge graph de Google sur la provenance de l'information.\u003C/p>\n\u003Cp>Notez que la page auteur (\u003Ccode>/experts/marc-delannoy\u003C/code>) doit elle-même être substantielle — bio détaillée, liste de publications, preuves d'expertise. Une page auteur vide ou template est pire que pas de page auteur du tout.\u003C/p>\n\u003Ch2>Auditer et assainir un corpus contaminé\u003C/h2>\n\u003Cp>Si vous êtes déjà dans la phase descendante du \"Mt. AI\", la question urgente est : comment limiter les dégâts et récupérer ?\u003C/p>\n\u003Ch3>Segmentation du corpus par qualité\u003C/h3>\n\u003Cp>L'audit commence par une segmentation. Vous devez identifier précisément quelles pages tirent le signal de qualité vers le bas. Screaming Frog, combiné avec un export Search Console, permet de croiser les données de performance avec les métadonnées de publication.\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Screaming Frog CLI : crawl avec extraction personnalisée\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Configuration : extraire la date de publication et le mot-count\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">screamingfrog\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --crawl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://www.sport-equipment-example.fr\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --headless\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --output-folder\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /tmp/audit\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --export-tabs\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Internal:All\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/custom-config.seospiderconfig\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Puis croiser avec les données Search Console via Python\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">import\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pandas\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> as\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pd\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">crawl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pd.read_csv\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#B392F0\">'/tmp/audit/internal_all.csv'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">gsc\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pd.read_csv\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#B392F0\">'search_console_export.csv'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Joindre sur l'URL\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">merged\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> crawl.merge\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#B392F0\">gsc,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> left_on='Address',\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> right_on='page',\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> how='left'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Identifier les pages à faible performance (&#x3C; 10 impressions sur 90 jours)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># publiées après la vague AI (après le 2026-01-15)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">ai_wave_start\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '2026-01-15'\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">low_performers\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> merged[\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    (\u003C/span>\u003Cspan style=\"color:#B392F0\">merged[\u003C/span>\u003Cspan style=\"color:#B392F0\">'Impressions'\u003C/span>\u003Cspan style=\"color:#B392F0\">]\u003C/span>\u003Cspan style=\"color:#F97583\"> &#x3C;\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 10\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) &#x26; \u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    (\u003C/span>\u003Cspan style=\"color:#B392F0\">merged[\u003C/span>\u003Cspan style=\"color:#B392F0\">'last_modified'\u003C/span>\u003Cspan style=\"color:#B392F0\">]\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ai_wave_start\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">f\u003C/span>\u003Cspan style=\"color:#B392F0\">\"Pages AI à faible performance : {len(low_performers)}\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">f\u003C/span>\u003Cspan style=\"color:#B392F0\">\"Pourcentage du total AI : {len(low_performers)/3200*100:.1f}%\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Catégoriser l'action recommandée\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> idx, row in low_performers.iterrows():\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    if\u003C/span>\u003Cspan style=\"color:#B392F0\"> row[\u003C/span>\u003Cspan style=\"color:#B392F0\">'Impressions'\u003C/span>\u003Cspan style=\"color:#B392F0\">]\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ==\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> and\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> row['Word Count']\u003C/span>\u003Cspan style=\"color:#F97583\"> &#x3C;\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 800:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">        action\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'SUPPRIMER (410)'\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    elif\u003C/span>\u003Cspan style=\"color:#B392F0\"> row[\u003C/span>\u003Cspan style=\"color:#B392F0\">'Impressions'\u003C/span>\u003Cspan style=\"color:#B392F0\">]\u003C/span>\u003Cspan style=\"color:#F97583\"> &#x3C;\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 5:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">        action\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'NOINDEX ou fusionner'\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    else:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">        action\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'RÉÉCRIRE avec expertise'\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">    low_performers.at[idx,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'action']\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> =\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> action\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">low_performers.to_csv(\u003C/span>\u003Cspan style=\"color:#B392F0\">'remediation_plan.csv'\u003C/span>\u003Cspan style=\"color:#B392F0\">,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> index=False\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3>Les trois leviers de remédiation\u003C/h3>\n\u003Cp>\u003Cstrong>Levier 1 — Suppression franche (HTTP 410)\u003C/strong> : les pages sans aucune impression sur 90 jours et sans backlinks doivent être supprimées avec un code 410 (Gone), pas un 404. Le 410 indique explicitement à Googlebot que la page est intentionnellement retirée, ce qui accélère la désindexation.\u003C/p>\n\u003Cp>\u003Cstrong>Levier 2 — Consolidation\u003C/strong> : les pages qui couvrent des sujets proches doivent être fusionnées en un seul contenu exhaustif. Si vous avez 15 \"guides\" sur les chaussures de trail qui disent tous la même chose avec des variantes de longue traîne, consolidez en 3 pages substantielles avec des redirections 301.\u003C/p>\n\u003Cp>\u003Cstrong>Levier 3 — Enrichissement éditorial\u003C/strong> : les pages qui ont un embryon de trafic (10-50 impressions) méritent d'être retravaillées par un expert du sujet pour injecter de l'information gain réelle. C'est le levier le plus rentable en ratio effort/impact.\u003C/p>\n\u003Cp>Ce travail d'assainissement rejoint les principes de la \u003Ca href=\"/blog/a-blueprint-for-semantic-programmatic-seo\">SEO programmatique sémantique\u003C/a> : chaque page doit avoir une raison d'exister qui dépasse le simple ciblage d'un keyword.\u003C/p>\n\u003Ch2>Le monitoring continu comme filet de sécurité\u003C/h2>\n\u003Cp>Le quality threshold n'est pas un événement ponctuel. C'est un filtre permanent qui s'applique à chaque crawl, à chaque core update. La détection tardive est ce qui transforme un problème gérable en catastrophe.\u003C/p>\n\u003Ch3>Les métriques à surveiller en continu\u003C/h3>\n\u003Cp>Trois métriques composites permettent de détecter une dégradation avant qu'elle ne devienne visible dans le trafic :\u003C/p>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Ratio pages indexées / pages soumises\u003C/strong> (par segment) : une chute de plus de 15 points sur 14 jours est un signal d'alerte.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Position moyenne pondérée des pages historiques\u003C/strong> : si les pages créées avant votre campagne AI perdent des positions, le signal site-level est en train de se dégrader.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Fréquence de crawl par segment\u003C/strong> : une diminution du crawl budget alloué à un segment spécifique précède généralement une perte de visibilité de 2 à 4 semaines.\u003C/p>\n\u003C/li>\n\u003C/ol>\n\u003Cp>Ces trois métriques, suivies de manière automatisée avec un outil comme Seogard qui alerte sur les régressions en temps réel, permettent de réagir avant la core update plutôt qu'après.\u003C/p>\n\u003Ch3>Le piège de l'inertie post-crash\u003C/h3>\n\u003Cp>Le réflexe le plus dangereux après un crash \"Mt. AI\" est de ne rien faire en espérant que la prochaine update sera plus clémente. Les données montrent le contraire : chaque core update successive enfonce davantage les sites dont le ratio contenu à faible valeur / contenu de qualité est défavorable. L'assainissement doit être immédiat et agressif.\u003C/p>\n\u003Cp>Les sites qui ont récupéré le plus rapidement après les updates 2025-2026 partagent un point commun : ils ont supprimé entre 40 et 60 % de leur contenu AI dans les 30 jours suivant le crash, avant de reconstruire progressivement avec le framework \"seed + scale\".\u003C/p>\n\u003Ch2>L'AI comme outil, pas comme stratégie\u003C/h2>\n\u003Cp>La distinction fondamentale que le quality threshold de Google force l'industrie à intégrer : l'AI est un outil de production, pas une stratégie de contenu. Un LLM peut accélérer la rédaction, structurer l'information, adapter le ton. Il ne peut pas créer d'expertise, générer des données propriétaires, ni apporter une perspective originale sur un sujet.\u003C/p>\n\u003Cp>Les sites qui utilisent l'AI pour amplifier une expertise existante — données internes, retours terrain, analyses originales — ne sont pas affectés par le quality threshold. Ceux qui utilisent l'AI pour fabriquer de l'expertise à partir de rien sont systématiquement éliminés.\u003C/p>\n\u003Cp>C'est la même dynamique que celle observée dans \u003Ca href=\"/blog/why-ai-search-skips-your-content-and-how-to-diagnose-where-it-s-failing-via-sejournal-jeffrey-coyle\">la visibilité AI\u003C/a> : les modèles de langage, qu'ils soient chez Google ou chez OpenAI, convergent vers les mêmes signaux de qualité. Un contenu sans information gain est ignoré par les deux systèmes.\u003C/p>\n\u003Cp>Le quality threshold de Google n'est pas un filtre anti-AI. C'est un filtre anti-médiocrité à grande échelle — et l'AI a simplement rendu la médiocrité scalable. La survie passe par le monitoring continu des signaux de dégradation, l'assainissement agressif des corpus contaminés, et une chaîne éditoriale où l'expertise humaine reste le point d'entrée, pas un vernis de relecture.\u003C/p>",null,12,[18,19,20,21,22],"quality threshold","contenu AI","google core update","scaled content","editorial strategy","Seuil de qualité Google : pourquoi le contenu AI à grande échelle s'effondre","Fri May 08 2026 10:02:41 GMT+0000 (Coordinated Universal Time)",[26,41,57],{"_id":27,"slug":28,"__v":6,"author":7,"canonical":29,"category":10,"createdAt":30,"date":31,"description":32,"image":15,"imageAlt":15,"readingTime":16,"tags":33,"title":39,"updatedAt":40},"6a041412aa6b273b0c40f181","how-to-build-local-pages-that-win-in-ai-powered-search-via-sejournal-lorenbaker","https://seogard.io/blog/how-to-build-local-pages-that-win-in-ai-powered-search-via-sejournal-lorenbaker","2026-05-13T06:02:58.743Z","2026-05-13","Guide technique pour construire des pages locales qui performent dans les AI Overviews et AI Mode. Schema, SSR, contenu structuré.",[34,35,36,37,38],"local SEO","AI search","pages locales","schema markup","SSR","Pages locales pour l'AI Search : architecture technique","Wed May 13 2026 06:02:58 GMT+0000 (Coordinated Universal Time)",{"_id":42,"slug":43,"__v":6,"author":7,"canonical":44,"category":10,"createdAt":45,"date":46,"description":47,"image":15,"imageAlt":15,"readingTime":48,"tags":49,"title":55,"updatedAt":56},"6a02c291aa6b273b0c2a74f9","the-tech-seo-audit-for-the-ai-search-era-how-to-maximize-your-ai-visibility-via-sejournal-jetoctopus","https://seogard.io/blog/the-tech-seo-audit-for-the-ai-search-era-how-to-maximize-your-ai-visibility-via-sejournal-jetoctopus","2026-05-12T06:02:57.339Z","2026-05-12","Comment adapter votre audit technique SEO aux exigences des AI Overviews, du crawl par les LLMs et du grounding. Méthodes, code et scénarios concrets.",14,[50,51,52,53,54],"tech seo audit","ai search","ai visibility","crawl budget","structured data","Audit SEO technique pour l'ère AI Search : guide avancé","Tue May 12 2026 06:02:57 GMT+0000 (Coordinated Universal Time)",{"_id":58,"slug":59,"__v":6,"author":7,"canonical":60,"category":10,"createdAt":61,"date":46,"description":62,"image":15,"imageAlt":15,"readingTime":16,"tags":63,"title":68,"updatedAt":69},"6a02fac0aa6b273b0c58d096","the-consensus-gap-via-sejournal-kevin-indig","https://seogard.io/blog/the-consensus-gap-via-sejournal-kevin-indig","2026-05-12T10:02:40.519Z","Une marque peut dominer dans un dashboard AI agrégé et être absente de deux moteurs sur trois. Analyse technique du Consensus Gap et méthodes pour le détecter.",[64,35,65,66,67],"consensus gap","LLM visibility","GEO","multi-engine","The Consensus Gap : votre marque visible sur un LLM, invisible sur deux autres","Tue May 12 2026 10:02:40 GMT+0000 (Coordinated Universal Time)"]