21 570 pages possibles, 1 656 publiées : le seuil est la seule décision qui compte
Croiser les communes et les spécialités d’un annuaire fabrique des dizaines de milliers de pages. Nous en avons ouvert 7,7 %, et le piège WordPress qui a failli toutes les tuer.
Sur l’un de nos annuaires, 1 438 communes croisées avec 15 spécialités donnent 21 570 pages possibles. Nous en avons ouvert 1 656, soit 7,7 %. Sur un second annuaire, plus petit, 2 415 combinaisons possibles et 344 pages publiées, 14 %.
Le générateur, lui, savait produire les 21 570. Écrire la boucle qui les fabrique toutes demande une demi-heure. Décider lesquelles méritent d’exister, c’est le vrai travail, et c’est un seuil chiffré qui tranche.
Pourquoi croiser deux dimensions
Une page « hébergements » n’intéresse personne. Une page « Agde » non plus. La requête réelle, celle qu’un humain tape, c’est « hôtel à Agde ». C’est vrai partout : « bakery in London », « plombier à Roubaix », « garde-meuble Bordeaux ». La demande de recherche vit dans l’intersection de deux dimensions, pas dans chacune prise à part.
Vous lisez la suite le mardi
Ce genre de mesure, on en publie une par semaine dans la lettre : ce qu'on a testé, ce que ça a coûté, ce qu'on a arrêté. Quatre minutes, le mardi matin.
En validant, vous acceptez de recevoir la lettre. Désinscription en bas de chaque envoi.
Un annuaire qui ne publie que des pages « toutes les fiches d’une ville » et des pages « toutes les fiches d’une catégorie » laisse donc de côté la formulation la plus fréquente. Les croiser n’est pas une astuce d’optimisation, c’est aligner la structure du site sur la façon dont les gens formulent leur besoin.
Le seuil, et ce qu’il évite
Notre seuil est à trois fiches. Un couple commune × spécialité qui compte moins de trois établissements ne reçoit pas de page ; l’URL existe toujours mais renvoie une redirection permanente vers la page de la commune.
La raison est arithmétique. Une page bâtie sur une seule fiche n’apporte rien qu’on ne trouve déjà sur la fiche elle-même : mêmes coordonnées, même adresse, même horaires, plus un titre et un chapô automatiques. Multipliée par vingt mille, cette page devient un corpus de pages presque vides, toutes de la même forme. Google n’a pas besoin d’une pénalité pour l’ignorer : il indexe une fraction du corpus, dilue la valeur des pages qui, elles, avaient de la matière, et fait perdre du temps d’exploration sur des pages que personne ne lira.
Les couples à une ou deux fiches sont l’écrasante majorité. C’est le chiffre du haut : 92 % des combinaisons ne passent pas la barre. Une queue de distribution très longue et très pauvre, ce qui est le cas normal d’un annuaire géographique — quelques villes concentrent l’offre, des milliers de communes n’ont qu’un ou deux établissements.
Le choix du chiffre lui-même compte moins qu’on ne croit. À deux, on ouvre beaucoup plus de pages, toutes maigres. À cinq, on se prive de croisements légitimes dans les villes moyennes. Trois est le point où une page commence à ressembler à une liste plutôt qu’à une fiche déguisée. Ce qui compte, c’est qu’il existe un seuil et qu’il soit écrit dans le code, pas dans une intention.
Le piège technique, pour ceux qui feront la même chose sous WordPress
Une URL de croisement est simultanément l’archive d’un type de contenu et l’archive d’un terme de taxonomie. WordPress a une fonction de canonisation qui, dans ce cas précis, détruit la page avant qu’elle n’existe. Dans wp-includes/canonical.php :
if ( $term_count <= 1 && ! empty( $obj->term_id ) ) {
$tax_url = get_term_link( ... );
}
Traduction : si la requête n’interroge qu’un seul terme de taxonomie, le cœur considère que l’adresse canonique de cette page est celle du terme, et renvoie une redirection 301 vers l’archive de la catégorie. Notre page « hôtel à Agde » partait donc vers « hôtel », en perdant la commune au passage.
Le détail qui rend le piège discret : nos croisements région × spécialité, en production depuis des mois, n’ont jamais eu ce problème. Ils interrogent deux termes, la condition est fausse, la canonisation ne s’applique pas. C’est le nombre de termes interrogés qui décide, pas la règle de réécriture qui a produit l’URL — le cœur ignore complètement qu’une règle a fabriqué cette adresse.
Le correctif tient en un filtre sur redirect_canonical, qui rend false dès que la variable de requête de la commune est renseignée. On teste la variable de requête et non la commune résolue, pour que les slugs inconnus soient couverts eux aussi — ceux-là sont traités plus tôt, sur template_redirect en priorité 1, donc avant la canonisation qui s’exécute en priorité 10.
La règle qu’on en retire dépasse ce cas : une page neuve « qui ne s’affiche pas » sous WordPress est d’abord une redirection du cœur, pas une erreur de gabarit. Avant de chercher dans le template, lire l’en-tête HTTP.
Ce que nous ne savons pas encore
Les 2 000 pages sont en ligne depuis aujourd’hui, soumises à l’indexation, présentes dans les plans de site. Nous n’avons aucune donnée de trafic, et il serait malhonnête d’en tirer quoi que ce soit avant plusieurs semaines. Le pari est explicite : une page qui répond à une formulation réelle finit par recevoir des visites, une page fabriquée pour remplir un plan de site n’en reçoit jamais.
Nous relèverons les positions et les impressions à trente jours, et nous publierons le chiffre, y compris s’il est mauvais. C’est le seul moyen de savoir si le seuil était au bon endroit.
La lettre du mardi
Trois notes courtes, une mesure datée, un lien qui vaut le clic. Quatre minutes de lecture, le mardi matin. Rien d'autre dans votre boîte.
En validant, vous acceptez de recevoir la lettre. Désinscription en bas de chaque envoi.