[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fOHcVnrnPw2z2wp3FO-xW1o2pk-SXBwXFbQaKuPKbBOM":3,"$fjPoMAYqBIaXs8XlsjfNMEwyRH5l9kUD3HqcYjXzvEFc":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},"69ede2d1aa6b273b0c2798e1","google-s-robots-txt-docs-expand-deep-links-get-rules-eu-steps-in-seo-pulse-via-sejournal-mattgsouthern",0,"Equipe Seogard","Trois signaux majeurs cette semaine. Google étend sa documentation robots.txt pour documenter explicitement les directives qu'il ne supporte pas. Il publie en parallèle des best practices formalisées pour les deep links Android/iOS. Et la Commission européenne propose d'obliger Google à partager ses données de recherche avec ses concurrents et les chatbots IA, dans le cadre du Digital Markets Act. Ces trois événements, pris ensemble, redessinent les contours du SEO technique pour les mois à venir.\n\n## L'expansion de la documentation robots.txt : ce que Google dit vraiment\n\nLa mise à jour de la documentation robots.txt de Google ne se limite pas à un exercice de style éditorial. Google documente désormais les directives qu'il **ne supporte pas** — `Crawl-delay`, `Noindex` dans robots.txt, `Host`, et plusieurs autres. Ce qui était auparavant de la connaissance tribale partagée dans des threads Twitter devient une référence officielle.\n\n### Pourquoi c'est significatif\n\nJusqu'ici, la position de Google sur les directives non standard était dispersée entre des réponses de John Mueller sur Reddit, des vidéos Google Search Central, et des articles de blog tiers. Avoir une page unique de référence change la donne pour trois raisons :\n\n1. **Clarification du comportement de parsing** : Googlebot parse le fichier robots.txt selon la [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309) (publiée en septembre 2022). Toute directive hors spec est ignorée silencieusement. Pas d'erreur, pas de warning dans Search Console. Votre `Crawl-delay: 10` n'a jamais eu le moindre effet sur Googlebot — mais il impacte bien d'autres bots comme Bingbot ou certains crawlers de monitoring.\n\n2. **Signal d'intention** : documenter ce qui n'est pas supporté est souvent le prélude à documenter ce qui pourrait le devenir. Google a l'habitude de formaliser avant d'itérer.\n\n3. **Impact sur les audits techniques** : les équipes SEO qui auditent des robots.txt de sites legacy peuvent désormais pointer vers une source officielle pour justifier le nettoyage de directives obsolètes.\n\n### Le piège classique : `Noindex` dans robots.txt\n\nC'est le cas d'école. Pendant des années, Google a officieusement supporté `Noindex:` comme directive dans robots.txt. En septembre 2019, le support a été retiré. Pourtant, en 2026, des milliers de sites utilisent encore cette directive en croyant qu'elle empêche l'indexation.\n\nVoici un robots.txt typique d'un e-commerce de 20 000 pages, récupéré lors d'un audit récent :\n\n```txt\nUser-agent: *\nDisallow: /cart/\nDisallow: /checkout/\nDisallow: /account/\nNoindex: /promo/\nCrawl-delay: 5\n\nUser-agent: Googlebot\nAllow: /\n\nSitemap: https://shop.example.fr/sitemap_index.xml\n```\n\nTrois problèmes ici. `Noindex:` est ignoré par Googlebot — les pages `/promo/` restent indexables si elles ne portent pas de `\u003Cmeta name=\"robots\" content=\"noindex\">` ou un header HTTP `X-Robots-Tag: noindex`. `Crawl-delay: 5` est ignoré par Googlebot mais ralentit Bingbot, ce qui peut être voulu ou non. Et la règle `Allow: /` pour Googlebot est redondante puisque tout est autorisé par défaut sauf les `Disallow` explicites.\n\nLa correction propre pour empêcher l'indexation des pages promo sans bloquer le crawl (utile pour la découverte de liens internes) :\n\n```html\n\u003C!-- Sur chaque page /promo/* -->\n\u003Cmeta name=\"robots\" content=\"noindex, follow\">\n```\n\nOu côté serveur, si vous ne voulez pas toucher au template :\n\n```nginx\n# Configuration Nginx\nlocation /promo/ {\n    add_header X-Robots-Tag \"noindex, follow\" always;\n    # 'always' est nécessaire pour que le header soit envoyé\n    # même sur les réponses 3xx et 4xx\n}\n```\n\nL'avantage du header HTTP `X-Robots-Tag` : il fonctionne aussi sur les fichiers non-HTML (PDF, images), et il n'exige pas de modifier les templates applicatifs. Pour un site avec 500+ pages promo générées dynamiquement, c'est souvent la solution la plus propre.\n\n### Auditer votre robots.txt actuel\n\nScreaming Frog permet de vérifier rapidement si votre robots.txt contient des directives non supportées. Mais pour un monitoring continu — surtout sur des sites où plusieurs équipes (SEO, dev, ops) modifient le fichier — un outil comme Seogard détecte automatiquement les changements de robots.txt et alerte quand une directive invalide est introduite. Sur un site de 15 000 pages, un `Disallow: /` ajouté par erreur un vendredi soir peut désindexer l'intégralité du site avant que quiconque ne s'en rende compte le lundi.\n\nPour ceux qui veulent déjà comprendre [comment Google documente l'expansion potentielle des règles non supportées](/blog/google-may-expand-unsupported-robots-txt-rules-list-via-sejournal-mattgsouthern), nous avions analysé les premiers signaux il y a quelques semaines.\n\n## Deep links : Google formalise les best practices\n\nGoogle a publié des [recommandations structurées pour les deep links](https://developer.android.com/training/app-links) — ces liens qui redirigent l'utilisateur directement vers un contenu spécifique dans une application mobile plutôt que vers la page d'accueil ou le navigateur. Ce n'est pas nouveau techniquement, mais la formalisation par Google dans un contexte SEO l'est.\n\n### Le problème que ça résout\n\nConsidérez un média en ligne avec 8 000 articles. Un utilisateur qui clique sur un résultat Google depuis un smartphone avec l'app installée attend d'atterrir sur l'article, pas sur l'écran d'accueil de l'app. Sans deep links correctement configurés, c'est exactement ce qui se passe — et le taux de rebond explose.\n\nGoogle distingue trois types de liens pour Android :\n\n- **Deep links** : gérés par des intent filters, mais sans vérification de propriété. N'importe quelle app peut déclarer gérer un domaine.\n- **Web links** : deep links utilisant `http://` ou `https://`, avec la même limitation.\n- **Android App Links** : deep links vérifiés via Digital Asset Links (`assetlinks.json`). Le système ouvre directement l'app sans demander à l'utilisateur de choisir.\n\nC'est le troisième type qui nous intéresse pour le SEO. Google recommande explicitement les Android App Links pour éviter les ambiguïtés d'intent resolution.\n\n### Implémentation technique des Android App Links\n\nDeux étapes. D'abord, le fichier de vérification côté serveur :\n\n```json\n// Hébergé à https://media.example.fr/.well-known/assetlinks.json\n[{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"android_app\",\n    \"package_name\": \"fr.example.media\",\n    \"sha256_cert_fingerprints\": [\n      \"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5\"\n    ]\n  }\n}]\n```\n\nLe fingerprint SHA-256 doit correspondre exactement au certificat de signature de votre APK/AAB. Une erreur fréquente : utiliser le certificat de debug au lieu du certificat de release. Pour obtenir le bon fingerprint :\n\n```bash\n# Pour un keystore de release\nkeytool -list -v -keystore release-keystore.jks -alias media-key | grep SHA256\n\n# Pour un App Bundle signé par Google Play (Play App Signing)\n# Le fingerprint est disponible dans la Play Console\n# Setup > App signing > App signing key certificate\n```\n\nEnsuite, dans le `AndroidManifest.xml` de l'application :\n\n```xml\n\u003Cactivity android:name=\".ArticleActivity\"\n    android:exported=\"true\">\n    \u003Cintent-filter android:autoVerify=\"true\">\n        \u003Caction android:name=\"android.intent.action.VIEW\" />\n        \u003Ccategory android:name=\"android.intent.category.DEFAULT\" />\n        \u003Ccategory android:name=\"android.intent.category.BROWSABLE\" />\n        \u003Cdata\n            android:scheme=\"https\"\n            android:host=\"media.example.fr\"\n            android:pathPrefix=\"/article/\" />\n    \u003C/intent-filter>\n\u003C/activity>\n```\n\nL'attribut `android:autoVerify=\"true\"` déclenche la vérification automatique du fichier `assetlinks.json` à l'installation de l'app. Si la vérification échoue (fichier absent, fingerprint incorrect, certificat SSL invalide), Android ne traitera pas les liens comme des App Links vérifiés.\n\n### Impact SEO concret\n\nPour Google, un deep link vérifié est un signal de cohérence entre votre présence web et votre présence app. Dans les résultats de recherche mobile, les pages avec des App Links vérifiés peuvent afficher un badge \"App\" et offrir une expérience directe vers l'application. Sur un média avec 8 000 articles et 60 % de trafic mobile, la différence de taux de rebond entre \"ouverture dans l'app\" et \"ouverture dans le navigateur mobile\" peut atteindre 15 à 25 points de pourcentage, selon les données internes que nous avons observées sur des projets similaires.\n\nNotre article détaillé sur [les best practices Google pour les deep links \"Read more\"](/blog/google-lists-best-practices-for-read-more-deep-links-via-sejournal-mattgsouthern) couvre les spécificités des liens de type \"lire la suite\" dans les flux de contenu.\n\n### Le cas iOS : Universal Links\n\nCôté Apple, le mécanisme équivalent est les Universal Links, configurés via un fichier `apple-app-site-association` (AASA) :\n\n```json\n// Hébergé à https://media.example.fr/.well-known/apple-app-site-association\n{\n  \"applinks\": {\n    \"apps\": [],\n    \"details\": [\n      {\n        \"appIDs\": [\"TEAM_ID.fr.example.media\"],\n        \"components\": [\n          {\n            \"/\": \"/article/*\",\n            \"comment\": \"Matches all article pages\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\nAttention : Apple ne tolère aucune redirection sur le fichier AASA. Il doit être servi directement en `application/json` depuis `/.well-known/apple-app-site-association`, sans extension `.json`. Si votre CDN ou votre reverse proxy ajoute une redirection 301, les Universal Links ne fonctionneront pas.\n\n## Le DMA entre en scène : Google forcé de partager ses données de recherche\n\nLa Commission européenne a proposé, dans le cadre de l'application du Digital Markets Act (DMA), d'obliger Google à partager ses données de recherche avec ses concurrents et les chatbots IA. C'est une rupture structurelle, pas un ajustement technique.\n\n### Ce que ça implique concrètement\n\nLe DMA, en vigueur depuis mars 2024, désigne Google Search comme \"gatekeeper\". L'article 6(11) du DMA impose aux gatekeepers de fournir un accès aux données de ranking, de clics et de requêtes à des conditions équitables. La proposition de la CE va plus loin : elle vise spécifiquement les données qui alimentent les résultats de recherche, et les ouvre aux chatbots IA comme concurrents légitimes.\n\nPour les équipes SEO, trois conséquences techniques :\n\n**1. Multiplication des surfaces de crawl.** Si des moteurs alternatifs et des chatbots IA obtiennent accès aux données de requêtes Google, ils vont construire leurs propres index plus agressivement. Le crawl budget devient un enjeu encore plus critique. Un site de 30 000 pages qui gérait principalement Googlebot devra potentiellement optimiser pour 5 à 10 crawlers supplémentaires, chacun avec ses propres comportements. Notre analyse sur [les 68 millions de visites de crawlers IA](/blog/68-million-ai-crawler-visits-show-what-drives-ai-search-visibility-via-sejournal-martinibuster) montre déjà l'ampleur du phénomène.\n\n**2. Fragmentation des signaux de visibilité.** Aujourd'hui, Search Console est votre source de vérité pour comprendre comment Google voit votre site. Si Perplexity, Brave Search ou un chatbot européen utilisent des données de ranking partagées par Google, vos contenus apparaîtront dans des contextes que vous ne monitorez pas. L'[analyse de log files pour les crawlers IA](/blog/why-log-file-analysis-matters-for-ai-crawlers-and-search-visibility) devient indispensable.\n\n**3. Enjeu de contrôle du contenu.** Si vos données de ranking sont partagées, des systèmes tiers peuvent afficher vos contenus dans des contextes que vous n'avez pas approuvés. Le robots.txt et les directives comme `noai` ou `noimageai` (pas encore standardisées, mais en discussion) prennent une importance nouvelle.\n\n### Implications pour le robots.txt\n\nC'est ici que les trois actualités de la semaine convergent. L'expansion de la documentation robots.txt par Google, combinée à la pression DMA, suggère un avenir où le contrôle granulaire des accès par agent devient essentiel.\n\nAujourd'hui, un robots.txt typique distingue à peine Googlebot des autres. Dans un monde post-DMA, vous pourriez avoir besoin de quelque chose comme :\n\n```txt\nUser-agent: Googlebot\nAllow: /\nDisallow: /internal/\n\nUser-agent: Bingbot\nAllow: /\nDisallow: /internal/\nCrawl-delay: 2\n\nUser-agent: GPTBot\nDisallow: /premium-content/\nDisallow: /data-reports/\n\nUser-agent: anthropic-ai\nDisallow: /premium-content/\nDisallow: /data-reports/\n\nUser-agent: PerplexityBot\nDisallow: /premium-content/\n\nUser-agent: *\nDisallow: /internal/\nDisallow: /staging/\n\nSitemap: https://shop.example.fr/sitemap_index.xml\n```\n\nCe type de configuration granulaire n'est viable que si vous monitorez activement quels bots accèdent à votre site et comment ils se comportent. Les logs serveur sont votre première ligne de défense.\n\n## Scénario concret : migration et convergence des trois sujets\n\nPrenons un cas réaliste. Un site e-commerce français, 18 000 pages produit, 3 000 pages catégorie, 500 pages de contenu éditorial. Trafic organique : 280 000 sessions/mois. 65 % mobile. Application Android et iOS existantes, mais deep links mal configurés. Le site tourne sur Next.js avec SSR.\n\n### Situation initiale\n\nL'audit Screaming Frog révèle :\n\n- Le `robots.txt` contient `Crawl-delay: 10` et `Noindex: /soldes/` — deux directives ignorées par Googlebot.\n- 1 200 pages `/soldes/*` sont indexées malgré l'intention de les exclure.\n- Le fichier `assetlinks.json` pointe vers un ancien certificat de signature (l'app a été migrée vers Play App Signing il y a 6 mois).\n- Les Universal Links iOS ne fonctionnent pas : le fichier AASA est servi avec une redirection 302 par le CDN Cloudflare.\n- Aucune règle robots.txt pour les crawlers IA. Les logs montrent 45 000 requêtes/jour de GPTBot et 12 000 de ClaudeBot, concentrées sur les fiches produit.\n\n### Plan de correction\n\n**Phase 1 — robots.txt (jour 1-2)**\n\nSuppression des directives non supportées. Ajout de règles spécifiques pour les crawlers IA. Configuration du rate limiting côté Nginx pour éviter la surcharge :\n\n```nginx\n# Rate limiting pour les crawlers IA\nmap $http_user_agent $is_ai_crawler {\n    default 0;\n    \"~*GPTBot\" 1;\n    \"~*ClaudeBot\" 1;\n    \"~*anthropic-ai\" 1;\n    \"~*PerplexityBot\" 1;\n    \"~*Bytespider\" 1;\n}\n\nlimit_req_zone $is_ai_crawler zone=ai_crawlers:10m rate=5r/s;\n\nserver {\n    location / {\n        if ($is_ai_crawler) {\n            limit_req zone=ai_crawlers burst=10 nodelay;\n        }\n        # ... reste de la config\n    }\n}\n```\n\n**Phase 2 — Deep links (jour 3-7)**\n\nMise à jour du fingerprint SHA-256 dans `assetlinks.json`. Correction du fichier AASA en désactivant la redirection Cloudflare sur `/.well-known/*` via une Page Rule. Validation avec l'outil de test d'Android : `adb shell am start -a android.intent.action.VIEW -d \"https://shop.example.fr/produit/chaussure-running-42\"`.\n\n**Phase 3 — Noindex des pages soldes (jour 3-5)**\n\nRemplacement de la directive robots.txt par un header HTTP X-Robots-Tag appliqué au niveau Nginx. Soumission des URL via l'API d'indexation pour accélérer la prise en compte.\n\n**Phase 4 — Monitoring continu (jour 8+)**\n\nMise en place d'alertes sur les changements de robots.txt, les headers X-Robots-Tag, et les volumes de crawl par user-agent. Un outil de monitoring comme Seogard détecte ces régressions en continu — indispensable quand trois équipes (SEO, dev, ops) touchent à la configuration serveur.\n\n### Résultats attendus\n\nSur 4 à 6 semaines : désindexation des 1 200 pages `/soldes/*`, réduction de 40 % du crawl IA non désiré (libérant de la bande passante serveur), et restauration des App Links vérifiés sur Android — avec un impact mesurable sur le taux de rebond mobile.\n\n## La convergence robots.txt + DMA + deep links : une lecture stratégique\n\nCes trois actualités ne sont pas décorrélées. Elles pointent vers une même direction : **la fragmentation de l'accès au contenu web**.\n\nAvant, vous aviez un interlocuteur principal (Google), un fichier de contrôle (robots.txt), et une surface de rendu (le navigateur web). Désormais, votre contenu est consommé par des crawlers IA, affiché dans des chatbots, ouvert dans des applications mobiles, et potentiellement redistribué via des concurrents de Google ayant accès aux données de ranking.\n\nLe contrôle granulaire de l'accès à vos contenus — par agent, par surface, par contexte — devient une compétence technique de premier plan. Les sites qui gèrent encore leur robots.txt comme en 2015 (un bloc `User-agent: *` et quelques `Disallow`) accumulent une dette technique invisible.\n\nQuelques questions à poser lors de votre prochain audit technique :\n\n- Votre robots.txt contient-il des directives que Googlebot ignore silencieusement ?\n- Savez-vous quels crawlers IA accèdent à votre site, à quelle fréquence, et sur quelles sections ?\n- Vos deep links Android et iOS sont-ils vérifiés et fonctionnels sur vos 50 URL les plus visitées en mobile ?\n- Si la CE impose le partage de données de recherche, êtes-vous prêt à monitorer votre visibilité au-delà de Google Search Console ?\n\nLa tendance [vers une architecture pensée pour les agents IA](/blog/machine-first-architecture-ai-agents-are-here-and-your-website-isn-t-ready-says-no-hacks-podcast-host-via-sejournal-theshelleywalsh) se confirme chaque semaine. Le robots.txt est le premier point de contact entre votre serveur et ces agents. Traitez-le comme une pièce d'infrastructure critique, pas comme un fichier qu'on écrit une fois et qu'on oublie.\n\n## Comment monitorer ces changements à l'échelle\n\nSur un site de moins de 100 pages, une vérification manuelle suffit. Au-delà, les risques de régression sont exponentiels. Voici les outils et méthodes qui fonctionnent à l'échelle.\n\n### Validation continue du robots.txt\n\nScreaming Frog permet de tester le robots.txt contre une liste d'URLs en mode liste. Mais c'est un test ponctuel. Pour du monitoring continu :\n\n```bash\n# Script cron simple pour détecter les changements de robots.txt\n#!/bin/bash\nSITE=\"https://shop.example.fr\"\nHASH_FILE=\"/var/monitoring/robots_hash.txt\"\nCURRENT_HASH=$(curl -s \"$SITE/robots.txt\" | sha256sum | awk '{print $1}')\nSTORED_HASH=$(cat \"$HASH_FILE\" 2>/dev/null)\n\nif [ \"$CURRENT_HASH\" != \"$STORED_HASH\" ]; then\n    echo \"$CURRENT_HASH\" > \"$HASH_FILE\"\n    curl -X POST \"https://hooks.slack.com/services/YOUR/WEBHOOK\" \\\n        -H 'Content-type: application/json' \\\n        -d \"{\\\"text\\\":\\\"⚠️ robots.txt modifié sur $SITE — vérification requise\\\"}\"\nfi\n```\n\nC'est un point de départ, mais ça ne valide pas la sémantique du fichier. Vous ne saurez pas qu'un `Disallow: /` a été ajouté — juste que le fichier a changé. Un monitoring SEO dédié comme Seogard parse le contenu, identifie les directives à risque, et corrèle les changements avec les données de crawl.\n\n### Validation des deep links\n\nGoogle fournit un [outil de test pour les App Links](https://developers.google.com/digital-asset-links/tools/generator) qui vérifie la validité de votre `assetlinks.json`. Pour les Universal Links iOS, la validation est plus opaque — Apple ne fournit pas d'outil public équivalent, mais vous pouvez vérifier que votre fichier AASA est correctement servi :\n\n```bash\n# Vérification du fichier AASA\ncurl -I \"https://shop.example.fr/.well-known/apple-app-site-association\"\n# Doit retourner 200, Content-Type: application/json, pas de redirection\n\n# Vérification du contenu\ncurl -s \"https://shop.example.fr/.well-known/apple-app-site-association\" | python3 -m json.tool\n# Doit parser sans erreur et contenir votre appID\n```\n\n### Analyse de logs par user-agent\n\nSearch Console ne vous montre que le crawl de Googlebot. Pour les autres crawlers, les logs serveur sont votre seule source. Un pipeline ELK (Elasticsearch, Logstash, Kibana) ou une solution comme GoAccess peut segmenter les requêtes par user-agent et identifier les pics de crawl IA.\n\nL'enjeu n'est pas uniquement défensif. Comprendre quels crawlers IA visitent votre site, et quelles pages ils priorisent, vous donne une carte de [votre visibilité IA actuelle](/blog/your-ai-visibility-strategy-doesn-t-work-outside-english-via-sejournal-duaneforrester) et future.\n\n## Ce qu'il faut retenir\n\nL'expansion de la documentation robots.txt par Google, la formalisation des deep links, et la pression réglementaire du DMA convergent vers un même impératif : maîtriser finement qui accède à votre contenu, comment, et dans quel contexte. Le robots.txt n'est plus un fichier accessoire — c'est une politique d'accès à votre patrimoine de contenu. Les deep links ne sont plus un \"nice to have\" mobile — ils sont un facteur d'expérience utilisateur que Google mesure. Et le DMA ne concerne pas que les juristes — il va multiplier les crawlers et les surfaces sur lesquelles votre contenu apparaît, que vous le vouliez ou non. Mettez en place un monitoring automatisé de ces trois surfaces dès maintenant, avant que la prochaine régression silencieuse ne vous coûte du trafic.\n```","https://seogard.io/blog/google-s-robots-txt-docs-expand-deep-links-get-rules-eu-steps-in-seo-pulse-via-sejournal-mattgsouthern","Actualités SEO","2026-04-26T10:02:57.744Z","2026-04-26","Google élargit sa doc robots.txt, formalise les deep links et l'UE impose le partage de données. Décryptage technique et implémentations concrètes.","\u003Cp>Trois signaux majeurs cette semaine. Google étend sa documentation robots.txt pour documenter explicitement les directives qu'il ne supporte pas. Il publie en parallèle des best practices formalisées pour les deep links Android/iOS. Et la Commission européenne propose d'obliger Google à partager ses données de recherche avec ses concurrents et les chatbots IA, dans le cadre du Digital Markets Act. Ces trois événements, pris ensemble, redessinent les contours du SEO technique pour les mois à venir.\u003C/p>\n\u003Ch2>L'expansion de la documentation robots.txt : ce que Google dit vraiment\u003C/h2>\n\u003Cp>La mise à jour de la documentation robots.txt de Google ne se limite pas à un exercice de style éditorial. Google documente désormais les directives qu'il \u003Cstrong>ne supporte pas\u003C/strong> — \u003Ccode>Crawl-delay\u003C/code>, \u003Ccode>Noindex\u003C/code> dans robots.txt, \u003Ccode>Host\u003C/code>, et plusieurs autres. Ce qui était auparavant de la connaissance tribale partagée dans des threads Twitter devient une référence officielle.\u003C/p>\n\u003Ch3>Pourquoi c'est significatif\u003C/h3>\n\u003Cp>Jusqu'ici, la position de Google sur les directives non standard était dispersée entre des réponses de John Mueller sur Reddit, des vidéos Google Search Central, et des articles de blog tiers. Avoir une page unique de référence change la donne pour trois raisons :\u003C/p>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Clarification du comportement de parsing\u003C/strong> : Googlebot parse le fichier robots.txt selon la \u003Ca href=\"https://www.rfc-editor.org/rfc/rfc9309\">RFC 9309\u003C/a> (publiée en septembre 2022). Toute directive hors spec est ignorée silencieusement. Pas d'erreur, pas de warning dans Search Console. Votre \u003Ccode>Crawl-delay: 10\u003C/code> n'a jamais eu le moindre effet sur Googlebot — mais il impacte bien d'autres bots comme Bingbot ou certains crawlers de monitoring.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Signal d'intention\u003C/strong> : documenter ce qui n'est pas supporté est souvent le prélude à documenter ce qui pourrait le devenir. Google a l'habitude de formaliser avant d'itérer.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Impact sur les audits techniques\u003C/strong> : les équipes SEO qui auditent des robots.txt de sites legacy peuvent désormais pointer vers une source officielle pour justifier le nettoyage de directives obsolètes.\u003C/p>\n\u003C/li>\n\u003C/ol>\n\u003Ch3>Le piège classique : \u003Ccode>Noindex\u003C/code> dans robots.txt\u003C/h3>\n\u003Cp>C'est le cas d'école. Pendant des années, Google a officieusement supporté \u003Ccode>Noindex:\u003C/code> comme directive dans robots.txt. En septembre 2019, le support a été retiré. Pourtant, en 2026, des milliers de sites utilisent encore cette directive en croyant qu'elle empêche l'indexation.\u003C/p>\n\u003Cp>Voici un robots.txt typique d'un e-commerce de 20 000 pages, récupéré lors d'un audit récent :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>User-agent: *\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /cart/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /checkout/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /account/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Noindex: /promo/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Crawl-delay: 5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>User-agent: Googlebot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Allow: /\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Sitemap: https://shop.example.fr/sitemap_index.xml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Trois problèmes ici. \u003Ccode>Noindex:\u003C/code> est ignoré par Googlebot — les pages \u003Ccode>/promo/\u003C/code> restent indexables si elles ne portent pas de \u003Ccode>&#x3C;meta name=\"robots\" content=\"noindex\">\u003C/code> ou un header HTTP \u003Ccode>X-Robots-Tag: noindex\u003C/code>. \u003Ccode>Crawl-delay: 5\u003C/code> est ignoré par Googlebot mais ralentit Bingbot, ce qui peut être voulu ou non. Et la règle \u003Ccode>Allow: /\u003C/code> pour Googlebot est redondante puisque tout est autorisé par défaut sauf les \u003Ccode>Disallow\u003C/code> explicites.\u003C/p>\n\u003Cp>La correction propre pour empêcher l'indexation des pages promo sans bloquer le crawl (utile pour la découverte de liens internes) :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">&#x3C;!-- Sur chaque page /promo/* -->\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">&#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">meta\u003C/span>\u003Cspan style=\"color:#B392F0\"> name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"robots\"\u003C/span>\u003Cspan style=\"color:#B392F0\"> content\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"noindex, follow\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Ou côté serveur, si vous ne voulez pas toucher au template :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Configuration Nginx\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">location\u003C/span>\u003Cspan style=\"color:#B392F0\"> /promo/ \u003C/span>\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    add_header \u003C/span>\u003Cspan style=\"color:#E1E4E8\">X-Robots-Tag \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"noindex, follow\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> always;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    # 'always' est nécessaire pour que le header soit envoyé\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    # même sur les réponses 3xx et 4xx\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>L'avantage du header HTTP \u003Ccode>X-Robots-Tag\u003C/code> : il fonctionne aussi sur les fichiers non-HTML (PDF, images), et il n'exige pas de modifier les templates applicatifs. Pour un site avec 500+ pages promo générées dynamiquement, c'est souvent la solution la plus propre.\u003C/p>\n\u003Ch3>Auditer votre robots.txt actuel\u003C/h3>\n\u003Cp>Screaming Frog permet de vérifier rapidement si votre robots.txt contient des directives non supportées. Mais pour un monitoring continu — surtout sur des sites où plusieurs équipes (SEO, dev, ops) modifient le fichier — un outil comme Seogard détecte automatiquement les changements de robots.txt et alerte quand une directive invalide est introduite. Sur un site de 15 000 pages, un \u003Ccode>Disallow: /\u003C/code> ajouté par erreur un vendredi soir peut désindexer l'intégralité du site avant que quiconque ne s'en rende compte le lundi.\u003C/p>\n\u003Cp>Pour ceux qui veulent déjà comprendre \u003Ca href=\"/blog/google-may-expand-unsupported-robots-txt-rules-list-via-sejournal-mattgsouthern\">comment Google documente l'expansion potentielle des règles non supportées\u003C/a>, nous avions analysé les premiers signaux il y a quelques semaines.\u003C/p>\n\u003Ch2>Deep links : Google formalise les best practices\u003C/h2>\n\u003Cp>Google a publié des \u003Ca href=\"https://developer.android.com/training/app-links\">recommandations structurées pour les deep links\u003C/a> — ces liens qui redirigent l'utilisateur directement vers un contenu spécifique dans une application mobile plutôt que vers la page d'accueil ou le navigateur. Ce n'est pas nouveau techniquement, mais la formalisation par Google dans un contexte SEO l'est.\u003C/p>\n\u003Ch3>Le problème que ça résout\u003C/h3>\n\u003Cp>Considérez un média en ligne avec 8 000 articles. Un utilisateur qui clique sur un résultat Google depuis un smartphone avec l'app installée attend d'atterrir sur l'article, pas sur l'écran d'accueil de l'app. Sans deep links correctement configurés, c'est exactement ce qui se passe — et le taux de rebond explose.\u003C/p>\n\u003Cp>Google distingue trois types de liens pour Android :\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Deep links\u003C/strong> : gérés par des intent filters, mais sans vérification de propriété. N'importe quelle app peut déclarer gérer un domaine.\u003C/li>\n\u003Cli>\u003Cstrong>Web links\u003C/strong> : deep links utilisant \u003Ccode>http://\u003C/code> ou \u003Ccode>https://\u003C/code>, avec la même limitation.\u003C/li>\n\u003Cli>\u003Cstrong>Android App Links\u003C/strong> : deep links vérifiés via Digital Asset Links (\u003Ccode>assetlinks.json\u003C/code>). Le système ouvre directement l'app sans demander à l'utilisateur de choisir.\u003C/li>\n\u003C/ul>\n\u003Cp>C'est le troisième type qui nous intéresse pour le SEO. Google recommande explicitement les Android App Links pour éviter les ambiguïtés d'intent resolution.\u003C/p>\n\u003Ch3>Implémentation technique des Android App Links\u003C/h3>\n\u003Cp>Deux étapes. D'abord, le fichier de vérification côté serveur :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">// Hébergé à https://media.example.fr/.well-known/assetlinks.json\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">[{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"relation\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"delegate_permission/common.handle_all_urls\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"target\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"android_app\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"package_name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"fr.example.media\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"sha256_cert_fingerprints\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5\"\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\">}]\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Le fingerprint SHA-256 doit correspondre exactement au certificat de signature de votre APK/AAB. Une erreur fréquente : utiliser le certificat de debug au lieu du certificat de release. Pour obtenir le bon fingerprint :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Pour un keystore de release\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">keytool\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -list\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -v\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -keystore\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> release-keystore.jks\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -alias\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> media-key\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> grep\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> SHA256\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Pour un App Bundle signé par Google Play (Play App Signing)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Le fingerprint est disponible dans la Play Console\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Setup > App signing > App signing key certificate\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Ensuite, dans le \u003Ccode>AndroidManifest.xml\u003C/code> de l'application :\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\">activity\u003C/span>\u003Cspan style=\"color:#B392F0\"> android:name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\".ArticleActivity\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">    android:exported\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"true\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    &#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">intent-filter\u003C/span>\u003Cspan style=\"color:#B392F0\"> android:autoVerify\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"true\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        &#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">action\u003C/span>\u003Cspan style=\"color:#B392F0\"> android:name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"android.intent.action.VIEW\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        &#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">category\u003C/span>\u003Cspan style=\"color:#B392F0\"> android:name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"android.intent.category.DEFAULT\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        &#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">category\u003C/span>\u003Cspan style=\"color:#B392F0\"> android:name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"android.intent.category.BROWSABLE\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        &#x3C;\u003C/span>\u003Cspan style=\"color:#85E89D\">data\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">            android:scheme\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">            android:host\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"media.example.fr\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">            android:pathPrefix\u003C/span>\u003Cspan style=\"color:#E1E4E8\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/article/\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> />\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    &#x3C;/\u003C/span>\u003Cspan style=\"color:#85E89D\">intent-filter\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">&#x3C;/\u003C/span>\u003Cspan style=\"color:#85E89D\">activity\u003C/span>\u003Cspan style=\"color:#E1E4E8\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>L'attribut \u003Ccode>android:autoVerify=\"true\"\u003C/code> déclenche la vérification automatique du fichier \u003Ccode>assetlinks.json\u003C/code> à l'installation de l'app. Si la vérification échoue (fichier absent, fingerprint incorrect, certificat SSL invalide), Android ne traitera pas les liens comme des App Links vérifiés.\u003C/p>\n\u003Ch3>Impact SEO concret\u003C/h3>\n\u003Cp>Pour Google, un deep link vérifié est un signal de cohérence entre votre présence web et votre présence app. Dans les résultats de recherche mobile, les pages avec des App Links vérifiés peuvent afficher un badge \"App\" et offrir une expérience directe vers l'application. Sur un média avec 8 000 articles et 60 % de trafic mobile, la différence de taux de rebond entre \"ouverture dans l'app\" et \"ouverture dans le navigateur mobile\" peut atteindre 15 à 25 points de pourcentage, selon les données internes que nous avons observées sur des projets similaires.\u003C/p>\n\u003Cp>Notre article détaillé sur \u003Ca href=\"/blog/google-lists-best-practices-for-read-more-deep-links-via-sejournal-mattgsouthern\">les best practices Google pour les deep links \"Read more\"\u003C/a> couvre les spécificités des liens de type \"lire la suite\" dans les flux de contenu.\u003C/p>\n\u003Ch3>Le cas iOS : Universal Links\u003C/h3>\n\u003Cp>Côté Apple, le mécanisme équivalent est les Universal Links, configurés via un fichier \u003Ccode>apple-app-site-association\u003C/code> (AASA) :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">// Hébergé à https://media.example.fr/.well-known/apple-app-site-association\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"applinks\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"apps\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"details\"\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:#79B8FF\">        \"appIDs\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"TEAM_ID.fr.example.media\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"components\"\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:#79B8FF\">            \"/\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/article/*\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">            \"comment\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Matches all article pages\"\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\">      }\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\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Attention : Apple ne tolère aucune redirection sur le fichier AASA. Il doit être servi directement en \u003Ccode>application/json\u003C/code> depuis \u003Ccode>/.well-known/apple-app-site-association\u003C/code>, sans extension \u003Ccode>.json\u003C/code>. Si votre CDN ou votre reverse proxy ajoute une redirection 301, les Universal Links ne fonctionneront pas.\u003C/p>\n\u003Ch2>Le DMA entre en scène : Google forcé de partager ses données de recherche\u003C/h2>\n\u003Cp>La Commission européenne a proposé, dans le cadre de l'application du Digital Markets Act (DMA), d'obliger Google à partager ses données de recherche avec ses concurrents et les chatbots IA. C'est une rupture structurelle, pas un ajustement technique.\u003C/p>\n\u003Ch3>Ce que ça implique concrètement\u003C/h3>\n\u003Cp>Le DMA, en vigueur depuis mars 2024, désigne Google Search comme \"gatekeeper\". L'article 6(11) du DMA impose aux gatekeepers de fournir un accès aux données de ranking, de clics et de requêtes à des conditions équitables. La proposition de la CE va plus loin : elle vise spécifiquement les données qui alimentent les résultats de recherche, et les ouvre aux chatbots IA comme concurrents légitimes.\u003C/p>\n\u003Cp>Pour les équipes SEO, trois conséquences techniques :\u003C/p>\n\u003Cp>\u003Cstrong>1. Multiplication des surfaces de crawl.\u003C/strong> Si des moteurs alternatifs et des chatbots IA obtiennent accès aux données de requêtes Google, ils vont construire leurs propres index plus agressivement. Le crawl budget devient un enjeu encore plus critique. Un site de 30 000 pages qui gérait principalement Googlebot devra potentiellement optimiser pour 5 à 10 crawlers supplémentaires, chacun avec ses propres comportements. Notre analyse sur \u003Ca href=\"/blog/68-million-ai-crawler-visits-show-what-drives-ai-search-visibility-via-sejournal-martinibuster\">les 68 millions de visites de crawlers IA\u003C/a> montre déjà l'ampleur du phénomène.\u003C/p>\n\u003Cp>\u003Cstrong>2. Fragmentation des signaux de visibilité.\u003C/strong> Aujourd'hui, Search Console est votre source de vérité pour comprendre comment Google voit votre site. Si Perplexity, Brave Search ou un chatbot européen utilisent des données de ranking partagées par Google, vos contenus apparaîtront dans des contextes que vous ne monitorez pas. L'\u003Ca href=\"/blog/why-log-file-analysis-matters-for-ai-crawlers-and-search-visibility\">analyse de log files pour les crawlers IA\u003C/a> devient indispensable.\u003C/p>\n\u003Cp>\u003Cstrong>3. Enjeu de contrôle du contenu.\u003C/strong> Si vos données de ranking sont partagées, des systèmes tiers peuvent afficher vos contenus dans des contextes que vous n'avez pas approuvés. Le robots.txt et les directives comme \u003Ccode>noai\u003C/code> ou \u003Ccode>noimageai\u003C/code> (pas encore standardisées, mais en discussion) prennent une importance nouvelle.\u003C/p>\n\u003Ch3>Implications pour le robots.txt\u003C/h3>\n\u003Cp>C'est ici que les trois actualités de la semaine convergent. L'expansion de la documentation robots.txt par Google, combinée à la pression DMA, suggère un avenir où le contrôle granulaire des accès par agent devient essentiel.\u003C/p>\n\u003Cp>Aujourd'hui, un robots.txt typique distingue à peine Googlebot des autres. Dans un monde post-DMA, vous pourriez avoir besoin de quelque chose comme :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>User-agent: Googlebot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Allow: /\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /internal/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>User-agent: Bingbot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Allow: /\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /internal/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Crawl-delay: 2\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>User-agent: GPTBot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /premium-content/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /data-reports/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>User-agent: anthropic-ai\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /premium-content/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /data-reports/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>User-agent: PerplexityBot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /premium-content/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>User-agent: *\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /internal/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Disallow: /staging/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Sitemap: https://shop.example.fr/sitemap_index.xml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Ce type de configuration granulaire n'est viable que si vous monitorez activement quels bots accèdent à votre site et comment ils se comportent. Les logs serveur sont votre première ligne de défense.\u003C/p>\n\u003Ch2>Scénario concret : migration et convergence des trois sujets\u003C/h2>\n\u003Cp>Prenons un cas réaliste. Un site e-commerce français, 18 000 pages produit, 3 000 pages catégorie, 500 pages de contenu éditorial. Trafic organique : 280 000 sessions/mois. 65 % mobile. Application Android et iOS existantes, mais deep links mal configurés. Le site tourne sur Next.js avec SSR.\u003C/p>\n\u003Ch3>Situation initiale\u003C/h3>\n\u003Cp>L'audit Screaming Frog révèle :\u003C/p>\n\u003Cul>\n\u003Cli>Le \u003Ccode>robots.txt\u003C/code> contient \u003Ccode>Crawl-delay: 10\u003C/code> et \u003Ccode>Noindex: /soldes/\u003C/code> — deux directives ignorées par Googlebot.\u003C/li>\n\u003Cli>1 200 pages \u003Ccode>/soldes/*\u003C/code> sont indexées malgré l'intention de les exclure.\u003C/li>\n\u003Cli>Le fichier \u003Ccode>assetlinks.json\u003C/code> pointe vers un ancien certificat de signature (l'app a été migrée vers Play App Signing il y a 6 mois).\u003C/li>\n\u003Cli>Les Universal Links iOS ne fonctionnent pas : le fichier AASA est servi avec une redirection 302 par le CDN Cloudflare.\u003C/li>\n\u003Cli>Aucune règle robots.txt pour les crawlers IA. Les logs montrent 45 000 requêtes/jour de GPTBot et 12 000 de ClaudeBot, concentrées sur les fiches produit.\u003C/li>\n\u003C/ul>\n\u003Ch3>Plan de correction\u003C/h3>\n\u003Cp>\u003Cstrong>Phase 1 — robots.txt (jour 1-2)\u003C/strong>\u003C/p>\n\u003Cp>Suppression des directives non supportées. Ajout de règles spécifiques pour les crawlers IA. Configuration du rate limiting côté Nginx pour éviter la surcharge :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Rate limiting pour les crawlers IA\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">map\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> $\u003C/span>\u003Cspan style=\"color:#FFAB70\">http_user_agent\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> $is_ai_crawler {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    default\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"~*GPTBot\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"~*ClaudeBot\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"~*anthropic-ai\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"~*PerplexityBot\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"~*Bytespider\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\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:#F97583\">limit_req_zone \u003C/span>\u003Cspan style=\"color:#E1E4E8\">$is_ai_crawler zone=ai_crawlers:10m rate=5r/s;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    location\u003C/span>\u003Cspan style=\"color:#B392F0\"> / \u003C/span>\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">        if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ($is_ai_crawler) {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">            limit_req \u003C/span>\u003Cspan style=\"color:#E1E4E8\">zone=ai_crawlers burst=10 nodelay;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">        # ... reste de la config\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>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>Phase 2 — Deep links (jour 3-7)\u003C/strong>\u003C/p>\n\u003Cp>Mise à jour du fingerprint SHA-256 dans \u003Ccode>assetlinks.json\u003C/code>. Correction du fichier AASA en désactivant la redirection Cloudflare sur \u003Ccode>/.well-known/*\u003C/code> via une Page Rule. Validation avec l'outil de test d'Android : \u003Ccode>adb shell am start -a android.intent.action.VIEW -d \"https://shop.example.fr/produit/chaussure-running-42\"\u003C/code>.\u003C/p>\n\u003Cp>\u003Cstrong>Phase 3 — Noindex des pages soldes (jour 3-5)\u003C/strong>\u003C/p>\n\u003Cp>Remplacement de la directive robots.txt par un header HTTP X-Robots-Tag appliqué au niveau Nginx. Soumission des URL via l'API d'indexation pour accélérer la prise en compte.\u003C/p>\n\u003Cp>\u003Cstrong>Phase 4 — Monitoring continu (jour 8+)\u003C/strong>\u003C/p>\n\u003Cp>Mise en place d'alertes sur les changements de robots.txt, les headers X-Robots-Tag, et les volumes de crawl par user-agent. Un outil de monitoring comme Seogard détecte ces régressions en continu — indispensable quand trois équipes (SEO, dev, ops) touchent à la configuration serveur.\u003C/p>\n\u003Ch3>Résultats attendus\u003C/h3>\n\u003Cp>Sur 4 à 6 semaines : désindexation des 1 200 pages \u003Ccode>/soldes/*\u003C/code>, réduction de 40 % du crawl IA non désiré (libérant de la bande passante serveur), et restauration des App Links vérifiés sur Android — avec un impact mesurable sur le taux de rebond mobile.\u003C/p>\n\u003Ch2>La convergence robots.txt + DMA + deep links : une lecture stratégique\u003C/h2>\n\u003Cp>Ces trois actualités ne sont pas décorrélées. Elles pointent vers une même direction : \u003Cstrong>la fragmentation de l'accès au contenu web\u003C/strong>.\u003C/p>\n\u003Cp>Avant, vous aviez un interlocuteur principal (Google), un fichier de contrôle (robots.txt), et une surface de rendu (le navigateur web). Désormais, votre contenu est consommé par des crawlers IA, affiché dans des chatbots, ouvert dans des applications mobiles, et potentiellement redistribué via des concurrents de Google ayant accès aux données de ranking.\u003C/p>\n\u003Cp>Le contrôle granulaire de l'accès à vos contenus — par agent, par surface, par contexte — devient une compétence technique de premier plan. Les sites qui gèrent encore leur robots.txt comme en 2015 (un bloc \u003Ccode>User-agent: *\u003C/code> et quelques \u003Ccode>Disallow\u003C/code>) accumulent une dette technique invisible.\u003C/p>\n\u003Cp>Quelques questions à poser lors de votre prochain audit technique :\u003C/p>\n\u003Cul>\n\u003Cli>Votre robots.txt contient-il des directives que Googlebot ignore silencieusement ?\u003C/li>\n\u003Cli>Savez-vous quels crawlers IA accèdent à votre site, à quelle fréquence, et sur quelles sections ?\u003C/li>\n\u003Cli>Vos deep links Android et iOS sont-ils vérifiés et fonctionnels sur vos 50 URL les plus visitées en mobile ?\u003C/li>\n\u003Cli>Si la CE impose le partage de données de recherche, êtes-vous prêt à monitorer votre visibilité au-delà de Google Search Console ?\u003C/li>\n\u003C/ul>\n\u003Cp>La tendance \u003Ca href=\"/blog/machine-first-architecture-ai-agents-are-here-and-your-website-isn-t-ready-says-no-hacks-podcast-host-via-sejournal-theshelleywalsh\">vers une architecture pensée pour les agents IA\u003C/a> se confirme chaque semaine. Le robots.txt est le premier point de contact entre votre serveur et ces agents. Traitez-le comme une pièce d'infrastructure critique, pas comme un fichier qu'on écrit une fois et qu'on oublie.\u003C/p>\n\u003Ch2>Comment monitorer ces changements à l'échelle\u003C/h2>\n\u003Cp>Sur un site de moins de 100 pages, une vérification manuelle suffit. Au-delà, les risques de régression sont exponentiels. Voici les outils et méthodes qui fonctionnent à l'échelle.\u003C/p>\n\u003Ch3>Validation continue du robots.txt\u003C/h3>\n\u003Cp>Screaming Frog permet de tester le robots.txt contre une liste d'URLs en mode liste. Mais c'est un test ponctuel. Pour du monitoring continu :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Script cron simple pour détecter les changements de robots.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">#!/bin/bash\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">SITE\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://shop.example.fr\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">HASH_FILE\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/var/monitoring/robots_hash.txt\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">CURRENT_HASH\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$(\u003C/span>\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -s\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$SITE\u003C/span>\u003Cspan style=\"color:#9ECBFF\">/robots.txt\"\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> sha256sum\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> awk\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{print $1}'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">STORED_HASH\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$(\u003C/span>\u003Cspan style=\"color:#B392F0\">cat\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$HASH_FILE\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#F97583\"> 2>\u003C/span>\u003Cspan style=\"color:#9ECBFF\">/dev/null\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> [ \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$CURRENT_HASH\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#F97583\"> !=\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$STORED_HASH\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ]; \u003C/span>\u003Cspan style=\"color:#F97583\">then\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    echo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$CURRENT_HASH\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">$HASH_FILE\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">    curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"https://hooks.slack.com/services/YOUR/WEBHOOK\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'Content-type: application/json'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"{\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\">text\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\">⚠️ robots.txt modifié sur \u003C/span>\u003Cspan style=\"color:#E1E4E8\">$SITE\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> — vérification requise\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\">}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">fi\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>C'est un point de départ, mais ça ne valide pas la sémantique du fichier. Vous ne saurez pas qu'un \u003Ccode>Disallow: /\u003C/code> a été ajouté — juste que le fichier a changé. Un monitoring SEO dédié comme Seogard parse le contenu, identifie les directives à risque, et corrèle les changements avec les données de crawl.\u003C/p>\n\u003Ch3>Validation des deep links\u003C/h3>\n\u003Cp>Google fournit un \u003Ca href=\"https://developers.google.com/digital-asset-links/tools/generator\">outil de test pour les App Links\u003C/a> qui vérifie la validité de votre \u003Ccode>assetlinks.json\u003C/code>. Pour les Universal Links iOS, la validation est plus opaque — Apple ne fournit pas d'outil public équivalent, mais vous pouvez vérifier que votre fichier AASA est correctement servi :\u003C/p>\n\u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Vérification du fichier AASA\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -I\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"https://shop.example.fr/.well-known/apple-app-site-association\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Doit retourner 200, Content-Type: application/json, pas de redirection\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Vérification du contenu\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -s\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"https://shop.example.fr/.well-known/apple-app-site-association\"\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> python3\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -m\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> json.tool\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Doit parser sans erreur et contenir votre appID\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3>Analyse de logs par user-agent\u003C/h3>\n\u003Cp>Search Console ne vous montre que le crawl de Googlebot. Pour les autres crawlers, les logs serveur sont votre seule source. Un pipeline ELK (Elasticsearch, Logstash, Kibana) ou une solution comme GoAccess peut segmenter les requêtes par user-agent et identifier les pics de crawl IA.\u003C/p>\n\u003Cp>L'enjeu n'est pas uniquement défensif. Comprendre quels crawlers IA visitent votre site, et quelles pages ils priorisent, vous donne une carte de \u003Ca href=\"/blog/your-ai-visibility-strategy-doesn-t-work-outside-english-via-sejournal-duaneforrester\">votre visibilité IA actuelle\u003C/a> et future.\u003C/p>\n\u003Ch2>Ce qu'il faut retenir\u003C/h2>\n\u003Cp>L'expansion de la documentation robots.txt par Google, la formalisation des deep links, et la pression réglementaire du DMA convergent vers un même impératif : maîtriser finement qui accède à votre contenu, comment, et dans quel contexte. Le robots.txt n'est plus un fichier accessoire — c'est une politique d'accès à votre patrimoine de contenu. Les deep links ne sont plus un \"nice to have\" mobile — ils sont un facteur d'expérience utilisateur que Google mesure. Et le DMA ne concerne pas que les juristes — il va multiplier les crawlers et les surfaces sur lesquelles votre contenu apparaît, que vous le vouliez ou non. Mettez en place un monitoring automatisé de ces trois surfaces dès maintenant, avant que la prochaine régression silencieuse ne vous coûte du trafic.\u003C/p>\n\u003Cpre>\u003Ccode>\u003C/code>\u003C/pre>",null,12,[18,19,20,21,22],"robots.txt","deep links","DMA","Google Search","SEO technique","Robots.txt étendu, deep links et DMA : analyse technique","Sun Apr 26 2026 10:02:57 GMT+0000 (Coordinated Universal Time)",[26,39,55],{"_id":27,"slug":28,"__v":6,"author":7,"canonical":29,"category":10,"createdAt":30,"date":12,"description":31,"image":15,"imageAlt":15,"readingTime":16,"tags":32,"title":37,"updatedAt":38},"69edaaa2aa6b273b0cfaaad9","ai-overview-ctr-fell-61-but-clicks-didn-t-collapse-via-sejournal-mattgsouthern","https://seogard.io/blog/ai-overview-ctr-fell-61-but-clicks-didn-t-collapse-via-sejournal-mattgsouthern","2026-04-26T06:03:14.277Z","Le CTR des AI Overviews chute de 61% mais les clics tiennent. Analyse technique, scénarios chiffrés et stratégies de monitoring pour SEO avancé.",[33,34,21,35,36],"AI Overview","CTR","GEO","monitoring SEO","AI Overview CTR -61% : analyse technique du paradoxe","Sun Apr 26 2026 06:03:14 GMT+0000 (Coordinated Universal Time)",{"_id":40,"slug":41,"__v":6,"author":7,"canonical":42,"category":10,"createdAt":43,"date":44,"description":45,"image":15,"imageAlt":15,"readingTime":16,"tags":46,"title":53,"updatedAt":54},"69eb0772aa6b273b0cdebb98","google-s-liz-reid-on-ai-search-changes-query-shifts-and-ai-slop","https://seogard.io/blog/google-s-liz-reid-on-ai-search-changes-query-shifts-and-ai-slop","2026-04-24T06:02:26.270Z","2026-04-24","Google restructure la recherche autour de requêtes longues et conversationnelles. Analyse technique des impacts SEO et des adaptations nécessaires.",[47,48,49,50,51,52],"google","AI search","query shifts","AI Overviews","search intent","liz reid","Liz Reid, AI Search et query shifts : ce qui change vraiment","Fri Apr 24 2026 06:02:26 GMT+0000 (Coordinated Universal Time)",{"_id":56,"slug":57,"__v":6,"author":7,"canonical":58,"category":10,"createdAt":59,"date":44,"description":60,"image":15,"imageAlt":15,"readingTime":16,"tags":61,"title":66,"updatedAt":67},"69eb8662aa6b273b0c443e3a","why-geo-is-a-reputation-problem","https://seogard.io/blog/why-geo-is-a-reputation-problem","2026-04-24T15:04:02.234Z","Les tactiques GEO classiques échouent. Découvrez pourquoi la visibilité IA dépend de la réputation de marque, des signaux tiers et du positionnement catégoriel.",[35,62,63,64,65],"reputation","AI visibility","brand signals","generative engine optimization","GEO Is a Reputation Problem, Not an Optimization One","Fri Apr 24 2026 15:04:02 GMT+0000 (Coordinated Universal Time)"]