Checklist d’audit technique, axe par axe
Les niveaux indiqués (bloquant / important / mineur) sont des défauts
raisonnables : ajuste selon la valeur business des pages touchées. Remonte
tout ce que tu identifies, le filtrage se fait à la décision. Pour chaque
contrôle : la source est le JSON de crawl (resume pour les compteurs,
pages pour les cas), sauf mention contraire.
1. Crawlabilité et robots.txt
- robots.txt présent et syntaxiquement valide. Son absence (404) autorise tout : à signaler en mineur, pas en bloquant.
- Disallow qui bloquent des sections business (catalogue, blog, catégories) : bloquant. Croise chaque Disallow avec ce que le site vend ou publie.
- CSS et JS bloqués au crawl : important (Google ne peut plus rendre les pages correctement).
- Sitemap déclaré dans robots.txt : mineur s’il manque.
- Crawlers IA (GPTBot, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, CCBot) : note lesquels sont bloqués et confronte au contexte site. Un blocage volontaire est une décision légitime ; un blocage hérité d’un copier-coller de robots.txt est un constat important en 2026, la part de trafic venant des moteurs génératifs montant chaque trimestre. Approfondissement : seo-ai-visibility-audit.
- Espaces infinis : motifs d’URLs à paramètres (tri, filtres, calendriers, recherche interne) qui apparaissent en masse dans les liens internes crawlés. Important sur les gros sites (gaspillage de budget de crawl).
2. Indexabilité
- noindex (meta robots ou X-Robots-Tag) sur des pages qui devraient ranker :
bloquant. Le champ
noindexdu crawl couvre les deux vecteurs. - noindex légitimes (panier, compte, recherche interne, pages de remerciement) : sain ; liste-les pour confirmation, sans niveau.
- Canonical absent sur des pages uniques : mineur. Canonical pointant vers
une autre URL sur des pages censées ranker (
canonical_is_self: false) : important. Canonical vers une redirection ou un 404, ou chaîne de canonicals : important. Canonical vers un autre domaine non voulu : bloquant. - Pages en 4xx/5xx atteintes par le maillage interne : important (5xx récurrents : bloquant, le serveur décourage le crawl).
- Soft 404 : pages en 200 au contenu vide ou « aucun résultat » ; échantillonne les pages au title générique ou très court.
3. Architecture et profondeur
- Pages business à plus de 3 clics de la home (
depth > 3) : important. Au-delà de 5 : à traiter en priorité dans le lot. - Pages orphelines : dans le sitemap mais jamais atteintes par le crawl. Croisement outillé dans seo-indexation (check_sitemap.py —crawl).
- Pages business avec moins de 3 liens internes entrants : important
(reconstruis les entrants en inversant
internal_linksdes pages). - Pagination : les pages suivantes doivent être des liens
<a href>crawlables (pas du bouton JS ni du scroll infini seul). Piège classique : toutes les pages paginées canonicalisées vers la page 1, ce qui masque les produits profonds ; chaque page paginée doit s’auto-canonicaliser. - Fil d’ariane cohérent avec l’arborescence des URLs : mineur si divergent.
4. Doublons
- Titles dupliqués (
titles_dupliques_*du resume) : important au-delà de 10 % des pages, mineur en dessous. Même logique pour les meta descriptions et les H1. - Variantes accessibles en 200 sans canonical : www/non-www, http/https, slash final ou non, majuscules dans les URLs, paramètres (utm, sort, page) : important. Teste manuellement les 4 variantes du domaine.
- Environnements dev/staging indexables (dev., staging., preprod., recette.)
: bloquant. Vérifie via
site:et les sous-domaines croisés dans les liens. - Contenu quasi identique entre pages (échantillonne les groupes de titles proches) : important, candidat fusion + 301.
5. Redirections
- Chaînes de 2 sauts ou plus (
chaines_2_sauts_ou_plus) : important. Boucles : bloquant. - 302/307 utilisées pour du permanent : mineur, important si massif.
- Liens internes pointant vers des redirections (
atteintes_via_redirectionavec depth > 0) : mineur, gaspille du crawl ; corriger les liens à la source. - Les 4 variantes du domaine redirigent en 1 saut vers la version canonique.
- Redirections massives vers la home (séquelle de migration) : important, Google les traite en soft 404 et le jus des anciennes URLs est perdu.
6. HTTPS
- Tout le site en https, certificat valide (y compris sous-domaines vus dans les liens). Pages servies en http : bloquant.
- http vers https en 301 (pas 302), 1 saut.
- Mixed content : ressources http dans des pages https (grep
src="http://sur un échantillon de HTML) : important. - HSTS présent : mineur, bonne pratique.
7. Mobile
- Meta viewport présente sur les templates : son absence est un constat important, l’index Google est mobile-first (le mobile est LA version indexée).
- Site mobile séparé (m.domaine.fr) : constat important en soi en 2026, recommande la migration responsive à terme.
- Parité de contenu mobile/desktop : si des blocs entiers (texte, maillage) sont masqués ou absents en mobile, Google ne les voit pas. Échantillonne si la stack fait du conditionnel mobile.
- Interstitiels intrusifs à l’arrivée : important.
8. hreflang (sites multi-langues uniquement)
- Une seule méthode d’implémentation, cohérente : head, en-têtes HTTP ou sitemap. Deux méthodes qui coexistent : important.
- Réciprocité : si A déclare B, B doit déclarer A (return tags). Croise les
champs
hreflangdu crawl entre pages. Non-réciproque : important, les annotations sont ignorées. - Auto-référence incluse (chaque page se déclare elle-même) et x-default présent : mineur si absents.
- Codes valides : ISO 639-1 pour la langue, ISO 3166-1 alpha-2 pour le pays. Piège classique : « uk » n’existe pas, c’est « gb ».
- hreflang vers des pages noindex, redirigées ou canonicalisées ailleurs : important, signaux contradictoires.
- URLs absolues uniquement.
9. Rendu JS (transverse)
- Compare HTML brut (curl) et rendu (WebFetch) sur 2-3 templates : contenu principal, maillage, title/meta/canonical doivent exister dans le HTML brut. Contenu clé absent du HTML brut : important (bloquant si tout le site est en rendu client pur).
- Canonical ou meta robots injectés ou modifiés par JS : important, Google peut lire la version pré-rendu, les autres moteurs et les crawlers IA ne verront jamais la version JS.
- Liens en
onclickoujavascript:au lieu de<a href>: important, ces liens n’existent pour aucun crawler.
Notes d’état de l’art 2026
- L’indexation Google conditionne aussi AI Overviews et AI Mode : une page non indexée n’existe ni en recherche classique ni dans les réponses IA de Google. Les correctifs techniques sont donc aussi des correctifs de visibilité générative.
- Les crawlers des moteurs génératifs ne rendent pas le JS : tout contenu stratégique doit vivre dans le HTML initial.
- Performance : INP a remplacé FID en 2024 ; le diagnostic détaillé LCP/INP/ CLS appartient à seo-core-web-vitals, signale ici seulement les évidences (pages de plusieurs Mo, serveur au TTFB visiblement lent).