Insights

Niveau : Avancé

SEO technique : protocole d’audit vérifiable des fondations d’un site

Une méthode en 44 contrôles et 13 domaines pour distinguer observation publique, Search Console, logs et configuration sans transformer un audit en promesse de classement.
Temps de lecture estimé :
SEO technique : les fondations invisibles d’un site bien référencé

Un audit SEO technique utile ne collectionne pas des alertes. Il relie chaque rupture possible à un test rejouable, une preuve, une sévérité, un responsable et une décision explicite.

  • 13 domaines Du transport HTTP aux agents IA.
  • 44 contrôles Méthode et preuve attendue publiées.
  • 4 statuts Non testé n’est jamais conforme.
  • 0 promesse Ni position, ni trafic, ni résultat enrichi.

Réponse courte

Le SEO technique réduit l’incertitude entre une URL publiée et une page réellement explorée, rendue, indexée, comprise et servie.

Le SEO technique ne consiste pas à accumuler des cases vertes dans un crawler. Il consiste à rendre chaque décision rejouable : quelle URL doit répondre, qui peut l’explorer, quelle version doit être canonique, comment le contenu devient accessible, quelles preuves établissent le résultat et quelle anomalie doit bloquer une mise en ligne.

Un audit utile distingue quatre choses souvent mélangées : ce qui est publiquement observable, ce qui exige Search Console, ce qui exige les journaux serveur et ce qui reste une hypothèse. Il ne promet ni classement ni trafic. Il retire des ruptures techniques qui empêchent les moteurs de traiter la bonne page.

Méthode Edikka · version 1.1

Quatre repères pour lire le protocole sans confondre contrôle et promesse.

13

domaines techniques contrôlés.

44

contrôles rejouables et documentés.

4

statuts contrôlés pour décider.

0

garantie de classement formulée.

Principe directeur

Un contrôle non testé n’est pas conforme. Une observation publique n’est pas une preuve Search Console. Un seul blocage critique peut imposer NO-GO, quel que soit le nombre de cases vertes.

Périmètre de preuve

Quatre niveaux de preuve évitent de transformer un audit public en certitude privée.

Ce que chaque niveau permet réellement d’établir
NiveauExemplesÉtablitN’établit pas
PublicHTTP, robots.txt, HTML source, DOM rendu, sitemap, JSON-LD.La réponse obtenue depuis un contexte et un instant documentés.Ce que Google a exploré, choisi ou indexé.
Search ConsoleInspection d’URL, canonique Google, rapport Pages, Core Web Vitals.L’état rapporté pour la propriété et l’échantillon observés.La cause unique d’une variation de position.
Logs serveurRequêtes Googlebot, codes, fréquence, URL et octets servis.Une interaction reçue par l’infrastructure, sous réserve d’authentifier le robot.L’usage ultérieur du contenu par le moteur.
ConfigurationWAF, CDN, application, CMS, règles de déploiement.L’intention et la règle configurée, si elle est testée.Que toutes les couches appliquent la même politique.
Limite volontaire

Cette méthode est publiée par Edikka, agence de développement web, SEO et GEO. Ce n’est ni une norme indépendante, ni une certification. Les seuils reposent sur des spécifications et documentations primaires ; la décision finale dépend du contexte, du risque et des données privées du site audité.

Modèle causal

Crawl, rendu, indexation et service sont quatre étapes différentes.

Dire qu’une page est « SEO compatible » masque souvent l’étape qui échoue. Une URL peut être découverte mais bloquée, explorée mais rendue sans contenu, indexée sous une autre canonique, ou indexée sans être retenue pour une requête. Le diagnostic commence donc par localiser la rupture.

Pipeline minimal et preuve associée
ÉtapeQuestionPreuve utileErreur fréquente
DécouverteUn chemin public mène-t-il à l’URL ?Lien HTML, sitemap, URL référente dans les logs.Confondre présence dans le sitemap et découvrabilité interne.
ExplorationLe robot peut-il demander la ressource ?robots.txt, réponse HTTP, logs authentifiés.Utiliser Disallow comme mécanisme de désindexation.
RenduLe contenu critique apparaît-il après exécution ?HTML source, DOM rendu, inspection d’URL.Déclarer JavaScript mauvais en soi.
IndexationQuelle URL et quel contenu le moteur conserve-t-il ?Inspection d’URL, canonique Google, rapport Pages.Déduire l’indexation d’un code 200.
ServiceLa page est-elle sélectionnée pour une requête et un contexte ?Performances Search Console et résultats observés.Attribuer une position à un seul facteur technique.

Grille ouverte v1.1

Le protocole couvre 13 domaines et 44 contrôles.

Le nombre de contrôles varie selon le risque : la symétrie d’un tableau ne doit pas dicter l’audit. Le JSON public v1.1 est l’unique source canonique des identifiants, méthodes, preuves, sources et limites. Le tableau HTML indexable et la matrice XLSX sont générés à partir de ce dataset.

Les identifiants TS01 à TS44 restent stables entre les versions. Pour citer un contrôle précis, utiliser son fragment direct, par exemple #TS41.

