Préchargement du lien


Le préchargement de lien (en anglais link prefetching) est une méthode de préchargement de ressources dans le cache du navigateur (client). L'hypothèse de base est que si un utilisateur visite un site, il souhaitera peut-être récupérer d'autres ressources de ce site. Le chargement de ces ressources peut être accéléré via le site web qui peut fournir au navigateur des conseils de préchargement. Cela se fait au moyen des informations contenues dans le code source du site web. L'attribut rel est répertorié avec la valeur "prefetch" dans l'en-tête ou dans un lien dans le “body” du site. Le préchargement de lien est particulièrement utile si le propriétaire du site est relativement sûr que certaines ressources seront ensuite récupérées par l'utilisateur du site. Il faut pour cela enregistrer et évaluer le comportement des utilisateurs. On appelle aussi le préchargement de lien le prerendering.

Informations générales

Lorsqu'un utilisateur visite un site web, le client et le serveur communiquent en arrière-plan pour charger le contenu le plus rapidement possible. Une fois que le site est complètement chargé, le navigateur est inactif. Il communique uniquement avec le serveur lorsque l'utilisateur interagit avec des clics ou des commandes de clavier. Le préchargement de lien est exécuté pendant cette période. Si les ressources ont été marquées avec la valeur prefetch, le navigateur les chargera dans le cache. Des images, des fichiers CSS ou des pages web paginées peuvent être chargées pour permettre une récupération plus rapide par le client.

Le concept original du préchargement de lien a été initié par Mozilla. Il a été proposé comme recommandation pour HTML5 au W3C et est partiellement mis en œuvre. Une approche similaire, mais légèrement modifiée, est prise en charge par le navigateur Google Chrome. Le terme utilisé ici est Prerendering. Internet Explorer utilise le préchargement DNS, le prerendering et le lazy-loading pour optimiser les performances. Le navigateur Safari d'Apple n'utilise apparemment aucun mécanisme de préchargement.

Comment ça marche

Selon le navigateur, il existe différents mécanismes permettant le préchargement de ressources. La notion de préchargement des données est cependant similaire.

  • Préchargement du lien : dans le préchargement du lien, les ressources sont marquées avec la valeur de préfetch et l'attribut rel, c'est-à-dire rel ="prefetch". Seuls les éléments marqués à l'aide de cette paire attribut-valeur peuvent être chargés. Dans la plupart des cas, ce sont des liens vers d'autres pages web, des images ou des fichiers CSS. Il convient de noter que seule la ressource référencée est chargée, et non les fichiers associés à cette ressource. Aucun script, fichier CSS ou cadre n'est chargé. Ce type de préchargement a été utilisée à partir de 2003 uniquement par Mozilla Firefox. Depuis lors, tous les navigateurs majeurs prennent en charge le préchargement du lien.
  • Préchargement du DNS : le préchargement de noms de domaine est possible avec la commande rel="dns-prefetch"Le préchargement DNS traduit un serveur DNS en caractères lisibles par ordinateur (adresses IP) pour utiliser efficacement le temps d'inactivité du navigateur. La résolution DNS n'est donc plus nécessaire lors du chargement du site.
  • Prerendering : le prerendering est beaucoup plus complet que le préchargement. Toutes les ressources référencées avec la commande rel ="prerender" sont chargées dans le cache. Cela comprend le CSS, le JavaScript et même le DOM. Le prerendering est similaire au chargement d'un site web dans un onglet caché du navigateur. La ressource complète est ainsi chargée. Cela n'est utile que si le propriétaire du site est à 100% sûr que l'utilisateur visitera ce site.
  • Lazy load : Internet Explorer peut charger des images à l'avance qui ont été marquées avec la balise lazy load. Cela se fait généralement dans la balise img derrière la source, qui est spécifiée avec la balise src: <img src =" image.jpg "lazyload>.
  • Sous-ressources : les navigateurs Chrome et Opera offrent une solution de préchargement qui donne la priorité à certaines ressources. Une ressource qui doit toujours être chargée par le client peut être spécifiée dans l'en-tête d'un document HTML avec la commande rel =" subresource". Ce peut être des fichiers CSS, des polices ou des scripts qui sont dans tous les cas nécessaires. La différence avec le préchargement de lien est que ces ressources sont chargées même si le navigateur n'est pas en veille.

