TL:DR, il est semi-humainement possible de répliquer le crawl de Googlebot sur Discourse. Voici comment commencer…
Devenez un avec Googlebot
Ouvrez une fenêtre de navigation privée (commencez toujours à zéro)
Ouvrez DevTools
Ouvrez Network Conditions dans DevTools
Décochez « Utiliser les paramètres par défaut du navigateur »
Dans le menu déroulant, choisissez Googlebot Smartphone
Ensuite, allez sur https://meta.discourse.org (cela a l’air très différent ; ce n’est pas grave car votre Googlebot et les bots ne s’en soucient pas)
Allez dans Affichage > Développeur > Afficher la source
Copiez-le et collez-le dans un fichier .html
Bon travail ! Vous avez créé le fichier que les humains référencent pour voir ce que Googlebot a crawl et mis en cache.
Le travail de Googlebot est terminé. Il est maintenant temps de rendre le fichier mis en cache dans un navigateur.
Devenez un avec Chrome
Ouvrez le terminal et exécutez npx http-server
Naviguez jusqu’au fichier
Ouvrez Chrome DevTools
Dans le panneau Elements, faites un clic droit sur <html>... et sélectionnez Copier outerHTML.
C’est le contenu qui sera indexé, pas mis en cache, indexé.
En résumé, Googlebot récupère le HTML et Chrome le rend. Le HTML rendu est de l’or. Assurez-vous que votre contenu et vos liens précieux y apparaissent.
Le HTML mis en cache est rendu dans Chrome (sans interface graphique). Lors du rendu, du contenu et des liens supplémentaires peuvent être introduits via JavaScript, dans le DOM. Google prendra en compte les informations qu’il rend pour l’indexation.
C’est ainsi que Googlebot obtient le contenu des applications fortement basées sur JavaScript. Allez sur Google et recherchez quelque chose dont vous savez qu’il rend le contenu uniquement avec JavaScript > cliquez sur l’icône à 3 points > cliquez sur le bouton Cache > cliquez sur Afficher la source > copiez-le et rendez-le dans Chrome pour voir quel contenu apparaît dans le DOM.
Remarque : Mettez à jour tous les chemins relatifs (ressources CSS et JS) en chemins absolus avant de les rendre dans Chrome ^^
Assurez-vous d’inclure la chaîne d’agent utilisateur Googlebot, par exemple : Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). Le serveur peut envoyer à Googlebot un HTML différent.
Je pense que c’est la même sortie, mais ça ne coûte rien d’ajouter l’agent utilisateur. Je ne suis pas sûr pour Chrome, mais dans Firefox, vous pouvez faire un clic droit sur la requête dans l’onglet réseau et choisir « copier en tant que curl » pour un ensemble complet d’en-têtes qui imiteront une requête de navigateur.