Les 13 domaines de la Grille d’audit SEO technique Edikka v1.1
IDsDomaineDécision principalePreuve qui manque souvent
TS01–03 · TS37HTTP et disponibilitéQuelle réponse et quel transport servir ?GET final, chaîne, certificat et HSTS.
TS04–06Robots et accèsExplorer, indexer ou protéger ?Test de la couche serveur.
TS07–09IndexationQuelles pages doivent rester indexables ?Inspection Search Console.
TS10–12CanonicalisationQuelle URL représente le contenu ?Canonique choisie par Google.
TS13–15Sitemaps et fraîcheurQuelles URL déclarer et quand ?lastmod relié à une vraie modification.
TS16–18Découvrabilité interneComment atteindre chaque page utile ?Comparaison crawl, CMS et sitemap.
TS19–21 · TS38Espaces d’URLQuels paramètres et variantes normaliser ?Segmentation, hôte, casse et slash.
TS22–24 · TS40InternationalisationQuelle variante et quelle source hreflang ?Réciprocité HTML, HTTP ou sitemap.
TS25–27JavaScript et renduÀ quel stade le contenu existe-t-il ?Source, rendu et inspection comparés.
TS28–30HTML et sémantiqueLe document reste-t-il compréhensible ?Structure et liens crawlables.
TS31–33Données structuréesQuelles entités sont réellement visibles ?Graphe sans entité inventée.
TS34–36 · TS39 · TS41Performance et suiviQuelle expérience, quel edge et quelle non-régression ?CrUX, CDN, CI, logs et déploiements.
TS42–44Exploration IA et agentsQuel accès pour recherche, action et entraînement ?Politique par finalité, GET complet et logs.

Inventaire indexable · v1.1

Les 44 contrôles sont publiés dans la page, pas seulement dans un fichier à télécharger.

Le JSON versionné est l’unique source canonique. Le tableau ci-dessous et le XLSX en sont deux représentations générées, lisibles et citables. La colonne « accès » empêche de confondre un test public avec une preuve Search Console, serveur ou de configuration. Chaque ligne possède une ancre stable : #TS01 à #TS44.

