J’utilise prerender.io pour servir la version « application/JS » du site aux robots d’exploration (mon instance sert aux robots la version JS via un paramètre caché).
Cela fonctionne bien, mais il semble que Discourse puisse entrer dans cette catégorie…
mais certaines pages Web utilisent des flux de chargement personnalisés ou des requêtes constantes qui peuvent tromper la logique de Prerender ; ainsi, il ne parvient pas à prendre une décision sur la préparation de la page.
La première fois que prerender accède à une URL de Discourse, il expire (20 secondes définies par prerender).
La page se rend bien, c’est juste que prerender.io ne sait pas que la page est entièrement chargée, donc il « reste » à essayer de rendre la page, jusqu’à ce que les 20 secondes soient écoulées, puis il sert la version HTML.
Si le robot demande à nouveau la page, il la servira en 1 seconde (environ), car il existe une version HTML de l’URL dans le cache.
… mais ce n’est pas pratique car il y a des milliers d’URL et 20 secondes pour chaque URL (lorsqu’elle est accédée pour la première fois) ne fonctionneront pas.
J’aimerais donc que ce qui suit soit ajouté juste après la balise <head> (et lorsque la page est terminée, que la variable soit définie sur true).
<script> window.prerenderReady = false; </script>
J’aimerais que cela fonctionne sur l’ensemble du site, j’espère que cela facilitera le travail.
Je ne suis pas sûr de ce que cela implique, mais si je me trompe, faites-le moi savoir - 300 ? 400 ?