# 02 — Pages villes quasi orphelines (maillage interne)

> **Spec** : Internal linking — tier **recommended**
> **Verdict** : 🟠 **PARTIAL** · **Priorité : P1** — le plus gros levier SEO du site
> **Effort estimé** : 1-2 jours (nouveau composant + génération des index)

## Problème

Le site génère **622 pages villes** au format `/nid-guepes-frelons-<ville>-<code-postal>` (401 en Seine-et-Marne 77, 167 en Essonne 91, 47 en Val-de-Marne 94, 7 dans l'Yonne 89), mais le maillage interne n'en expose qu'une infime partie :

- L'accueil ne lie que **21 URLs** sur ~665.
- Chaque page département ne lie que **~29 pages villes** sur les centaines qu'elle chapeaute (ex. : page 77 → 29 liens villes pour 401 pages).
- Le seul autre chemin vers la longue traîne est le bloc « communes voisines » de chaque page ville (~10 liens) : la majorité des pages villes sont donc à **4+ clics de l'accueil**, découvrables uniquement de proche en proche.

**≈ 590 pages sont « near-orphan »** : présentes dans le sitemap mais quasiment pas liées. Un sitemap fait découvrir une URL ; il ne lui transmet **aucune autorité**. Le maillage interne est le signal le plus fort que le site contrôle — et ici il ignore 90 % de l'inventaire.

## Preuves

- Sitemap : 622 URLs villes réparties 77/91/94/89.
- Page `/nid-guepes-frelons-seine-et-marne-77` : 48 liens internes uniques dont 29 vers des villes.
- Page ville `/nid-guepes-frelons-yerres-91330` : 18 liens internes dans le main + 10 « communes voisines ».
- Accueil : 21 URLs internes uniques (nav + corps + footer).
- Pages à source de lien unique (fragiles) : `/zones-tarifaires*` liées uniquement depuis `/tarifs` ; les 3 pages `/galerie-*` liées uniquement depuis `/galerie`.

## Impact

- Les pages villes sont l'actif SEO principal (requêtes « nid de guêpes <ville> ») ; sans liens entrants internes, elles héritent d'un PageRank interne quasi nul → indexation partielle et rankings faibles sur la longue traîne locale.
- Risque de crawl irrégulier : Google re-crawle peu les pages profondes non liées.

## Correctif

Objectif spec : **toute URL du sitemap à ≤ 3 clics de l'accueil.**

1. **Index des communes par département** (le cœur du fix) — sur chaque page département, ajouter une section « Toutes nos communes d'intervention en <dept> » listant **la totalité** des communes, groupées (par lettre ou par arrondissement/EPCI). Pour le 77 (401 communes), paginer ou découper en sous-index (`/nid-guepes-frelons-seine-et-marne-77/communes/a-c`, etc.) plutôt qu'une page de 401 liens bruts. Chemin résultant : accueil → dept (1 clic) → index (2) → ville (3). ✅
   - En Gatsby : les pages villes sont déjà générées depuis une source de données dans `gatsby-node.js` — réutiliser la même source pour générer les index, garantissant l'exhaustivité automatique.
2. **Conserver le mesh « communes voisines »** existant (bon pour la pertinence locale) — il complète l'index, il ne le remplace pas.
3. **Renforcer les pages fragiles** : lier `/zones-tarifaires` depuis les pages départements (contexte tarifs local) et le footer ; lier les pages `/galerie-*` entre elles et depuis les pages services correspondantes.
4. **Ancres** : garder le format descriptif actuel (« Destruction nid de guêpes à Yerres (91330) ») — jamais « voir plus » / « cliquez ici ».

## Ce qui est déjà bon (ne pas casser)

- Ancres descriptives partout, zéro « cliquez ici » réel.
- Tous les liens internes sont relatifs et pointent la forme canonique sans slash → **zéro saut de redirection interne**. Maintenir cette propriété dans les nouveaux composants.
- Liens contextuels in-content présents (blog : 19 liens internes/article).

## Vérification

- Crawler le site (Screaming Frog / `wget --spider`) et vérifier : profondeur max ≤ 3 depuis `/`, 0 page « orpheline » (présente dans le sitemap mais sans inlink).
- Compter les inlinks des pages villes : chaque ville doit avoir ≥ 2 liens entrants (index dept + mesh voisines).
- Google Search Console (après quelques semaines) : couverture d'indexation des pages villes en hausse.