Grille d’audit SEO technique Edikka v1.1 · 44 contrôles
IDDomaineContrôleMéthodePreuve attendueAccès · sévéritéSource
TS01HTTP et disponibilitéLa page finale répond avec un code HTTP exploitable.Envoyer une requête GET, suivre les redirections et relever le code final.URL testée, horodatage, code final 200 pour une page canonique publique.Public
Bloquant
RFC 9110 · HTTP Semantics
TS02HTTP et disponibilitéLes redirections sont intentionnelles, directes et sans boucle.Tester les variantes HTTP/HTTPS, hôte, slash et anciennes URL avec le nombre de redirections.Destination finale unique, chaîne documentée, absence de boucle.Public
Majeur
Google Search Central · Redirections et Google Search
TS03HTTP et disponibilitéLes erreurs serveur et soft 404 ne remplacent pas une réponse explicite.Tester une page existante, une URL supprimée et une URL inexistante ; comparer code et contenu.Codes 4xx/5xx cohérents et modèle d’erreur qui ne renvoie pas 200 par défaut.Public
Majeur
Google Search Central · Erreurs HTTP et réseau
TS04Robots et accèsrobots.txt est accessible, parsable et ne bloque pas les ressources nécessaires.Récupérer /robots.txt, vérifier le type de contenu, les groupes et les règles applicables.Fichier 200, syntaxe lisible, règles reliées à une intention documentée.Public
Bloquant
RFC 9309 · Robots Exclusion Protocol
TS05Robots et accèsUne directive Disallow n’est jamais présentée comme une garantie de désindexation.Comparer la politique robots, les besoins d’indexation et les directives meta/X-Robots-Tag.Décision distincte pour exploration, indexation et protection.Configuration
Bloquant
Google Search Central · Introduction à robots.txt
TS06Robots et accèsLes zones sensibles refusent réellement l’accès au serveur.Tester sans session les routes privées et vérifier authentification, autorisation et cache.Réponse 401/403 ou redirection d’authentification sans contenu sensible livré.Configuration
Bloquant
RFC 9110 · HTTP Semantics
TS07IndexationLes directives meta robots et X-Robots-Tag sont cohérentes avec l’objectif de la page.Inspecter les en-têtes et le DOM source sur les gabarits indexables et exclus.Directive unique ou combinaison compatible, sans noindex accidentel.Public
Bloquant
Google Search Central · Meta robots et X-Robots-Tag
TS08IndexationLe statut d’indexation réel est vérifié dans Search Console.Utiliser l’inspection d’URL sur un échantillon représentatif et conserver l’export ou la capture.URL connue, exploration autorisée, indexation et canonique Google documentées.Search Console
Majeur
Google Search Console · Inspection d’URL
TS09IndexationLes exclusions volontaires ont un propriétaire et une justification.Relier chaque famille exclue à une règle, un responsable et une date de revue.Registre des exclusions : type de page, mécanisme, motif, propriétaire, révision.Configuration
Mineur
Google Search Central · Bloquer l’indexation
TS10CanonicalisationChaque page canonique publie une URL absolue, stable et cohérente.Comparer URL finale, rel=canonical, sitemap et liens internes.Signaux convergents vers la même URL canonique sans chaîne.Public
Majeur
Google Search Central · Canonicalisation des URL dupliquées
TS11CanonicalisationLes variantes réellement dupliquées convergent sans masquer des pages distinctes.Échantillonner paramètres, pagination, filtres et versions imprimables ; comparer contenu et canonique.Correspondance documentée entre doublon et canonique pertinent.Public
Majeur
Google Search Central · Canonicalisation des URL dupliquées
TS12CanonicalisationLa canonique choisie par Google est comparée à celle déclarée.Inspecter les URL prioritaires et consigner canonique utilisateur et canonique Google.Accord ou divergence qualifiée et traitée.Search Console
Majeur
Google Search Console · Inspection d’URL
TS13Sitemaps et fraîcheurLe sitemap contient uniquement des URL absolues et canoniques utiles.Parser chaque sitemap, compter les URL et comparer statut, canonique et indexabilité.Inventaire sans redirection, 4xx, noindex ni doublon de canonique.Public
Majeur
Google Search Central · Construire et envoyer un sitemap
TS14Sitemaps et fraîcheurlastmod reflète une modification significative de la page.Comparer lastmod à l’historique éditorial ou au déploiement de contenu significatif.Horodatage ISO 8601 lié à une modification réelle, pas à la génération du fichier.Configuration
Mineur
Google Search Central · lastmod et sitemaps
TS15Sitemaps et fraîcheurLes limites et découpages de sitemap sont respectés.Contrôler taille décompressée, nombre d’URL, index de sitemaps et encodage.Maximum 50 000 URL et 50 Mo non compressés par sitemap.Public
Majeur
Sitemaps.org · Protocole Sitemap XML
TS16Découvrabilité interneChaque page importante reçoit au moins un lien interne crawlable.Crawler le site depuis les entrées publiques et lister les pages sans lien entrant HTML.Source du lien, destination, ancre et statut de la page.Public
Majeur
Google Search Central · Liens explorables
TS17Découvrabilité interneLes liens essentiels utilisent un élément a avec href résoluble.Comparer DOM source et rendu ; relever boutons, onclick et ancres sans href.Lien HTML crawlable vers chaque destination essentielle.Public
Majeur
Google Search Central · Liens explorables
TS18Découvrabilité interneLa profondeur et les pages orphelines sont mesurées sur un périmètre explicite.Comparer crawl, sitemap et export CMS ; qualifier chaque différence.Liste d’orphelines, profondeur minimale observée et décision par famille.Public
Majeur
Google Search Central · Liens explorables
TS19Espaces d’URLLes paramètres, filtres et calendriers ne créent pas un espace infini.Regrouper les URL par motif, compter les combinaisons et rechercher les pièges de crawl.Règle d’indexation et de navigation pour chaque motif de paramètre.Public
Majeur
Google Search Central · Structure des URL
TS20Espaces d’URLLa structure d’URL est lisible, stable et encodée correctement.Relever espaces, fragments, caractères encodés, casse et identifiants volatils.Motifs d’URL documentés et absence de variantes involontaires.Public
Mineur
Google Search Central · Structure des URL
TS21Espaces d’URLLes URL découvertes mais non indexées sont investiguées par famille.Segmenter le rapport Pages par gabarit et comparer aux sitemaps et logs.Hypothèse par famille, échantillon d’URL et résultat après correction.Search Console
Majeur
Google Search Console · Rapport Indexation des pages
TS22InternationalisationChaque variante hreflang pointe vers une URL indexable et canonique.Parser les annotations HTML, HTTP ou sitemap et résoudre chaque URL.Langue/région valide, URL 200, canonique cohérente.Public
Majeur
Google Search Central · Versions localisées et hreflang
TS23InternationalisationLes annotations hreflang sont réciproques et incluent la page elle-même.Construire les groupes de variantes et vérifier retour et auto-référence.Groupe complet, réciproque et sans URL contradictoire.Public
Majeur
Google Search Central · Versions localisées et hreflang
TS24Internationalisationx-default représente une destination neutre ou la variante par défaut assumée.Vérifier sa présence et sa fonction dans chaque groupe multilingue pertinent.URL x-default documentée, accessible et cohérente avec le parcours.Public
Mineur
Google Search Central · Versions localisées et hreflang
TS25JavaScript et renduLe contenu critique existe dans le HTML source ou devient observable après rendu.Comparer réponse HTML, DOM rendu et inspection d’URL pour les éléments critiques.Titre, contenu, liens, canonical et données structurées présents au bon stade.Public
Bloquant
Google Search Central · Principes de base du SEO JavaScript
TS26JavaScript et renduLes ressources nécessaires au rendu ne sont pas bloquées ni en erreur.Inspecter réseau, robots, CSP et erreurs console sur les gabarits prioritaires.Ressources critiques accessibles et absence d’erreur qui retire le contenu.Public
Majeur
Google Search Central · Principes de base du SEO JavaScript
TS27JavaScript et renduLes états et routes SPA produisent des URL partageables et des réponses serveur cohérentes.Ouvrir directement les routes, tester actualisation, historique, canonical et statut HTTP.Chaque vue indexable possède URL, 200, contenu et signaux propres.Public
Majeur
Google Search Central · Corriger les problèmes JavaScript
TS28HTML et sémantiqueLe document expose une structure HTML compréhensible sans dépendre de son apparence.Inspecter titre, langue, main, niveaux de titres, liens et libellés sur un échantillon.Structure logique, un sujet principal identifiable, composants accessibles.Public
Majeur
WHATWG · HTML Living Standard
TS29HTML et sémantiqueLes contenus essentiels restent disponibles lorsque scripts ou styles échouent.Tester HTML source, désactivation JavaScript et mode réseau dégradé.Information et navigation principales toujours accessibles ou solution de repli documentée.Public
Majeur
Google Search Central · Principes de base du SEO JavaScript
TS30HTML et sémantiqueLes métadonnées essentielles sont uniques, visibles et cohérentes avec la page.Comparer title, description, H1, Open Graph et contenu principal par gabarit.Sujet et promesse cohérents sans duplication mécanique.Public
Majeur
Google Search Central · Liens de titre
TS31Données structuréesLe JSON-LD décrit des entités visibles et appropriées au contenu.Comparer chaque propriété importante au contenu visible et aux recommandations du type.Graphe valide, cohérent, sans entité ni note inventée.Public
Majeur
Google Search Central · Règles relatives aux données structurées
TS32Données structuréesLes identifiants @id relient les mêmes entités sans créer de doublons.Construire le graphe, repérer les nœuds sans nom, les identifiants variables et les doublons.Organization, Person, WebSite, WebPage et Article reliés par des @id stables.Public
Mineur
Schema.org · Modèle de données
TS33Données structuréesLes erreurs, avertissements et usages non pris en charge sont distingués.Tester syntaxe Schema.org et éligibilité Google séparément ; consigner les résultats.Rapport sans erreur bloquante et avertissements qualifiés.Public
Mineur
Google Search Central · Comprendre les données structurées
TS34Performance et suiviLes Core Web Vitals terrain sont lus au 75e percentile.Relever LCP, INP et CLS sur données de terrain par type d’appareil et groupe d’URL.LCP ≤ 2,5 s, INP ≤ 200 ms, CLS ≤ 0,1 au 75e percentile pour l’état Bon.Search Console
Majeur
web.dev · Seuils des Core Web Vitals
TS35Performance et suiviLes tests de laboratoire servent au diagnostic, pas à simuler le terrain.Conserver URL, appareil, profil réseau, version de l’outil et mesures détaillées.Rapport Lighthouse/WebPageTest reproductible et relié à une hypothèse de correction.Public
Mineur
web.dev · Différences entre laboratoire et terrain
TS36Performance et suiviLe suivi relie Search Console, logs et déploiements à des dates de décision.Créer une baseline avant changement puis vérifier J+1, J+7 et J+30 selon le risque.Journal des déploiements, anomalies crawl/indexation et décisions signées.Logs serveur
Majeur
Google Search Central · Crawl budget
TS37HTTP et disponibilitéHTTPS, HSTS et les ressources intégrées ne créent ni erreur de certificat ni contenu mixte.Tester le certificat sur les hôtes publics, suivre les variantes HTTP/HTTPS, relever Strict-Transport-Security et rechercher les sous-ressources en HTTP.Certificat valide pour chaque hôte, redirection vers HTTPS, en-tête HSTS documenté et aucune ressource active en HTTP.Public
Majeur
RFC 6797 · HTTP Strict Transport Security
TS38Espaces d’URLLes variantes d’hôte, de casse et de slash convergent vers une règle unique.Rejouer www/sans www, HTTP/HTTPS, casse pertinente et slash final sur un échantillon de routes ; comparer redirection, canonical, sitemap et liens internes.Une URL finale stable par ressource, sans chaîne, avec des signaux internes concordants.Public
Majeur
Google Search Central · Canonicalisation des URL dupliquées
TS39Performance et suiviLe CDN, Vary et la géolocalisation ne servent pas des signaux SEO contradictoires.Comparer code, canonical, robots, langue et contenu depuis plusieurs régions ou clés de cache ; inspecter Vary, redirections géographiques et règles edge.Mêmes signaux SEO pour une même URL, ou variantes explicitement documentées et accessibles à Googlebot.Configuration
Majeur
RFC 9110 · HTTP Semantics
Google Search Central · Pages adaptées à la langue ou à la région
RFC 9110 établit la sémantique de Vary et des réponses HTTP. Le comportement des pages adaptées à la région est documenté séparément par Google.
TS40InternationalisationLa méthode hreflang choisie — HTML, en-tête HTTP ou sitemap — est complète et unique.Identifier la source de vérité, puis vérifier que chaque URL liste sa propre variante et toutes les alternatives dans cette méthode.Groupes équivalents et réciproques ; si le sitemap est choisi, namespace xhtml et entrées par URL valides.Public
Majeur
Google Search Central · Versions localisées et hreflang
TS41Performance et suiviLes invariants SEO critiques sont rejoués automatiquement avant et après déploiement.Exécuter dans la CI un jeu d’URL représentatif : code final, redirections, robots/noindex, canonical, hreflang, contenu serveur, liens essentiels et JSON-LD.Commande versionnée, sortie horodatée, seuil d’échec explicite et lien vers le déploiement concerné.Configuration
Majeur
Méthode Edikka · sans source primaire unique
Contrôle de gouvernance et de non-régression proposé par Edikka ; aucune documentation officielle unique ne prescrit ce pipeline complet.
TS42Exploration IA et agentsChaque crawler IA est gouverné selon son usage réel : recherche, action utilisateur ou entraînement.Cartographier séparément recherche, action utilisateur et entraînement — par exemple OAI-SearchBot / ChatGPT-User / GPTBot et Claude-SearchBot / Claude-User / ClaudeBot — vers une décision datée et un propriétaire.Table user-agent / finalité / règle / source opérateur / date de revue, sans confondre recherche en direct et entraînement.Configuration
Majeur
OpenAI · Crawlers et user-agents
Anthropic · Crawlers Claude
TS43Exploration IA et agentsL’accès des crawlers autorisés est testé avec leur chaîne complète et rapproché des journaux.Envoyer une requête GET avec le user-agent complet documenté, relever code et redirections, puis rechercher la requête dans les logs et vérifier l’identité lorsque l’opérateur publie une méthode.Commande, chaîne complète, réponse finale, horodatage, trace serveur et statut d’identité vérifiée ou non vérifiée.Logs serveur
Majeur
OpenAI · Crawlers et user-agents
TS44Exploration IA et agentsLe contenu critique et ses preuves restent accessibles sans dépendre d’une exécution JavaScript non documentée.Comparer la réponse HTML brute, la version rendue et, lorsqu’elle existe, une ressource machine publique ; vérifier titres, faits, sources, liens et date de mise à jour.Faits et sources essentiels dans le HTML serveur ou une ressource publique reliée, avec une version cohérente et une URL stable.Public
Majeur
Google Search Central · Principes de base du SEO JavaScript
OpenAI · Crawlers et user-agents
Anthropic · Crawlers Claude
Portée partielle : la source Google documente le rendu JavaScript pour Google Search. Le contrôle étend prudemment la vérification à des consommateurs dont les capacités de rendu ne sont pas uniformément documentées.

