Vérificateur du HTML brut et rendu
Free, no signup. Open the page in a browser and it looks complete; Google sees raw HTML first, then runs JavaScript and looks again — and those two views don't always agree. Test a public URL through the bounded rendering service to find where they diverge, with a side-by-side raw-vs-rendered diff.
Demandez une comparaison dans le navigateur même si le HTML initial semble substantiel. Les limites de rendu restent applicables ; la demande ne garantit pas une capture rendue.
Comportement par défaut : Free, no sign-up. The page is rendered in headless Chrome only when the initial HTML looks incomplete — most server-rendered sites never need it.
Les contrôles sont exécutés depuis notre serveur ; nous récupérons l’URL saisie et ne conservons pas les résultats. Reports are kept 7 days so you can share a link to the result. Anonymous aggregate stats feed our research posts; domains are counted once via an anonymized hash and never stored in the clear. Des compteurs anonymes de résultats par exécution peuvent servir à la recherche agrégée ; les URL, domaines, adresses IP et identifiants ne sont jamais inclus, et aucune statistique issue de moins de 100 exécutions n’est publiée.
+ enregistre le site ou la page actuels. Utilisez ☆ à côté de tout site, page ou liste enregistré pour l’ajouter aux favoris. L’historique des vérifications récentes apparaît ci-dessous.
Créer une liste nommée
Cible remplie à partir de vos choix locaux.
Passeport du site Contexte local de ce site enregistré
Données locales
Les cibles enregistrées, les listes nommées et les résumés des vérifications récentes restent uniquement dans ce navigateur.
What JavaScript changed
Resources Google and AI bots couldn’t get
What non-rendering AI crawlers can see
This is a fast, directional check. For anything that affects indexing, confirm it in Google Search Console's URL Inspection tool — that's Google's own renderer and the real source of truth.
Évaluer cet outil
What this is checking
The render gap
Google can process JavaScript in a rendering phase after crawling. Content that appears only after rendering depends on that phase and is absent from the initial response; this comparison does not predict discovery or indexing timing.
The most restrictive rule wins
If a noindex appears in either the raw or rendered HTML, Google may use it — and an initial-HTML noindex may cause Google to skip rendering, so JavaScript cannot reliably undo it.
Canonicals are conditional
JavaScript may add a canonical when the raw HTML has none, or keep the same value. A different or additional value creates competing canonical input.
Checks based on the JavaScript SEO guide on Ahrefs. Confirm findings in Search Console.
À propos de cet outil
Comparez le HTML initial et le DOM après rendu pour voir ce que Google peut réellement traiter. Le rapport signale les écarts de rendu, le mode SSR/prérendu/CSR/hybride, les canonicals, noindex, robots.txt, liens et soft 404.
Fonctionnalités
- Comportement par défaut : Diff côte à côte du HTML brut et du DOM rendu dans Chrome lorsque le rendu est nécessaire.
- Verdict de stratégie de rendu avec contrôles JavaScript-SEO ciblés.
- Détection des canonicals concurrents, noindex, blocages robots.txt, liens et contenus insuffisants.
- Rapport partageable avec preuves brutes, rendues et recommandations par contrôle.
Fonctionnement
Comportement par défaut : Le service récupère d’abord le HTML initial, puis lance un rendu Chrome seulement lorsque les heuristiques indiquent un écart potentiel. Il compare les éléments SEO observables dans les deux états et distingue absence, ajout, modification et blocage avant de produire un verdict prudent.
Limites
- Le rendu headless est borné par un budget et ne prouve pas la parité complète avec tous les parcours utilisateur.
- Les règles robots.txt, les délais et les ressources externes peuvent empêcher un rendu même lorsque le HTML initial semble complet.
Questions fréquentes
Qu’est-ce qu’un écart de rendu en SEO JavaScript ?
Un écart de rendu est la différence entre le contenu du HTML brut envoyé par le serveur et celui du DOM définitif après l’exécution de JavaScript par le navigateur. Google peut traiter JavaScript lors d’une étape ultérieure à l’exploration. Tout élément qui n’apparaît qu’après cette exécution dépend donc de la réussite du rendu et manque dans la réponse du serveur. Cet outil mesure cette dépendance ; il ne prédit pas quand Google découvrira ou indexera le contenu.
Google exécute-t-il réellement le rendu JavaScript ?
Oui. Google traite les pages avec une version de Chromium mise à jour en continu ; le contenu côté navigateur peut donc être indexé. Ce traitement reste toutefois une étape distincte, et des ressources bloquées ou des erreurs JavaScript peuvent empêcher le contenu d’apparaître dans le HTML rendu. Google ne réalise aucune action sur une page pour charger son contenu : tout élément qui exige une action doit déjà figurer dans le HTML rendu. Placer le contenu et les balises essentiels dans la réponse du serveur supprime cette dépendance.
Pourquoi cet outil ne rend-il parfois pas ma page ?
Comportement par défaut : Chrome sans interface ne s’exécute que lorsqu’une heuristique limitée estime que le HTML d’origine semble incomplet. Des titres, des liens et un texte de corps substantiel dans le HTML brut peuvent conduire l’outil à ignorer le rendu, sans prouver que l’infrastructure génère côté serveur ni que JavaScript n’ajouterait rien. Une exécution sans rendu analyse uniquement le HTML d’origine ; elle ne compare pas sa parité avec le résultat rendu.
Google respecte-t-il un canonical ou un noindex inséré par JavaScript ?
Google peut ignorer le rendu après avoir détecté noindex dans le HTML d’origine ; JavaScript ne peut donc pas supprimer cette directive de manière fiable par la suite. Un noindex présent uniquement dans le rendu peut aussi être pris en compte. Pour les balises canonical, JavaScript peut en ajouter une si le HTML d’origine n’en contient aucune, et reprendre la même valeur ne pose pas de problème. La remplacer par une autre valeur ou conserver plusieurs valeurs crée des signaux concurrents risqués.
Est-ce la même chose que l’outil d’inspection d’URL de Google Search Console ?
Non, et cet outil ne vise pas à le remplacer. Il fournit une comparaison rapide et indicative. L’inspection d’URL de Google Search Console apporte, pour une propriété vérifiée, des preuves propres à Google sur l’exploration, l’indexation et les tests en direct ; aucun des deux outils ne garantit toutefois la façon dont une URL sera traitée lors d’une exploration ultérieure.
Problèmes courants et solutions
- Avertissement Vérification à examiner. Solution : Corrigez le balisage head mal formé afin que les métadonnées restent dans un seul élément <head> valide du HTML d’origine.
- Erreur titre is manquant Solution : Ajoutez au HTML d’origine un élément <title> concis et distinct qui nomme le sujet principal de la page.
- Avertissement Le titre est modifié après le rendu Solution : Rendez identiques les valeurs <title> du serveur et du rendu, sauf si la modification côté navigateur est volontairement nécessaire.
- Erreur titre apparaît seulement après JavaScript Solution : Émettez le <title> définitif dans le HTML d’origine au lieu de compter sur JavaScript pour l’insérer.
- Avertissement La page ne comporte pas de méta-description Solution : Ajoutez au HTML d’origine une méta-description propre à la page qui résume fidèlement son contenu.
- Avertissement La méta-description est modifiée après le rendu Solution : Alignez les résumés méta d’origine et rendu afin que les robots reçoivent une présentation unique et cohérente.
- Erreur Les balises canonical d’origine et rendue sont contradictoires Solution : Choisissez l’URL absolue à privilégier et faites pointer vers elle les balises canonical d’origine et rendue.
- Erreur JavaScript remplace le canonical Solution : Conservez un seul canonical dans le HTML d’origine et empêchez le code du navigateur de le remplacer après le rendu.
- Avertissement Le canonical n’existe qu’après le rendu Solution : Placez la balise canonical dans le HTML d’origine au lieu de l’ajouter uniquement après l’exécution de JavaScript.
- Erreur Vérification à examiner. Solution : Supprimez noindex de la réponse serveur initiale lorsque la page doit être indexée ; ne comptez pas sur JavaScript pour l’annuler.
- Avertissement Vérification à examiner. Solution : Empêchez le code du navigateur d’ajouter noindex aux pages qui doivent rester indexables.
- Erreur Noindex subsiste après le rendu Solution : Supprimez la directive noindex du HTML d’origine et du HTML rendu lorsque la page doit être indexée.
- Avertissement Nofollow subsiste après le rendu Solution : Supprimez nofollow lorsque les robots doivent suivre les liens de la page, ou limitez-le aux liens qui l’exigent.
- Avertissement hreflang apparaît seulement après rendu Solution : Émettez chaque balise hreflang dans le HTML d’origine ou les en-têtes HTTP au lieu de l’ajouter uniquement avec JavaScript.
- Avertissement hreflang est modifié après le rendu Solution : Rendez les ensembles hreflang d’origine et rendu identiques, réciproques et dirigés vers les URL des langues prévues.
- Erreur Important contenu apparaît seulement après rendu Solution : Générez le contenu important côté serveur ou de façon statique afin qu’il existe dans le HTML d’origine.
- Avertissement Une part importante du contenu est ajoutée après le rendu Solution : Placez dans le HTML d’origine le contenu essentiel ajouté par JavaScript et ne laissez au navigateur que les améliorations facultatives.
- Avertissement Les liens importants n’apparaissent qu’après le rendu Solution : Présentez les pages importantes sous forme de liens <a href> ordinaires dans le HTML d’origine.
- Erreur Les liens rendus ne sont pas des URL explorables Solution : Remplacez onclick, javascript: ou le parcours par bouton par des URL explorables dans des liens <a href>.
- Avertissement Les visuels rendus n’ont pas d’attribut alt Solution : Ajoutez un texte alternatif concis aux visuels rendus porteurs de sens et un attribut alt vide aux éléments décoratifs.
- Erreur Robots.txt empêche le chargement des fichiers nécessaires au rendu Solution : Autorisez Googlebot à récupérer les ressources JavaScript, CSS ou de données bloquées qui sont nécessaires au rendu de la page.
- Avertissement Le rendu produit des erreurs dans le journal du navigateur Solution : Corrigez l’exception indiquée côté navigateur et confirmez que le contenu essentiel s’affiche encore lors d’un chargement à froid.
- Avertissement Des requêtes de ressources échouent pendant le rendu Solution : Restaurez, acheminez correctement ou supprimez chaque requête de ressource échouée nécessaire au résultat rendu.
- Avertissement Le contenu important exige une action de l’utilisateur Solution : Placez tout le contenu dans le DOM chargé ou donnez-lui une URL explorable au lieu d’exiger un clic ou un défilement.
- Erreur La page rendue ressemble à une erreur 404 déguisée Solution : Renvoyez un code 404 ou 410 pour une page absente, ou remplacez le corps trop léger ressemblant à une erreur par un contenu substantiel à l’URL qui renvoie 200.
- Avertissement JavaScript redirige la page Solution : Remplacez la redirection JavaScript par une réponse 3xx côté serveur appropriée vers l’URL finale.
- Information Les données structurées sont absentes Solution : Ajoutez un balisage JSON-LD exact pour l’entité principale prise en charge par la page lorsque les données structurées sont appropriées.
- Avertissement Les données structurées n’apparaissent qu’après le rendu Solution : Émettez le JSON-LD validé dans le HTML d’origine au lieu de l’insérer uniquement après l’exécution de JavaScript.
- Information La page dépend d’un WebSocket pendant le rendu Solution : Affichez le contenu essentiel sans exiger de WebSocket ouvert et fournissez une solution HTTP ou générée côté serveur qui résiste aux pannes.
- Avertissement La balise méta de zone d’affichage est absente Solution : Ajoutez <meta name="viewport" content="width=device-width, initial-scale=1"> dans l’en-tête d’origine.
- Erreur Le contenu essentiel dépend du rendu dans le navigateur Solution : Générez côté serveur ou prérendez le titre, le H1, les liens et le contenu principal dans le HTML d’origine.
- Avertissement La page repose sur un routage par fragment Solution : Utilisez dans le routeur des chemins fondés sur l’historique que le serveur peut résoudre sans la partie d’URL située après #.
- Avertissement L’élément de titre se trouve hors de l’en-tête HTML Solution : Déplacez le titre dans l’en-tête de la page et conservez-y une seule valeur de titre non vide.
- Avertissement L’élément canonique se trouve hors de l’en-tête HTML Solution : Déplacez le lien canonical prévu dans l’en-tête de la page et supprimez les déclarations canonical du corps.
- Avertissement Le HTML d’origine contient plusieurs balises canonical contradictoires Solution : Émettez une seule URL canonical dans le HTML d’origine au lieu de compter sur JavaScript pour corriger des déclarations contradictoires.