Vue robot
La plupart des robots ne dessinent jamais votre page. Ils prennent le HTML que votre serveur envoie, gardent les mots et repartent. Ce contrôle montre ces mots dans l’ordre où un robot les rencontre et signale ce qui manque.
Chaque page existe en deux exemplaires
Le premier exemplaire est le document HTML qui sort de votre serveur. Le second est ce qu’un navigateur construit à partir de lui une fois les feuilles de style chargées, les scripts exécutés et tout ce que ces scripts demandent récupéré. Les gens ne voient jamais que le second exemplaire.
Les robots travaillent surtout sur le premier. Googlebot affiche bien les pages avec un Chrome sans interface, mais dans une seconde passe qui peut prendre du retard et expirer. Bingbot en affiche moins. Les robots qui alimentent les assistants d’IA et les récupérateurs d’aperçus des applications de messagerie et de réseaux sociaux, n’exécutent en général pas du tout JavaScript. Si votre texte n’existe que dans le second exemplaire, une bonne partie de votre public machine reçoit une page vide.
Ce contrôle demande le premier exemplaire et s’arrête là. Rien n’est exécuté et aucune feuille de style n’est appliquée.
Comment lire la vue en texte brut
Nous parcourons le corps de la page dans l’ordre de la source et nous l’affichons en texte. Les scripts, styles, modèles et dessins SVG en ligne sont ignorés. Le reste est marqué ainsi :
#,##,###- Un titre et son niveau. Essayez de ne lire que ces lignes. Elles devraient servir de table des matières à la page.
- Mots soulignés
- Un lien. Survolez-le pour voir l’adresse vers laquelle il mène.
[Image: …]- Le texte
altd’une image. Une image sans attributaltest indiquée comme manquante, avec son nom de fichier. Les boutons et les champs de formulaire apparaissent de la même façon entre crochets. - Texte marqué comme caché
- Des mots présents dans le HTML mais qui portent l’attribut
hiddenou un style en ligne commedisplay:none,visibility:hidden,font-size:0ou un grandtext-indentnégatif. - Texte marqué noscript
- Le contenu à l’intérieur de
<noscript>, que seuls les robots et les visiteurs sans JavaScript reçoivent.
Sous le texte, vous trouvez les chiffres : taille du HTML, nombre de mots visibles, part du HTML qui est du texte, scripts, liens et images. Une part de texte entre 10 et 30 % est typique d’une page faite à la main ou d’une page de CMS. À 1 ou 2 %, le document est surtout du code.
Ce qui déclenche chaque constat
| Constat | Règle appliquée |
|---|---|
| Contenu seulement après JavaScript | Moins de 60 mots visibles, avec l’un de ces éléments : un conteneur d’application vide (#root, #app, #__next, #__nuxt, app-root et semblables), trois scripts externes ou plus, plus de 50 KB de script en ligne, ou plus de 150 KB dans les fichiers de script principaux. |
| Très peu de texte | Moins de 150 mots visibles. |
| La page demande à ne pas être indexée | noindex ou none dans une balise meta robots ou un en-tête X-Robots-Tag. |
| Google non autorisé | Le chemin de la page correspond à une règle Disallow qui s’applique à Googlebot dans robots.txt. |
| Plus de texte caché que de texte visible | Les mots cachés dépassent les mots visibles, avec un plancher de 80. |
| Liens que les robots ne peuvent pas suivre | href="#", href="javascript:…", ou un onclick sans href. |
| Pas de titre de niveau 1, images sans alt | Comptés directement dans le HTML. |
Le dernier bloc applique votre robots.txt à cette seule adresse pour dix robots d’exploration : Googlebot, Bingbot, Google-Extended, GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot, CCBot et Applebot-Extended. Un blocage de Googlebot compte comme une erreur. Un blocage d’un robot d’IA est simplement signalé, puisque c’est un choix que vous avez le droit de faire. Le contrôle d’accès des robots d’IA couvre une liste plus longue pour l’ensemble du site.
Mettre votre texte dans le premier exemplaire
Si le contrôle a trouvé un conteneur vide, la page est une application côté client. Le serveur envoie une coquille et le navigateur la remplit. Voici les remèdes, du plus complet au moins complet :
- Générer côté serveur. Next.js, Nuxt, SvelteKit, Remix et Angular peuvent tous produire un HTML complet à chaque requête puis y attacher les scripts. C’est en général un choix de configuration, pas une réécriture.
- Générer des pages statiques à la compilation. Pour un contenu qui change peu, des outils comme Astro, Gatsby ou l’export statique des frameworks ci-dessus écrivent un fichier HTML complet par page.
- Prérendre pour les robots. Un service de prérendu garde un instantané généré et le sert aux robots d’exploration. Ça marche, mais vous avez alors deux versions à entretenir.
Sur un CMS classique comme WordPress ou Drupal, le HTML contient déjà le texte et les constats sont plus modestes : un prix affiché seulement dans une image, un menu dont les liens sont des gestionnaires onclick, ou un numéro de téléphone dans une image de bannière avec un alt vide.
Le texte caché n’est détecté qu’à partir de l’attribut hidden et des styles en ligne. Un texte caché par une classe d’une feuille de style externe compte comme visible ici, car nous ne chargeons pas les feuilles de style. Les menus repliés, les onglets et les accordéons sont normaux et les moteurs de recherche ne les pénalisent pas.
Questions fréquentes
Google exécute-t-il JavaScript quand il explore une page ?
Oui, mais dans un second temps. Google indexe d’abord le HTML qu’il télécharge, puis met la page en file d’attente pour un rendu dans un Chrome sans interface. Cette étape peut venir plus tard et elle peut ne pas attendre les scripts lents ni le contenu chargé au défilement ou au clic.
Les robots de ChatGPT, Claude et Perplexity exécutent-ils JavaScript ?
En règle générale, non. GPTBot, ClaudeBot, PerplexityBot et CCBot téléchargent le HTML et lisent son texte. Une page qui a besoin de scripts pour afficher son contenu ne leur donne presque rien, voire rien du tout.
Le texte caché est-il mauvais pour le SEO ?
Pas quand il fait partie de l’interface. Les menus, onglets, accordéons et boîtes de dialogue sont indexés normalement. Ce que les moteurs de recherche considèrent comme du spam, c’est un texte caché exprès aux visiteurs pour ajouter des mots-clés, comme du texte blanc sur fond blanc.
Quel est un bon ratio texte/HTML ?
Il n’y a pas de cible et ce n’est pas un facteur de classement. Les pages soignées se situent souvent entre 10 et 30 %. Un chiffre très bas indique seulement que le document contient beaucoup de balisage ou de script en ligne par rapport à la quantité de contenu.
Pourquoi la vue n’affiche-t-elle presque rien pour mon site ?
Votre serveur envoie une coquille d’application et le contenu est ajouté dans le navigateur. Ouvrez le code source de la page (Ctrl+U ou Cmd+Option+U) et cherchez une phrase de votre page. Si elle n’y est pas, les robots qui n’exécutent pas JavaScript ne peuvent pas la voir non plus.