Contrôles TS01–TS03

Tester une page avec GET, la chaîne complète et un cas d’erreur.

Un test HEAD seul est insuffisant : CDN, pare-feu et application peuvent traiter HEAD et GET différemment. Le protocole relève le code final, le nombre de redirections, l’URL effective et la durée. Il rejoue au minimum l’URL canonique, une ancienne URL, une ressource supprimée et une URL inexistante.

Terminal · réponse finale et nombre de redirections
curl -L -sS -o /dev/null \
  -w 'HTTP %{http_code} · redirects %{num_redirects} · final %{url_effective} · %{time_total}s\n' \
  https://www.exemple.fr/page
Décider à partir du statut, pas d’une couleur de crawler
RéponseInterprétationAction
200Le serveur livre une représentation ; cela ne prouve pas l’indexation.Vérifier contenu, directives et canonique.
301 / 308La ressource est déplacée durablement.Contrôler destination, pertinence et chaîne.
302 / 307Le déplacement est temporaire au niveau HTTP.Vérifier que le caractère temporaire est volontaire.
404 / 410La ressource n’est pas disponible.Conserver si la suppression est intentionnelle ; éviter les soft 404.
5xxLe serveur n’a pas traité la requête.Corriger, journaliser et surveiller avant publication.

Contrôles TS04–TS09

