Nous observons un grand nombre d’URLs de permaliens de sujets et de pagination qui atterrissent dans la catégorie « Crawled - currently not indexed » (Crawlé - actuellement non indexé) de Google Search Console (environ 35 000 URLs sur un forum importé d’environ 20 ans, version Discourse v2026.9.0-latest, auto-hébergé).
Ce que nous avons constaté :
Discourse sert des liens de pagination ?page=N aux robots d’indexation pour les sujets longs (puisque l’interface réelle utilise le défilement infini). Lorsqu’un client capable de JavaScript (y compris le renderer de Googlebot) charge l’une de ces URLs ?page=N, Discourse émet une redirection côté client vers /t/slug//<post_number>.
Reproduction :
- Récupérer une URL de sujet à froid, avec un numéro de message ou un suffixe ?page= :
GET /t///14 →
GET /t// → même canonique
GET /t///1 → même canonique
GET /t//?page=127 → (auto-référent, NON normalisé) - Charger le site normalement (JS activé) et naviguer, via le routeur Ember, vers une URL contenant un suffixe de numéro de message (par exemple, en cliquant sur un lien « aller au premier message non lu » depuis les Sujets Suggérés). Une fois la transition SPA terminée, document.querySelector(‘link[rel=canonical]’).href est égal à l’URL du numéro de message actuel — elle ne pointe pas vers le sujet de base.
Cela contredit l’intention de conception déclarée par Discourse lui-même. Dans ce fil de 2015, @sam était explicite :
▎ Sujets : le canonique doit pointer vers le sujet de base afin d’empêcher que les pages de messages individuels n’apparaissent comme des résultats de recherche distincts.
▎ Pages de catégories/listes : le canonique a été supprimé entièrement, car les listes paginées ne sont pas des doublons selon les propres directives de Google.
Ce que nous observons aujourd’hui contredit cela de deux manières :
- Un sujet avec ?page=N (pagination du robot) affiche l’URL paginée dans le HTML serveur brut, au lieu du sujet de base — bien que les sujets (contrairement aux listes de catégories) devaient explicitement toujours se réduire à l’URL de base.
- Après la redirection côté client de ?page=N vers /t/slug/id/<post_number>, le canonique du DOM rendu reste également sur cette URL de numéro de message au lieu de revenir au sujet de base.
Les deux semblent être des régressions par rapport à l’objectif de conception de 2015, et non un comportement actuel intentionnel.
Pourquoi cela compte pour l’indexation : l’indexation de Google s’appuie sur le signal canonique du DOM rendu. Toute URL avec un suffixe de numéro de message/page que Google atteint directement — via la fonctionnalité « lien de partage vers le message » (largement utilisée sur notre forum via WhatsApp/Discord), via d’anciens backlinks externes (nous cartographions les permaliens legacy vBulletin ?p= vers les URLs de numéro de message), ou via le propre robot d’indexation — déclare son propre canonique au lieu de se consolider dans le sujet de base. Dans Search Console, cela se manifeste par des milliers d’URLs quasi en double bloquées dans « crawled - not indexed ».
Exemples d’URLs affectées issus de notre rapport GSC (toutes crawlées début septembre 2026) :
/t/tengo-que-pasar-la-itv/21100/10
/t/new-honda-nsx-proyect/4910/69
/t/hacer-tubo-recto-sin-silencioso-del-catalizador-hacia-atras/25579/25
/t/kedada-japo-en-cataluna-2014/28148/75
/t/el-diario-de-patricio-de-la-plana/13286?p
Question pour l’équipe : étant donné qu’il s’agit d’un sujet de plus de 10 ans, quelque chose a-t-il changé depuis pour rendre le canonique auto-référent sur ces URLs intentionnel maintenant ? Ou est-ce que cela mérite d’être réexaminé comme une régression ? Je suis prêt à fournir des fichiers HAR / plus d’exemples de reproduction si cela peut être utile.