Hugo SEO : noindex sur les taxonomies (correctif Bing)

En bref
Bing Webmaster Tools remontait une recommandation “There are too many pages with insufficient content” (sévérité : modérée) — 15 pages en erreur, toutes du même type :
https://www.arleo.eu/en/tags/svg/https://www.arleo.eu/en/tags/sonarr/https://www.arleo.eu/en/categories/incidents/- etc.
Ces pages sont les taxonomies Hugo — les listes par tag et par catégorie. Elles ne contiennent pas d’article en elles-mêmes, juste une liste de liens. Pour Bing, c’est du thin content.
Même réflexe d’investigation que pour un précédent correctif SEO sur les 404 Googlebot et la normalisation du sitemap sur ce site : vérifier la search console d’abord, comprendre pourquoi Hugo génère les pages en cause, puis corriger au niveau du template plutôt que de patcher chaque URL à la main.
Stratégie choisie
Trois options s’offraient :
- Bloquer via
robots.txt→ déconseillé : empêche le crawl, masque les liens internes - Enrichir le contenu des pages de taxonomie → trop coûteux pour un blog technique
noindex,follow→ la bonne réponse : on dit aux robots de ne pas indexer la page, mais de suivre les liens vers les articles
L’option 3 est retenue. Le follow préserve le maillage interne — les robots continuent de découvrir les articles via ces pages.
Implémentation
Principe Hugo : .Kind
Hugo classe chaque page par son kind :
| Kind | Exemple d’URL |
|---|---|
home |
/ |
page |
/posts/mon-article/ |
section |
/posts/ |
taxonomy |
/tags/, /categories/ |
term |
/tags/hugo/, /categories/homelab/ |
Les pages à traiter sont .Kind == "taxonomy" et .Kind == "term".
Modification : layouts/baseof.html
Le site utilise un baseof.html custom qui surcharge déjà le thème LoveIt. C’est l’endroit naturel pour centraliser la logique robots.
Avant :
<meta name="robots" content="index, follow" />Après :
{{- if .Params.robots -}}
<meta name="robots" content="{{ .Params.robots }}" />
{{- else if or (eq .Kind "taxonomy") (eq .Kind "term") -}}
<meta name="robots" content="noindex,follow" />
{{- else -}}
<meta name="robots" content="index, follow" />
{{- end -}}La cascade à trois niveaux :
- Front matter
robots:— priorité absolue pour les exceptions futures - Taxonomies —
noindex,followautomatique - Tout le reste —
index, follow
Un seul fichier modifié, zéro duplication, zero override de layout de taxonomie.
Retrait des taxonomies du sitemap
Les pages noindex dans un sitemap sont une incohérence — on dit au robot de ne pas indexer une page mais on l’y pointe explicitement. La bonne pratique est de les retirer.
Le sitemap LoveIt inclut toutes les pages. Un override minimal dans layouts/sitemap.xml :
{{- $excludedKinds := slice "taxonomy" "term" -}}
{{- range (where .Data.Pages "Section" "!=" "gallery") -}}
{{- if not (in $excludedKinds .Kind) -}}
<url>
<loc>{{- .Permalink -}}</loc>
...
</url>
{{- end -}}
{{- end -}}Résultat : le sitemap EN passe de 117 à 40 URLs (les 77 entrées de taxonomie supprimées).
Vérification
Après rebuild :
# Pages taxonomy → noindex,follow
curl -s https://www.arleo.eu/tags/ | grep -o 'name=robots[^>]*>'
# → name=robots content="noindex,follow">
curl -s https://www.arleo.eu/en/tags/sonarr/ | grep -o 'name=robots[^>]*>'
# → name=robots content="noindex,follow">
# Articles → index, follow
curl -s https://www.arleo.eu/en/posts/debug-seo-404-broken-links/ | grep -o 'name=robots[^>]*>'
# → name=robots content="index, follow">
# Sitemap propre
curl -s https://www.arleo.eu/en/sitemap.xml | grep -o '<loc>[^<]*</loc>' | grep 'tags\|categories' | wc -l
# → 0Fichiers modifiés
| Fichier | Rôle |
|---|---|
layouts/baseof.html |
Logique robots conditionnelle |
layouts/sitemap.xml |
Override sitemap — exclude taxonomy/term |
Le robots.txt n’a pas été touché. Les URLs de taxonomie restent accessibles et crawlables — seule leur indexation est désactivée.
Même principe que pour l’automatisation des hash SRI pour les assets CDN du site : un petit changement centralisé au niveau template plutôt qu’un contournement page par page.
Côté Bing
La correction est immédiate côté technique. Bing mettra quelques jours à re-crawler les pages et mettre à jour la recommandation. Pour accélérer : dans Bing Webmaster Tools → Recommendations → valider manuellement ou soumettre une demande de recrawl du sitemap.