Nous parcourons chaque adresse, pas un échantillon
Requêtes directes vers chaque adresse connue, sans suivre les redirections, avec au maximum six requêtes simultanées pour ne pas déranger le serveur, et 23 colonnes par adresse : code, adresse canonique, titre, description, hreflang, nombre de blocs de données structurées, volume de texte visible. Le résultat est un fichier tabulaire que nous livrons. Sur ce site : 249 adresses, dont 244 répondent 200 et 5 redirigent.
L’adresse officielle d’une page, résolue une fois pour tout le site
131 pages ne déclaraient aucune adresse canonique, et 219 sur 244 déclaraient la page d’accueil comme adresse de partage — donc tout partage sur les réseaux affichait une autre page. Les deux ont été corrigées avec une déclaration relative dans l’agencement de base, qui se résout pour chaque route séparément. C’est une ligne de code au lieu d’une convention que chaque nouvelle page aurait dû retenir toute seule.
La carte du site générée à partir des données, vérifiée après publication
La carte se construit à partir des sources de contenu et passe par une déduplication finale — sur ce site, 147 adresses, le même chiffre dans le code et dans le fichier servi en production. Un script lancé après publication échoue si la carte perd une page ou si apparaissent des variantes d’adresse qui ne s’ouvrent pas. Ce qui manque aujourd’hui, dit comme manque : les entrées ne portent pas de date de dernière modification, et 93 adresses indexables ne sont pas encore incluses.
Les anciennes adresses reçoivent chacune une décision
Lors d’une restructuration, chaque adresse existante reçoit un verdict : elle reste, elle est redirigée définitivement ou elle disparaît. Sur ce site, 43 redirections sont sorties dans la configuration. Vérifiés séparément aussi, les éléments que personne ne teste : le passage du domaine sans `www` à celui avec `www` n’existe qu’une fois ; l’adresse avec une barre finale redirige correctement ; l’adresse écrite en majuscules renvoie 404, donc il n’existe pas de duplicat d’écriture.
Titres, descriptions et contenu mince, comptés
100 titres sur 244 dépassent 60 caractères, le plus long en ayant 106 — le risque est la troncature dans les résultats. 33 descriptions dépassent 160 caractères, mais zéro manquent. Plus grave : 65 pages partagent une seule description générée à partir du modèle, et 30 d’entre elles diffèrent entre elles par 240 octets au total. Médiane de texte visible : 2.328 caractères, avec 96 pages sous 2.000. Ce sont des chiffres, pas des impressions, et chacun a une liste d’adresses derrière.
Un analyseur propre, avec des modules et des pondérations écrits dans le code
Notre analyseur comporte 16 modules — par page, performance, plan du site, sécurité, accessibilité, infrastructure de noms, informations d’enregistrement du domaine, liens externes, réseaux sociaux, pile technique, positions, recherche de mots-clés, audit général — plus des modules de comparaison : recherche de concurrents, écart de mots-clés, écart de contenu, repères. Le score global est pondéré explicitement dans le code : performance 0,20, SEO 0,20, par page 0,15, sécurité 0,15, réponses directes 0,10, accessibilité 0,10, social 0,10. Les modules qui échouent ne font pas baisser le score — ils sortent de la pondération, afin qu’un service externe en panne ne produise pas un faux rapport.
Redirections qui ne coûtent pas une page entière
Une redirection effectuée depuis l’intérieur de l’application construit la page et seulement ensuite envoie la réponse de redirection. Sur ce site, il y a 11 cas de ce type, chacun produisant plus de 200 KB de HTML avant de dire « allez ailleurs ». Cela fonctionne, mais c’est du gaspillage ; les déplacer dans la configuration est un petit travail avec un effet direct sur le budget de crawl. C’est dans la liste des réparations, inscrite comme manque.
Ce qu’un crawler voit, vérifié avec le crawler, pas supposé
J’ai demandé cinq adresses avec 18 identifiants d’agent différents et j’ai comparé le code, la taille et l’empreinte du contenu normalisé. Tous reçoivent 200 et exactement le même contenu qu’un navigateur ; `robots.txt` est identique, 129 octets, pour tous ; il n’y a ni blocage, ni challenge, ni limitation pour les crawlers. La seule différence reproductible — 237 octets de moins sur une page dynamique, pour trois agents — vient du framework lui-même, qui leur envoie du HTML complet non streamé, donc plus de contenu déjà rendu, pas moins.
Ce que nous ne promettons pas, écrit avant le contrat
Nous ne promettons pas de positions, de pourcentages de croissance ni un nombre de visites. Nous n’avons pas de mesures publiables pour cela et nous n’inventons rien. Ce que nous livrons est vérifiable autrement : la liste des adresses avec l’état de chacune, les réparations effectuées, la vérification exécutée après publication et la différence mesurable entre l’état d’avant et celui d’après — en octets, codes et nombres de pages, pas en promesses.