Disallow, noindex et protection serveur répondent à trois problèmes différents.

Disallow demande à un robot conforme de ne pas explorer un chemin. Il ne garantit pas la disparition de l’URL des résultats. Une directive noindex doit être lue dans le HTML ou l’en-tête HTTP ; si la ressource est bloquée par robots.txt, le moteur peut ne jamais la voir. Une donnée confidentielle, enfin, doit être refusée par authentification ou autorisation côté serveur.

Cette distinction corrige une recommandation trop répandue : associer noindex à Disallow ne renforce pas mécaniquement l’exclusion. Cela peut empêcher la lecture du noindex. La documentation Google sur les directives robots et le RFC 9309 bornent précisément ces mécanismes.

Choisir le mécanisme selon l’intention
IntentionMécanisme principalPreuveÀ éviter
Réduire l’explorationrobots.txt, si le crawler le respecte.Règle parsée + logs.Présenter la règle comme une sécurité.
Retirer de l’indexnoindex accessible au crawler.Inspection d’URL après nouvelle exploration.Bloquer la page avant lecture de noindex.
Consolider des doublonsredirection ou rel=canonical selon le cas.Signaux convergents + canonique Google.Canonicaliser des pages réellement distinctes.
Protéger une donnéeAuthentification et autorisation serveur.Test sans session, réponse 401/403, absence de contenu.Publier le secret puis le cacher aux robots.
Terminal · vérifier l’en-tête et le HTML sans confondre les couches
curl -sS -D - -o /tmp/page.html https://www.exemple.fr/page
grep -iE 'x-robots-tag|canonical|robots' /tmp/page.html

Contrôles TS10–TS12

Une canonique est un signal fort ; le moteur conserve la décision finale.

Google classe la redirection et rel="canonical" parmi les signaux forts de canonicalisation, et la présence dans un sitemap parmi les signaux plus faibles. Ces signaux se renforcent lorsqu’ils convergent. Ils ne transforment pas la canonique déclarée en ordre absolu : le moteur peut choisir une autre URL.

Le contrôle public compare URL finale, canonique déclarée, sitemap et liens internes. Le contrôle privé compare ensuite la canonique utilisateur à la canonique Google dans l’inspection d’URL. Sans cette seconde étape, l’audit ne peut conclure qu’à une déclaration cohérente, pas à une canonique effectivement choisie.

Règle

Une page canonique ne doit pas rediriger, être noindex, pointer vers une autre langue sans raison, ni recevoir l’essentiel du maillage sous une variante concurrente.

Contrôles TS13–TS15

Le sitemap est un inventaire de candidates canoniques, pas un passeport d’indexation.

Un sitemap utile contient des URL absolues, finales, indexables et canoniques. Chaque fichier respecte la limite de 50 000 URL ou 50 Mo non compressés. Les grands périmètres sont répartis dans un index de sitemaps pour permettre un diagnostic par famille.

lastmod doit correspondre à une modification significative de la page, pas à l’heure de génération du fichier. Google indique ne pas utiliser priority et changefreq. Un lastmod systématiquement réécrit détruit le signal qu’il prétend fournir.

Terminal · compter les URL et relever les lastmod
curl -sS https://www.exemple.fr/sitemap.xml \
  | xmllint --format - \
  | grep -E '<loc>|<lastmod>'

Contrôles TS16–TS21

Le crawl interne doit révéler les pages utiles sans ouvrir un espace d’URL infini.

Google recommande que chaque page importante reçoive au moins un lien depuis une autre page. Le format fiable reste un élément <a> avec un attribut href résoluble. Un gestionnaire onclick, une carte cliquable sans lien ou un état produit uniquement côté client peut rester invisible à certains crawlers.

Le rapport d’orphelines naît de la comparaison entre trois inventaires : pages découvertes par le crawl, URL déclarées dans les sitemaps et URL connues du CMS ou de la base. Une différence n’est pas automatiquement une erreur ; elle doit être qualifiée. Une page de campagne volontairement isolée n’a pas la même fonction qu’une offre principale sans lien entrant.

Les filtres, tris, calendriers et paramètres peuvent produire des combinaisons infinies. Le protocole regroupe les URL par motif, mesure les combinaisons, puis décide pour chaque famille : navigable, indexable, canonicalisée, bloquée à l’interface ou réellement indisponible.

Pas de seuil universel

« Trois clics maximum » n’est pas une loi du classement. La profondeur est un signal d’architecture à interpréter avec importance métier, maillage, fréquence de crawl et taille du site.

Contrôles TS22–TS24

Un groupe hreflang doit être indexable, réciproque et cohérent avec ses canoniques.

Chaque variante pointe vers elle-même et vers les autres variantes du groupe. Les retours doivent exister. Les codes de langue et de région doivent être valides. Les URL doivent répondre, rester indexables et publier une canonique compatible avec leur propre langue.

