---
title: "Hugo SEO : noindex sur les taxonomies (correctif Bing)"
description: "Bing signalait 15 pages de taxonomies Hugo comme contenu insuffisant. Correction : noindex,follow via .Kind, taxonomies retirées du sitemap."
url: "https://www.arleo.eu/posts/noindex-taxonomies-hugo-bing-seo/"
language: "fr"
datePublished: "2026-06-29T07:00:00+02:00"
dateModified: "2026-06-29T06:01:05Z"
tags: ["hugo","seo","bing","homelab","infrastructure"]
categories: ["infrastructure"]
contentSignal: "ai-train=no, search=yes, ai-input=yes"
---

# Hugo SEO : noindex sur les taxonomies (correctif Bing)
Bing signalait 15 pages de taxonomies Hugo comme contenu insuffisant. Correction : noindex,follow via .Kind, taxonomies retirées du sitemap.



## 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](/posts/debug-seo-404-broken-links/) 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 :

1. **Bloquer via `robots.txt`** → déconseillé : empêche le crawl, masque les liens internes
2. **Enrichir le contenu des pages de taxonomie** → trop coûteux pour un blog technique
3. **`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.

```mermaid
flowchart TD
    A[Requête page Hugo] --> B{.Params.robots défini ?}
    B -- oui --> C[Utiliser la valeur front matter]
    B -- non --> D{.Kind = taxonomy ou term ?}
    D -- oui --> E[noindex,follow]
    D -- non --> F[index, follow]
    C --> G[meta name=robots]
    E --> G
    F --> G
```

---

## 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 :**

```html
<meta name="robots" content="index, follow" />
```

**Après :**

```go-html-template
{{- 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 :

1. **Front matter** `robots:` — priorité absolue pour les exceptions futures
2. **Taxonomies** — `noindex,follow` automatique
3. **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` :

```go-html-template
{{- $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 :

```bash
# 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
# → 0
```

---

## Fichiers 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](/posts/sri-cdn-hugo-automate/) 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.


## Tags

- hugo
- seo
- bing
- homelab
- infrastructure

## Categories

- infrastructure
