Que reste-t-il du maillage d’un site après cinq refontes menées par quatre prestataires différents en douze ans ? Sur le site d’une mutuelle santé régionale, la réponse était : trois systèmes de navigation superposés, deux d’entre eux visiblement abandonnés mais toujours actifs dans le code, et un nombre de pages orphelines qu’aucune personne de l’équipe interne n’était en mesure d’estimer avant l’audit.
Ce genre d’accumulation ne se produit jamais en une fois. Chaque refonte a corrigé les problèmes visibles de son époque, sans forcément assainir les mécanismes hérités de la précédente, avec pour résultat un maillage devenu illisible même pour l’équipe qui gère le site au quotidien.
Cartographier l’existant avant de corriger quoi que ce soit
La première étape n’a pas consisté à corriger, mais à comprendre ce qui existait réellement. Un script maison, construit autour de WP_CLI et d’une requête directe en base de données, a listé tous les articles publiés puis vérifié, pour chacun, le nombre de liens internes pointant vers lui depuis le contenu d’un autre article :
wp eval '
global $wpdb;
$articles = $wpdb->get_results( "SELECT ID, guid FROM {$wpdb->posts} WHERE post_status = \"publish\" AND post_type = \"page\"" );
foreach ( $articles as $article ) {
$count = $wpdb->get_var( $wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s AND post_status = \"publish\"",
"%" . $wpdb->esc_like( $article->guid ) . "%"
) );
if ( 0 === (int) $count ) {
echo $article->ID . " - orpheline\n";
}
}
'
Ce script rudimentaire, exécuté sur l’ensemble des pages du site, a mis au jour 214 pages sans aucun lien entrant détectable dans le contenu éditorial, un chiffre bien supérieur à ce que l’équipe interne imaginait.
Comprendre pourquoi trois navigations coexistaient

L’examen du thème actif a révélé la cause structurelle : un menu principal géré via l’API standard des menus WordPress, un second menu « historique » codé en dur dans le pied de page par une refonte antérieure et jamais retiré, et un troisième bloc de liens généré automatiquement par une ancienne extension de navigation par catégorie, désactivée depuis mais dont les traces subsistaient dans certains gabarits de page.
Chacun de ces trois systèmes pointait vers des URL parfois obsolètes, parfois redirigées, créant une expérience de navigation incohérente pour les visiteurs et un signal confus pour les robots, qui rencontraient des liens contradictoires sur la structure réelle du site.
Prioriser les pages de garanties plutôt que les pages institutionnelles
Face à 214 pages orphelines, il fallait choisir un ordre de traitement. Le choix s’est porté sur les pages de garanties (complémentaire santé individuelle, contrats collectifs, garanties dentaires et optiques), qui génèrent l’essentiel des demandes de devis, plutôt que sur les pages institutionnelles comme l’historique de la mutuelle ou la composition du conseil d’administration.
- Pages de garanties orphelines : traitement prioritaire, réintégrées dans le menu principal et liées depuis les pages de comparaison
- Pages institutionnelles orphelines : conservées mais liées uniquement depuis le pied de page, sans urgence de repositionnement
- Pages obsolètes (anciennes offres retirées du marché) : redirigées en 301 vers l’offre équivalente actuelle plutôt que réintégrées
Nettoyer les deux navigations superflues
Le menu historique codé en dur dans le pied de page a été retiré du fichier footer.php du thème, ses liens utiles étant repris manuellement dans le menu standard. Les traces de l’ancienne extension de navigation par catégorie ont nécessité une recherche plus fine dans les gabarits, certains get_template_part() chargeant encore un fichier partiel devenu inutile :
grep -rl "navigation-categorie" wp-content/themes/mutuelle-theme/
Cette recherche a permis de localiser trois gabarits concernés et de retirer proprement l’appel obsolète, sans casser le reste de la mise en page qui dépendait par ailleurs du même fichier de gabarit.
Un maillage unique, documenté pour la suite
Au-delà du nettoyage technique, un document interne récapitule désormais la logique de maillage retenue : quelles pages doivent apparaître dans le menu principal, lesquelles relèvent du pied de page, et quelle règle appliquer pour toute nouvelle page de garantie créée à l’avenir. Cette documentation, absente lors des cinq refontes précédentes, vise à éviter qu’une sixième refonte ne reproduise le même empilement.
Un maillage qui survit aux refontes successives n’est pas un maillage plus solide techniquement, c’est un maillage documenté, que chaque nouveau prestataire peut comprendre avant de le modifier.
En résumé
L’accumulation de refontes non coordonnées produit rarement un site cassé au sens strict, mais un site dont le maillage devient illisible pour quiconque n’a pas participé à chaque étape. Un audit basé sur un script de détection des pages orphelines, suivi d’une priorisation par valeur commerciale plutôt que par ancienneté, a permis de retrouver un maillage cohérent sans repartir de zéro sur l’ensemble du site.