Resumen: es semi-humanamente posible replicar el rastreo de Googlebot en Discourse. Aquí te explico cómo empezar…
Conviértete en Googlebot
Abre una ventana de incógnito (siempre empieza de cero)
Abre DevTools
Abre Network Conditions en DevTools
Desmarca ‘Usar valores predeterminados del navegador’
En el menú desplegable, elige Googlebot Smartphone
Luego ve a https://meta.discourse.org (se ve muy diferente; no pasa nada porque eres Googlebot y a los bots no les importa)
Ve a Ver > Desarrollador > Ver código fuente
Cópialo y pégalo en algún archivo .html
¡Buen trabajo! Has creado el archivo que los humanos referencian para ver lo que Googlebot ha rastreado y almacenado en caché.
El trabajo de Googlebot ha terminado. Ahora es el momento de renderizar el archivo en caché en un navegador.
Conviértete en Chrome
Abre la terminal y ejecuta npx http-server
Navega hasta el archivo
Abre Chrome DevTools
En el panel Elementos, haz clic derecho en <html>... y selecciona Copiar outerHTML.
Ese es el contenido que se indexará, no se almacenará en caché, se indexará.
En resumen, Googlebot recupera el HTML y Chrome lo renderiza. El HTML renderizado es oro. Asegúrate de que tu valioso contenido y enlaces aparezcan allí.
El HTML en caché se renderiza en Chrome (sin cabeza). Cuando se renderiza, se puede introducir contenido y enlaces adicionales a través de JavaScript, en el DOM. Google tendrá en cuenta la información que renderiza para la indexación.
Así es como Googlebot obtiene contenido de aplicaciones con mucho JavaScript. Ve a Google y busca algo que sepas que renderiza contenido solo con JavaScript > haz clic en el icono de los 3 puntos > haz clic en el botón Caché > haz clic en Ver código fuente > cópialo y renderízalo en Chrome para ver qué contenido aparece en el DOM.
Nota: Actualiza cualquier ruta relativa (recursos CSS y JS) a rutas absolutas antes de renderizarla en Chrome ^^
Asegúrate de incluir la cadena de agente de usuario de Googlebot, por ejemplo, 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). El servidor puede enviar a Googlebot un HTML diferente.
Creo que es la misma salida, pero no está de más añadir el user agent. No estoy seguro de Chrome, pero en Firefox puedes hacer clic derecho en la solicitud en la pestaña de red y elegir “copiar como curl” para obtener un conjunto completo de encabezados que imitarán una solicitud del navegador.