Évitez document.write()
Attention ! Il s'agit d'un document de niveau développeur. Vous devez en être un ou en embaucher un pour mettre en œuvre cette optimisation. Elle peut nécessiter des changements de code dans votre thème ou un plugin.
Qu'est-ce que document.write() ?
document.write() est une fonction JavaScript qui insère du HTML dans la page quel que soit l'endroit où il est exécuté.
Comment document.write influe-t-il sur les performances ?
Chaque fois que la fonction document.write() est exécutée, le navigateur bloque le rendu jusqu'à ce que document.write() termine le travail et que le HTML inséré avec lui soit analysé. Normalement, cette fonction JavaScript est utilisée pour ajouter des actifs comme JavaScript, par exemple :
document.write('<script src="https://mysuperadplugin.com/ad-inject.js"></script>');
Dans cet exemple, la fonction bloque le rendu de la page jusqu'à ce que la balise de script injectée soit analysée et que la source soit téléchargée.
Plus le code JavaScript est ajouté au site, plus l'impact sur votre site sera important. S'il est utilisé plusieurs fois, il peut ajouter plusieurs secondes précieuses au chargement de la page.
Si document.write() n'est utilisé qu'une seule fois dans le code du site, normalement il n'y aura pas un grand impact mais Google Page Insights continuera de se plaindre à ce sujet.
Dans tous les cas, il est conseillé d'éviter de l'utiliser pour se conformer à Google Page Insights.
Vous pouvez savoir si votre site a une exécution document.write() de plusieurs manières.
Console navigateur - Chrome
Dans Google PageSpeed / Lighthouse: Avoid document.write()
Que puis-je faire pour éviter document.write() sur ma page ?
Cette fonction est normalement ajoutée par un plugin ou votre thème. Dans ces cas, la seule chose que vous pouvez faire est soit de demander aux développeurs originaux du plugin / thème de corriger cela dans le code, soit d'installer une alternative qui utilise une approche différente pour ajouter du code au HTML. Ceci est lié à la façon dont le code est écrit, donc WP Rocket ne peut pas corriger cela, mais son développeur le peut.
Tuyau : Les plugins publicitaires sont les plus courants qui ajoutent des fichiers JavaScript à l'aide de document.write()
Comment WP Rocket gère-t-il le document.write ?
WP Rocket exclut les scripts en ligne document.write() de toutes nos optimisations JavaScript pour éviter les problèmes. Si cela est reporté par exemple, il peut remplacer tout le contenu du HTML résultant parce que document.write() doit être exécuté au moment du chargement de la page, dans le cas où il est exécuté après le chargement de la page, il remplacera tout le document HTML (La page entière).
Exemple :