Inconvénients du préchargement du lien

Le préchargement du lien améliore les performances des sites web dans la une mesure de millisecondes. Mais il présente aussi certains inconvénients:

  • Le préchargement du lien peut affecter votre bande passante Internet si d'autres applications l'utilisent également. Si vous êtes facturé en fonction du volume de données, votre coût peut augmenter sans avoir opté pour le téléchargement de ces données.
  • Étant donné que la préfiguration de lien est implémentée par défaut dans les navigateurs, la procédure enfreint des aspects tels que la transparence et l'autodétermination de l'information. Il n’existe en effet aucune option facile d’utilisation de désactivation du préchargement, du moins pas dans l'interface du navigateur Mozilla classique. En outre, les cookies des sites préchargés peuvent être stockés dans le cache du navigateur, sans que l'utilisateur l'ait expressément convenu. Cela permet un suivi ultérieur.
  • Le préchargement peut provoquer une déformation des statistiques. Si les instructions de préchargement ne sont pas capturées par le programme analytique ou que les fichiers journaux ne sont pas nettoyés, le serveur ou le programme d'analyse compte chaque accès virtuel en tant que visiteur.
  • Un trop grand nombre d'instructions de préchargement peuvent nuire au serveur auquel on accède.
  • Des lacunes quant à la sécurité peuvent apparaître, car les instructions de préchargement se réfèrent souvent aux fournisseurs externes. Cela signifie que d'autres sites web qui ont été récupérés peuvent avoir été exploités dans le cadre d’attaques DDoS.
  • Les opérateurs de sites Web devraient examiner individuellement quelles ressources seraient utiles au préchargement et quelle performance ils en tireraient en termes de millisecondes.

Comment désactiver le préchargement

Côté du serveur, le préchargement peut être évité en vérifiant la requête dans l'en-tête de la chaîne: "X-moz prefetch". Côté client, vous saisissez "about: config" dans la barre d'adresse de Firefox et modifiez les paramètres à cet endroit.

Les préférences peuvent également être modifiées dans le profil utilisateur. Vous pouvez ajouter la ligne "user_pref (" network.prefetch-next ", false);" Dans le fichier prefs.js., Mozilla suppose qu'avec des dysfonctionnements du préfetcher, l'implémentation ne fonctionne pas correctement. Par conséquent, il n'est pas possible de désactiver le préchargement de manière simple dans l'interface utilisateur pour les utilisateurs moins ambitieux. Dans le navigateur Google Chrome, le prerendering peut être désactivé dans Paramètres avancés.

Importance pour l’optimisation du référencement

L'impact du préchargement des liens est limité à la vitesse de la page, car les commandes de préfetch ne sont généralement pas interprétées par les moteurs de recherche comme des directives. Le temps de chargement d'un site web est certes un signal de classement indirect, mais il peut également être réduit par d'autres astuces et stratégies (comme la vitesse de la page). La façon dont le préchargement affecte le temps de chargement d'un site web dépend de plusieurs facteurs, par exemple des ressources référencées et de la taille des données. Le nombre d’indications de préchargement sur un site web risque en outre de l'affecter. Dans tous les cas, il est recommandé d'utiliser un préchargement DNS acceptable, car seules les adresses DNS seront déterminées en adresses IP. On peut supposer que le moteur de recherche Google utilise un type de préchargement DNS pour fournir les SERP plus rapidement. L'utilisation du préchargement des liens ne doit être envisagée que dans les cas individuels où ce serait réellement avantageux pour les utilisateurs.

Liens web