Comment utiliser Lazy Load avec les images WordPress sans plugins (2021)

Utiliser Lazy Load images WordPress sans plugin et avec ACF
WordPress Lecture 5 minutes • 15 octobre 2021

Il n'y a rien de plus ennuyeux que des sites Web sans images ni vidéos. Mais bien que l'intégration de médias visuels dans les sites Web soit assez facile, l'ajout d'un grand nombre d'entre eux peut ralentir considérablement votre site.
Et vous allez voir, c'est là que le Lazy Loading de WordPress est un véritable atout.

Qu'est ce que le Lazy Loading dans WordPress ?

Lorsqu'un visiteur accède à un site Web, l'intégralité du contenu de la page est téléchargée, y compris tous les médias intégrés à cette page. S'il y a beaucoup de médias, ou que les fichiers sont très volumineux – c'est souvent le cas avec des vidéos ou des images haute résolution – la vitesse de chargement est sérieusement impactée. Nous avons tous visité des sites où nous étions frustrés d'attendre qu'une page se charge et avons abandonné notre visite.

Le lazy loading WordPress est une technique permettant d'optimiser la vitesse des pages contenant beaucoup d'images ou de vidéos. Il fonctionne en téléchargeant uniquement les médias qui doivent être immédiatement visibles dans l'écran de l'internaute. Le téléchargement de toute image ou vidéo actuellement « hors écran » est retardé jusqu'à ce que le visiteur défile plus bas sur la page.

Pourquoi utiliser Lazy Load sur les images de mon site WordPress ?

La vitesse de chargement des pages est de plus en plus importante. Lorsqu'ils naviguent sur le Web, les internautes sont beaucoup plus impatients qu'ils ne l'étaient il y a vingt ans et s'attendent maintenant à ce que le contenu se charge pratiquement instantanément. C'est d'autant plus vrai avec notre usage de plus en plus nomade grâce aux smartphones.

Les moteurs de recherche tels que Google et Bing prennent désormais en compte la vitesse des pages pour déterminer le classement des pages. Donc, en théorie, s'il existe deux sites Web avec un contenu identique, mais que l'un a été optimisé pour la vitesse, celui-ci se classera naturellement plus haut dans les recherches que celui non optimisé.

Je vous conseille de ne pas utiliser le Lazy Load sur les images qui sont d’emblée présentes lors de l'affichage de l'écran (sans scroll). Privilégiez l'application de ce dernier sur les images hors champs, que l'internaute verra en faisant défilé la page. Par contre, veillez toujours à optimiser le poids de vos images, surtout celles qui s'affichent en haut de l'écran de l'internaute.

Comment utiliser Lazy Load sur mes images WordPress ?

Depuis WordPress 5.5 (sorti à l'été 2020) il ajoute par défaut l'attribut nécessaire au déclenchement du Lazy Load sur les images présentes dans les cas suivants :

  • images dans l'éditeur / post content (the_content)
  • images dans les résumés / post excerpts (the_excerpt)
  • images dans les Widgets de texte / text widgets (widget_text_content)
  • images d'avatar / avatar images (get_avatar)
  • images appelées dans vos templates avec la fonction wp_get_attachment_image() (wp_get_attachment_image)

Retrouvez tous les détails à ce sujet directement sur le site des développeurs de WordPress

Et si j'utilise ACF et que je veux utiliser Lazy Load sur ces images ?

Dans le cas ou vous avez développé un thème WordPress et que vous utilisez l'excellente extension Advanced Custom Fields vous avez certainement envie de pouvoir utiliser aussi le Lazy Load sur les images affichées par les champs ACF.

Effectivement, dans ce cas WordPress n'ajoute pas par défaut son attribut Lazy Load aux images ACF.

La solution est alors d'utiliser l'attribut HTML5 loading="lazy" en l'ajoutant manuellement dans vos balises <img>

<img src="<?php the_field('image');?>" loading="lazy"/>

Compatibilité du Lazy Load natif des navigateurs web

Au moment ou j'écris cet article, l'attribut d'image loading="lazy" est de plus en plus interprêté nativement par les navigateurs modernes. Comme en témoigne les données suivantes provenant de Can I Use

Compatibilité des navigateurs modernes avec Lazy Load
Compatibilité des navigateurs modernes avec Lazy Load

Comme on le remarque, Chrome et Edge l'intègre bien nativement. Pour les utilisateurs de Safari, c'est une option activable manuellement dans les paramètres du navigateur. Pour Firefox, c'est en très bonne voie.

Et si je veux désactiver le Lazy Load natif de WordPress

Je ne le recommande pas, sauf si vous utilisez une extension WordPress qui gère le Lazy Load, mais vous pouvez tout à fait désactiver simplement cette fonction native de WordPress en ajoutant la fonction suivante dans le fichier functions.php de votre thème :

add_filter('wp_lazy_loading_enabled', '__return_false');

et puisqu'on parle d'extensions (même si je devais pas en parler), en voici 5 qui pourraient vous intéresser si vous souhaitez gérer plus spécifiquement tout ça sans toucher au code de votre site WordPress :


Si cet article vous a aidé, lâchez votre plus bel applaudissement en remerciement ! 🤗