x-default peut désigner une page neutre ou la variante assumée par défaut. Il n’est pas obligatoire dans tous les cas. Surtout, hreflang ne compense pas une traduction pauvre, un contenu identique non localisé ou une géolocalisation forcée qui empêche l’utilisateur et le crawler de choisir.

Contrôles TS25–TS27

Le problème n’est pas JavaScript ; c’est l’écart non testé entre réponse, rendu et indexation.

Google traite le JavaScript selon trois phases documentées : crawl, rendu, indexation. Un site rendu côté client peut être indexable. Un site rendu côté serveur peut échouer. Le choix SSR, SSG ou CSR ne prouve rien à lui seul ; la preuve vient de la présence réelle du contenu, des liens et des métadonnées au stade attendu.

Comparer trois représentations avant de conclure
ReprésentationÀ vérifierOutilLimite
Réponse HTMLStatut, title, canonical, contenu et liens initiaux.curl ou navigateur sans JavaScript.Ne montre pas le DOM après exécution.
DOM renduÉléments ajoutés, retirés ou remplacés ; erreurs réseau.DevTools ou navigateur automatisé.Ne reproduit pas exactement Google.
Vue GoogleHTML rendu, capture, ressources et canonique.Inspection d’URL Search Console.Échantillon et état daté.
Terminal · comparer source et texte rendu sans faire croire que les deux outils sont équivalents
# HTML reçu du serveur
curl -sS https://www.exemple.fr/page > source.html

# Le DOM rendu doit être exporté par un navigateur réel,
# puis comparé à source.html et à l’inspection Search Console.

Contrôles TS28–TS30

Un document compréhensible possède un sujet, une structure et des liens qui ne dépendent pas de son apparence.

Le contrôle porte sur la langue du document, le titre, le contenu principal, la hiérarchie de titres, les liens, les libellés et les états d’interface. La validation HTML repère des erreurs de structure ; elle ne prouve ni la qualité, ni la pertinence, ni l’accessibilité complète.

Cette couche relie SEO technique, accessibilité et compréhension machine. Pour approfondir, voir le protocole Edikka sur l’accessibilité, le SEO et le HTML sémantique, ainsi que l’analyse des limites d’un score Lighthouse de 100.

Contrôles TS31–TS33

Les données structurées décrivent le contenu visible ; elles ne remplacent ni la page ni son autorité.

Le JSON-LD doit décrire des entités réellement présentes, utiliser des propriétés appropriées et relier les mêmes objets avec des identifiants @id stables. Les nœuds Organization, Person, WebSite, WebPage et Article ne doivent pas être recréés sans relation à chaque bloc.

Les consignes Google sont explicites : un balisage valide ne garantit pas l’affichage d’un résultat enrichi. Une donnée structurée trompeuse peut faire perdre cette éligibilité sans que cela signifie automatiquement une baisse de classement organique. Le contrôle sépare donc syntaxe Schema.org, politique Google et cohérence avec le contenu visible.

Voir aussi le guide dédié aux données structurées pour le SEO et le GEO.

Contrôles TS34–TS36

Les Core Web Vitals se lisent sur le terrain au 75e percentile ; le laboratoire sert au diagnostic.

Seuils « Bon » des Core Web Vitals, au 75e percentile des chargements
MétriqueMesureBonPreuve terrain
LCPVitesse d’affichage du plus grand élément de contenu.≤ 2,5 sCrUX / Search Console, selon disponibilité.
INPRéactivité globale aux interactions.≤ 200 msCrUX / bibliothèque web-vitals.
CLSStabilité visuelle.≤ 0,1CrUX / instrumentation RUM.

Lighthouse produit un test de laboratoire dans des conditions définies. Il localise un problème et permet une non-régression ; il ne remplace pas les données d’utilisateurs réels. L’absence de données CrUX signifie parfois seulement que le volume public est insuffisant.

Les Core Web Vitals participent aux systèmes de classement de Google, mais la documentation sur l’expérience de page rappelle qu’un score parfait ne garantit pas la première position. Le protocole relie donc performance, contenu, indexation et suivi sans transformer une métrique en causalité unique.

Contrôles TS37–TS40

Le transport, la normalisation et l’edge doivent servir les mêmes signaux à chaque point de contrôle.

Une page en 200 peut rester techniquement incohérente : certificat invalide sur une variante d’hôte, ressource active chargée en HTTP, slash final qui crée une seconde URL, redirection géographique dépendante de l’IP ou cache CDN qui conserve un ancien noindex. Le protocole teste donc HTTPS, HSTS, hôte, casse, slash, Vary et règles edge séparément.

Pour l’international, Google accepte trois méthodes équivalentes pour hreflang : HTML, en-tête HTTP ou sitemap XML. Les cumuler ne crée pas de bénéfice Search et multiplie les sources de divergence. L’audit nomme une source de vérité, puis vérifie auto-référence, réciprocité et URL canoniques dans cette méthode.

Terminal · comparer les variantes sans supposer leur normalisation
for url in \
  'http://example.fr/Page' \
  'https://example.fr/Page/' \
  'https://www.example.fr/Page'; do
  curl -L -sS -o /dev/null \
    -w '%{http_code} · %{num_redirects} · %{url_effective}\n' "$url"
done
Limite

Deux régions de test ne couvrent pas tous les POP ni toutes les clés de cache. Une divergence edge doit être rapprochée de la configuration CDN et des journaux avant de conclure à un comportement systématique.

Contrôle TS41

Un audit ponctuel devient une fondation lorsqu’il bloque les régressions connues.

Le pipeline ne cherche pas à « automatiser le SEO ». Il rejoue des invariants observables sur un échantillon représentatif : code final, nombre de redirections, absence de noindex involontaire, canonical absolue, groupe hreflang, contenu critique dans le HTML serveur, liens essentiels et JSON-LD parsable. Chaque échec pointe vers une URL, une règle et une sortie conservée.

