Ce qu'un simulateur de crawler Google fait réellement
Un simulateur de crawler envoie une requête HTTP à votre URL avec une chaîne user-agent correspondant au bot que vous sélectionnez, récupère la réponse, et enregistre le code de statut, les en-têtes et le HTML brut. Il charge ensuite la page dans un navigateur sans interface—Chrome avec JavaScript activé—attend que le DOM se stabilise, capture le HTML final rendu, et le compare au HTML initial pour montrer ce que JavaScript a modifié.
Il extrait le texte visible—ce qu'un bot voit après suppression des balises HTML, CSS et scripts—car c'est le contenu que Google indexe. Il signale les ressources qui n'ont pas pu se charger : images, polices, fichiers CSS ou bundles JavaScript bloqués par CORS, 404, ou erreurs serveur. Il vérifie les balises meta robots, les en-têtes X-Robots-Tag, et les balises canoniques qui pourraient empêcher l'indexation même si la page s'est chargée avec succès.
Trois catégories de problèmes apparaissent dans chaque test de crawl. La première est le contenu manquant du HTML brut qui n'apparaît que après l'exécution de JavaScript. Si votre headline héros ou description de produit est rendue côté client, Googlebot pourrait ne pas la voir pendant la récupération initiale. La deuxième est le délai d'attente de rendu. Si JavaScript prend plus de cinq secondes pour se terminer, Googlebot peut indexer la page incomplète. La troisième est les ressources bloquées. Si vos fichiers CSS ou JavaScript critiques retournent 403 ou 404, la page s'affiche cassée, et Googlebot voit une mise en page cassée.
Comment utiliser ce simulateur de crawler Google
- Collez l'URL de la page dans Page URL. Utilisez la version canonique—https, www si applicable, aucun paramètre UTM sauf si vous testez comment les paramètres affectent le rendu.
- Choisissez un User-agent dans la liste déroulante. Googlebot Desktop est la valeur par défaut. Googlebot Mobile simule l'indexation mobile-first avec une fenêtre d'affichage mobile. Googlebot-Image teste le crawling spécifique aux images. Bingbot teste le crawler de Bing. GPTBot simule le crawler d'entraînement d'OpenAI.
- Cliquez sur Simulate crawler. Vous obtenez quatre sections : HTML brut, HTML rendu, texte visible, et un journal des ressources montrant quels fichiers se sont chargés ou ont échoué.
- Comparez les onglets Raw HTML et Rendered HTML. Si la version rendue a du contenu manquant du HTML brut, ce contenu est injecté par JavaScript. Si le temps de rendu dépasse cinq secondes, nous affichons un avertissement.
- Vérifiez la liste Blocked resources. Toute ressource qui a retourné un statut non-200 est signalée. Si le CSS ou JavaScript critique est bloqué, la page risque de s'afficher cassée pour Googlebot.
- Faites défiler jusqu'à Visible text. C'est ce que Google indexe. Si votre mot-clé cible apparaît ici, Google peut classer la page pour celui-ci. S'il n'y est pas, le mot-clé est invisible.
Essayez de simuler une application monopage construite avec React ou Vue. Le HTML brut contient souvent un <div id="root"></div> vide et une balise script. Le HTML rendu montre la page complète après exécution de JavaScript. Si le rendu prend huit secondes à cause d'appels API lents, nous avertissons que Googlebot pourrait expirer et indexer le shell vide.
Pourquoi le HTML brut par rapport au HTML rendu est important
Le pipeline d'indexation de Google a deux phases. La première est la récupération initiale, où Googlebot télécharge le HTML brut. La deuxième est le rendu, où Googlebot exécute JavaScript dans une instance Chrome sans interface et capture le DOM final. Le rendu se produit des heures ou des jours après la récupération initiale, et pas chaque page n'est rendue. Les pages avec des temps de chargement rapides, des liens internes forts, et aucune erreur JavaScript sont priorisées.
Trois conséquences pratiques.
Le contenu en HTML brut s'indexe plus vite. Si votre H1, meta description, et premier paragraphe sont dans le HTML initial, Googlebot peut les indexer immédiatement. S'ils n'apparaissent que après l'exécution de JavaScript, l'indexation attend la file de rendu. Sur un site avec 10 000 pages, ce délai peut être des jours ou des semaines.
Les erreurs JavaScript bloquent l'indexation. Si votre page génère une erreur console lors du rendu, Googlebot pourrait voir une page vierge. Notre simulateur exécute la page et capture les journaux console. Une erreur comme « Uncaught TypeError: Cannot read property 'map' of undefined » peut empêcher la page entière de s'afficher.
Le budget de rendu est fini. Google alloue un budget de crawl et un budget de rendu par site. Si le rendu de votre page d'accueil prend 10 secondes, Google pourrait la rendre moins souvent que les concurrents dont les pages s'affichent en deux secondes. Nous signalons le temps de rendu pour que vous sachiez si vous dépassez le budget.
Ressources bloquées et impact sur l'indexation
Une ressource bloquée est tout fichier—CSS, JavaScript, image, police—que la page a tenté de charger mais a reçu un code de statut 4xx ou 5xx, ou qui a été bloqué par robots.txt ou la politique CORS. Googlebot ignore le fichier et continue le rendu, mais le fichier manquant peut casser la mise en page ou les fonctionnalités.
Les fichiers CSS critiques contrôlent la mise en page. Si styles.css est bloqué par robots.txt, Googlebot affiche la page sans styles, ce qui signifie que le contenu pourrait être masqué par les états CSS par défaut—accordéons fermés, onglets cachés, modales hors écran. Le contenu existe dans le DOM mais n'est pas visible, donc Google pourrait ne pas l'indexer.
Les fichiers JavaScript critiques contrôlent l'interactivité et la récupération de données. Si app.js est bloqué, le routage côté client se casse, et les liens dans l'app ne fonctionnent pas. Si api-client.js est bloqué, votre page produit ne peut pas récupérer les données produit, donc Googlebot voit un spinner de chargement au lieu des détails du produit.
Les images et les polices sont moins critiques. Une image manquante ne casse pas l'indexation, mais elle pourrait nuire aux signaux d'expérience utilisateur si la mise en page se décale ou des espaces réservés apparaissent. Une police manquante revient à des polices système, ce qui est généralement correct pour l'indexation.
Notre simulateur liste toutes les ressources, leur URL, code de statut, et type. Si une ressource a échoué, nous affichons l'erreur. Si elle a été bloquée par robots.txt, nous la signalons. Utilisez cette liste pour corriger les blocages au niveau du serveur ou dans votre fichier robots.txt.
Indexation mobile-first et fenêtre d'affichage
En 2026, Google utilise l'indexation mobile-first pour tous les sites. Cela signifie que Googlebot Mobile est le crawler principal, et la version mobile de votre page détermine les classements même pour les recherches de bureau. Si votre page mobile masque le contenu derrière un bouton « Lire la suite » ou supprime les widgets de barre latérale, Googlebot ne voit pas ce contenu, et il ne compte pas vers les classements.
Tester avec Googlebot Mobile en tant que user-agent montre ce que le crawler mobile voit. Nous affichons la page avec une fenêtre d'affichage de 375px—largeur iPhone SE—pour que vous voyiez la mise en page mobile. Si votre CSS masque les éléments aux largeurs mobiles, ils sont absents du HTML rendu. Si votre JavaScript charge paresseusement les images ou le texte au fur et à mesure que l'utilisateur fait défiler, et que Googlebot ne fait pas défiler, ce contenu est invisible.
Deux correctifs sont courants. Le premier est le rendu côté serveur ou la génération de site statique, où le contenu complet est dans le HTML brut quel que soit la fenêtre d'affichage. Le second est de s'assurer que le CSS mobile ne définit pas display: none sur le contenu important. Utilisez opacity: 0 ou position: absolute; left: -9999px pour l'accessibilité, mais même ceux-ci peuvent nuire à l'indexation s'ils sont utilisés à outrance.
Balises meta robots et en-têtes X-Robots-Tag
Même si une page se charge avec succès, une balise <meta name="robots" content="noindex"> ou un en-tête HTTP X-Robots-Tag: noindex dit à Googlebot de ne pas l'indexer. Notre simulateur vérifie les deux et les signale dans le résumé.
Les valeurs courantes sont noindex (ne pas ajouter aux résultats de recherche), nofollow (ne pas suivre les liens sur cette page), noarchive (ne pas mettre en cache), nosnippet (ne pas afficher un snippet dans les résultats), et none (équivalent à noindex, nofollow). Si votre site de staging devient accidentellement un site actif avec des balises noindex toujours présentes, vous perdez tout le trafic de recherche. Vérifier avant le lancement prévient cela.
L'en-tête HTTP a la priorité sur la balise HTML si les deux sont présents et diffèrent. Une page avec <meta name="robots" content="index"> mais X-Robots-Tag: noindex ne sera pas indexée. Notre simulateur affiche les deux pour que vous puissiez repérer les conflits.
Erreurs courantes
- Afficher la page entière côté client. Si le HTML brut est vide et tout apparaît après JavaScript, l'indexation est lente et fragile. Déplacez le contenu critique dans le HTML initial via le rendu côté serveur ou la pré-génération.
- Bloquer JavaScript ou CSS dans robots.txt. Google a besoin de ces fichiers pour afficher la page.
Disallow: *.jsouDisallow: *.csscasse le rendu. Bloquez-les uniquement si vous avez une bonne raison, et revérifiez avec le simulateur après. - Ignorer les erreurs console. Une seule exception non capturée peut arrêter le rendu. Vérifiez le journal console dans la sortie du simulateur et corrigez les erreurs avant de déployer.
- Tester uniquement avec un navigateur, pas avec Googlebot. Les navigateurs sont plus tolérants que Googlebot. Une page qui fonctionne dans Chrome pourrait échouer dans Chrome sans interface à cause de polyfills manquants ou de vérifications user-agent. Simulez Googlebot pour voir l'expérience réelle.
- Supposer que Googlebot fait défiler. Il ne le fait pas. Le contenu chargé paresseusement déclenché par des événements de défilement est invisible sauf si vous implémentez Intersection Observer ou chargez tout au rendu initial.
- Ne pas tester après les mises à jour de framework. Une mise à jour de version Next.js ou Gatsby peut changer le fonctionnement de la génération statique. Revérifiez le rendu après les mises à jour pour confirmer que le contenu est toujours dans le HTML brut.
Conseils avancés
- Testez la même URL avec Googlebot Desktop et Googlebot Mobile. Si le contenu diffère, l'indexation mobile-first peut classer la page différemment que prévu.
- Comparez le temps de rendu sur les pages. Si votre page d'accueil s'affiche en 2 secondes mais les pages produit prennent 8 secondes, identifiez l'appel API lent ou le script lourd et optimisez-le.
- Vérifiez la section Visible text pour la présence de mots-clés. Si votre mot-clé cible est dans la source HTML mais pas dans le texte visible, il pourrait être masqué par CSS ou JavaScript, ce qui signifie qu'il ne compte pas vers les classements.
- Utilisez le simulateur après avoir déployé une nouvelle fonctionnalité. Un flux de paiement, un widget de chat en direct, ou un script d'analyse peut casser le rendu s'il génère des erreurs. Le détecter après le déploiement prévient les chutes d'indexation.
- Si des ressources bloquées sont trouvées, vérifiez avec le vérificateur robots.txt pour confirmer si robots.txt en est la cause. Si non, vérifiez les journaux serveur pour les erreurs 403 ou CORS.
- Combinez cet outil avec le vérificateur de métadonnées du site pour confirmer que le titre, les metas, et le schéma sont présents dans le HTML rendu, pas seulement dans la source brute.
Après simulation, si vous découvrez que JavaScript est requis pour le contenu critique, envisagez de passer au rendu côté serveur ou à la génération statique. Si des ressources bloquées sont le problème, mettez à jour votre robots.txt avec le générateur de fichier robots.txt. Si vous voulez voir comment tous les facteurs SEO sur la page—rendu, métadonnées, canoniques, liens internes—s'empilent, utilisez le checklist SEO pour un audit 20 points.