Estoy usando prerender.io para servir la versión “application/JS” del sitio a los rastreadores (mi instancia sirve a los rastreadores la versión JS a través de una configuración oculta).
Funciona bien, pero parece que Discourse podría caer bajo esta categoría…
pero algunas páginas web utilizan flujos de carga personalizados o sondeos constantes que pueden engañar a la lógica de Prerender; por lo tanto, no logra tomar una decisión sobre si la página está lista.
La primera vez que prerender accede a cualquier URL de Discourse, se agotará el tiempo de espera (20 segundos establecidos por prerender).
La página se renderiza bien, es solo que prerender.io no sabe que la página está completamente cargada, por lo que “permanece” intentando renderizar la página, hasta que se acaban los 20 segundos, y luego sirve la versión HTML.
Si el rastreador solicita la página nuevamente, servirá la página en 1 segundo (más o menos), ya que hay una versión HTML de la URL en la caché.
…pero eso no es práctico ya que hay miles de URL y 20 segundos para cada URL (la primera vez que se accede) no funcionará.
Así que necesitaré que se agregue lo siguiente justo después de la etiqueta <head> (y cuando la página esté lista, que la variable se establezca en true):
<script> window.prerenderReady = false; </script>
Me gustaría que esto funcionara en todo el sitio, ¡ojalá eso facilite el trabajo!
No estoy seguro de lo que esto implica, pero si me equivoco, por favor házmelo saber. ¿$300? ¿$400?