Search Console, les logs et la revue éditoriale restent indispensables. La CI empêche seulement qu’une erreur déjà connue franchisse silencieusement une nouvelle mise en ligne.

Shell · porte minimale avec diagnostic explicite
set -eu
url='https://www.exemple.fr/page-prioritaire'
headers="$(mktemp)"
body="$(mktemp)"
trap 'rm -f "$headers" "$body"' EXIT

curl -L -sS --fail -D "$headers" -o "$body" "$url"

if ! grep -Eqi '<link[^>]+rel="canonical"' "$body"; then
  echo 'NO-GO · canonical absente du HTML serveur' >&2
  exit 1
fi

if grep -Eqi '^[[:space:]]*x-robots-tag:.*noindex' "$headers" || \
   grep -Eqi '<meta[^>]+(name="robots"[^>]+content="[^"]*noindex|content="[^"]*noindex[^>]+name="robots")' "$body"; then
  echo 'NO-GO · noindex détecté dans HTTP ou HTML' >&2
  exit 1
fi

echo 'GO · réponse, canonical et indexabilité minimales contrôlées'

Cette porte est volontairement minimale : elle ne prouve ni la canonique choisie par Google, ni le rendu final, ni l’indexation. Le projet doit ajouter ses URL, ses invariants et ses diagnostics propres.

Contrôles TS42–TS44 · SEO × GEO

Un protocole 2026 distingue crawler de recherche, agent déclenché par un utilisateur et crawler d’entraînement.

Les opérateurs ne publient pas tous les mêmes jetons ni les mêmes finalités. OpenAI distingue OAI-SearchBot pour la recherche, ChatGPT-User pour les actions déclenchées par un utilisateur et GPTBot pour l’entraînement. Anthropic sépare notamment Claude-SearchBot, Claude-User et ClaudeBot. Google-Extended est un jeton de contrôle et non un user-agent HTTP autonome.

Le test technique utilise une requête GET avec la chaîne complète documentée, puis rapproche la réponse des logs. Imiter un user-agent ne prouve jamais qu’une visite provient réellement de l’opérateur. Enfin, le contenu critique, les preuves et les liens doivent rester disponibles dans le HTML serveur ou dans une ressource publique reliée : un fichier llms.txt ou Markdown peut faciliter l’accès, mais ne garantit ni citation ni classement.

Catégoriser les jetons avant d’écrire une règle
Finalité documentéeOpenAIAnthropicDécision à consigner
RechercheOAI-SearchBotClaude-SearchBotAccès, preuve opérateur, propriétaire et date de revue.
Action utilisateurChatGPT-UserClaude-UserParcours autorisés, authentification et traces attendues.
EntraînementGPTBotClaudeBotDoctrine de droits distincte de la visibilité en recherche.
Terminal · tester la politique applicative avec la chaîne complète
curl -L -sS -o /dev/null \
  -A 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)' \
  -w 'HTTP %{http_code} · redirects %{num_redirects} · final %{url_effective}\n' \
  https://www.exemple.fr/page

Pour la doctrine et les limites juridiques, voir le protocole dédié Faut-il bloquer les robots et agents IA ?. Cette section ne déduit aucune présence réelle dans ChatGPT, Gemini, Claude ou Perplexity à partir d’un simple accès HTTP.

Contexte avant optimisation

Le crawl budget n’est prioritaire que pour certains grands sites ou des symptômes documentés.

Le guide Google consulté le 22 août 2026 cible principalement les sites très grands — environ un million de pages ou davantage avec des changements hebdomadaires —, les sites d’au moins dix mille pages qui changent quotidiennement, ou les sites où une part importante des URL reste « Découverte, actuellement non indexée ». Ces ordres de grandeur sont des repères, pas une frontière universelle.

Sur un site vitrine de cinquante pages, parler d’abord de crawl budget détourne souvent l’attention de causes plus probables : pages sans lien, canonicalisation contradictoire, contenu faible, rendu cassé ou absence d’intention distincte. La documentation crawl budget de Google doit être lue avant de prescrire des optimisations complexes.

Exemple public · Edikka

Ce qu’un audit public de cette URL établit — et ce qu’il doit refuser d’affirmer.

Observation effectuée le 22 août 2026 avant publication de cette nouvelle édition, depuis une connexion externe non authentifiée. Le début de collecte est horodaté 08 :13 :55 CEST dans l’artefact ; la réponse HTTP porte 06 :13 :55 GMT, soit le même instant exprimé dans deux fuseaux. Le cas sert à montrer la discipline de preuve ; il n’est pas présenté comme un audit complet de l’ensemble du domaine.

État public de /insights/developpement-web/seo-technique-fondations au 22 août 2026
ObservationÉtat publicPreuveConclusion autorisée
Réponse finaleHTTP 200.Requête GET avec redirections suivies.La page répond publiquement depuis ce point de test.
CanonicalAuto-référente et absolue.HTML source.La page déclare cette URL ; Google peut en choisir une autre.
RobotsMeta index, follow ; chemin non bloqué par robots.txt.HTML source et robots.txt public.Aucun blocage public observé dans ces deux couches.
SitemapURL présente.sitemap.xml public.L’URL est déclarée ; l’indexation n’est pas prouvée.
Contenu serveurH1 et contenu éditorial présents dans la réponse HTML.Source reçue sans exécuter JavaScript.Le contenu principal ne dépend pas entièrement du rendu client.
JSON-LDWebPage, Article et FAQ exposés.Scripts application/ld+json.Le graphe existe ; son usage par un moteur n’est pas garanti.
Non démontré publiquement

L’indexation actuelle, la canonique choisie par Google, les requêtes réelles de Googlebot, les Core Web Vitals terrain, les impressions, les positions et l’effet causal de cette mise à jour exigent Search Console, les logs ou une période de mesure. Ils ne sont pas déduits du HTML.

Télécharger l’artefact JSON de cet auto-audit : commandes, horodatage, en-têtes sélectionnés, empreintes SHA-256, conclusions autorisées et limites. L’adresse IP publique du collecteur n’a pas été conservée ; l’artefact le déclare au lieu d’en inventer une.

Décision sans faux score

Statut, sévérité et décision sont trois champs distincts.

Vocabulaires contrôlés de la méthode
ChampValeursQuestion traitée
StatutNon testé · Conforme · Non conforme · Non applicable.Quel est le résultat observé ?
SévéritéBloquant · Majeur · Mineur · Information.Quel risque l’échec crée-t-il ?
DécisionNO-GO · À arbitrer · GO sous réserves.Peut-on publier dans ce contexte ?

La matrice ne calcule pas une note sur 100. Une moyenne diluerait une erreur critique : 43 réussites ne compensent pas un noindex involontaire sur la page d’offre. La règle est donc une porte : un Bloquant non conforme, ou un Bloquant applicable non testé, impose NO-GO ; un Majeur non conforme impose un arbitrage documenté.

Exécution et non-régression

Préproduction, J+1, J+7 et J+30 ne répondent pas aux mêmes questions.

Cadence minimale à adapter au risque et à la taille du site
MomentContrôles prioritairesDécisionPreuve
Avant basculeHTTP, directives, canonical, maillage, sitemap, hreflang, rendu, données structurées.GO / NO-GO signé.Matrice, exports et captures datés.
J+1Codes, chaînes, robots, noindex, canonical, sitemap, formulaires et analytics.Corriger immédiatement les bloqueurs.Crawl de production et comparaison à la baseline.
J+7Logs, rapport Pages, sitemaps, erreurs serveur, principales canonisations.Prioriser les familles anormales.Segments par gabarit.
J+30Indexation, performances Search, CWV terrain si disponibles, anomalies persistantes.Clôturer, prolonger ou ouvrir une analyse causale.Fenêtre comparable et journal des changements.

Pour une refonte, ce protocole complète la migration SEO URL par URL et la recette de site avant mise en ligne. La page refonte de site internet Edikka décrit le périmètre commercial qui réunit ces expertises.

Raccourcis à éliminer

Huit phrases séduisantes deviennent fausses lorsqu’on retire leur contexte.

Du raccourci à la formulation vérifiable
RaccourciFormulation vérifiable
« Disallow désindexe. »Disallow limite l’exploration pour les robots conformes ; l’URL peut rester connue.
« noindex dans robots.txt fonctionne. »Google ne prend pas en charge cette règle dans robots.txt ; utilisez meta robots ou X-Robots-Tag accessible.
« Canonical impose l’URL. »rel=canonical est un signal fort ; le moteur conserve le choix final.
« Sitemap garantit l’indexation. »Le sitemap aide à déclarer des candidates canoniques ; il ne garantit pas leur indexation.
« JavaScript empêche le SEO. »Le risque vient d’un contenu ou de liens absents, bloqués ou rendus incorrectement.
« Schema.org améliore le classement. »Les données structurées aident certains consommateurs à comprendre et enrichir ; aucun gain de position n’est garanti.
« Lighthouse 100 prouve la vitesse. »Lighthouse est un test de laboratoire ; les CWV terrain sont lus séparément au 75e percentile.
« Tout site a un problème de crawl budget. »Le sujet devient prioritaire sur de grands volumes ou face à des symptômes documentés.

Ressources ouvertes

Télécharger, rejouer et citer la méthode.

Cet article et la Grille d’audit SEO technique Edikka v1.1 sont publiés sous licence CC BY 4.0. La réutilisation est autorisée avec attribution à Edikka et à cette URL canonique. Les fichiers sont accessibles sans formulaire.

Protocole ouvert

Choisir le format adapté à votre contrôle.

La méthode reste identique dans les actifs ouverts. Le format change selon que vous devez auditer, automatiser, citer ou vérifier l’exemple public.

Historique

v1.1 · 22 août 2026. Le protocole passe à 44 contrôles dans 13 domaines, publie l’inventaire complet dans l’HTML, ajoute HTTPS/HSTS, normalisation, CDN, hreflang par sitemap, CI et exploration IA, puis associe une preuve JSON à l’auto-audit. Aucune statistique de marché n’est affirmée sans panel préenregistré.

Sources primaires

Documents consultés le 22 août 2026.

Vision Edikka

Un socle technique n’est solide que lorsque sa décision peut être rejouée.

L’objectif n’est pas d’obtenir un audit plus impressionnant. Il est de savoir exactement ce qui a été testé, ce qui reste inconnu et ce qui doit empêcher une mise en ligne.

01Observer

Séparer les couches

HTTP, robots, rendu, indexation, canonique Google et terrain ne se déduisent pas les uns des autres. Chaque preuve garde son périmètre.

02Qualifier

Nommer l’inconnu

Non testé, non applicable et non conforme sont trois états différents. Les fusionner donne une impression de maîtrise au lieu d’une décision.

03Décider

Refuser la moyenne rassurante

Un noindex accidentel ne se compense pas avec 43 réussites. La sévérité et le propriétaire du risque priment sur le score.

FAQ article

Pour aller plus loin sur ce sujet

Des réponses complémentaires pour clarifier les points essentiels abordés dans cet article.

10 questions sélectionnées Voir toutes les FAQ

Le web, pensé pour performer

Stratégie. Design. Code. SEO. IA. Des expériences digitales plus claires, plus rapides et plus convaincantes.

Articles voisins pour poursuivre l’analyse