Optimiser les vidéos pour la performance web
Conteneurs, codecs, poster, preload et chargement différé : optimisez vos vidéos pour alléger vos pages et améliorer vos Core Web Vitals.
La vidéo est l’un des médias les plus consommateurs de bande passante du Web. Mal diffusée, elle alourdit les pages, retarde l’affichage et dégrade l’expérience. Bien optimisée, elle reste fluide sans compromettre la vitesse du site. Pour y parvenir, il faut d’abord comprendre comment fonctionne l’élément video et comment le navigateur télécharge ses ressources.
Pour le SEO, l’enjeu est double : réduire le poids des fichiers améliore le Largest Contentful Paint, et éviter les téléchargements superflus préserve la réactivité, donc l’INP. Maîtriser quelques attributs HTML suffit à transformer une vidéo coûteuse en média performant.
La vidéo est l’un des médias les plus gourmands du web, et mal diffusée elle ruine le LCP comme la réactivité. Pourtant, quelques attributs HTML bien posés suffisent souvent à reprendre le contrôle du téléchargement et à éviter de charger ce que l’utilisateur ne regardera jamais. Avant de penser optimisation avancée, comprenez comment le navigateur récupère les ressources de l’élément video.
Conteneurs et codecs
Le fichier que vous reconnaissez sur votre système (mp4, webm) est un conteneur. Il renferme un ou plusieurs flux, généralement un flux vidéo et un flux audio, chacun compressé par un codec. Un fichier webm peut ainsi contenir un flux vidéo en VP9 et un flux audio en Vorbis.
Comprendre cette distinction est essentiel, car elle permet de compresser fortement vos médias et de réduire la bande passante consommée. Avec un outil comme FFmpeg, une commande de base convertit déjà un fichier source en webm plus léger compatible avec tous les navigateurs modernes. Lorsque la vidéo remplace un GIF, pensez à supprimer la piste audio avec l’option -an : même silencieuse, elle pèse inutilement dans le fichier.
Servir plusieurs formats
Indiquer plusieurs formats sert de solution de repli pour les navigateurs qui ne prennent pas en charge les formats les plus récents. Tous les navigateurs modernes étant compatibles avec le codec H.264, le MP4 fait un excellent repli, tandis que le WebM peut s’appuyer sur l’AV1 récent ou le VP9, mieux supporté.
L’ordre des éléments source détermine la priorité du navigateur : il retient la première source compatible. Placez donc toujours le format le plus efficace en premier, sous peine de servir un format moins optimisé que ce que l’appareil pourrait afficher.
<video poster="poster.jpg">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
</video>
Contrôler le téléchargement avec les attributs
Plusieurs attributs de l’élément video déterminent ce que le navigateur télécharge et quand. Bien combinés, ils évitent de charger une vidéo que l’utilisateur ne lancera peut-être jamais ; à l’inverse, pour les médias à lancer sans délai, voyez comment précharger l’audio et la vidéo. Le tableau suivant en résume le rôle.
| Attribut | Rôle | Bonne pratique |
|---|---|---|
poster |
Affiche une image avant la lecture |
À utiliser pour donner le contexte et servir de candidat LCP |
autoplay |
Lance la lecture immédiatement |
Réservé aux arrière-plans et remplacements de GIF, avec muted, loop et playsinline |
preload= »none » |
N’effectue aucun préchargement |
Idéal pour les vidéos lancées par l’utilisateur |
preload= »metadata » |
Ne récupère que les métadonnées |
Utile pour connaître la durée sans charger la vidéo |
loading= »lazy » |
Diffère poster et métadonnées hors écran |
Nouveauté récente, à activer sur les vidéos non visibles |
Lecture automatique et lecture déclenchée
Une vidéo dotée de l’attribut autoplay commence à se télécharger immédiatement, même hors écran. Pour les arrière-plans ou les remplacements de GIF, combinez autoplay avec muted, loop et playsinline. Pour ne charger ces vidéos que lorsqu’elles entrent dans le viewport, associez une image poster à l’API Intersection Observer, une technique détaillée dans notre tutoriel pour différer les vidéos.
À l’inverse, lorsque l’utilisateur doit lancer la lecture lui-même, le navigateur télécharge la vidéo dès qu’il rencontre l’élément. L’attribut preload= »none » évite ce comportement. Vous pouvez alors préchauffer l’expérience en passant à preload= »metadata » au survol, et améliorer le rendu avec une image poster. Si cette image est l’élément LCP, préchargez-la avec rel=preload et fetchpriority= »high ».
<link rel="preload" as="image" href="poster.jpg" fetchpriority="high">
Les éléments video avec autoplay commencent à se télécharger immédiatement, y compris en dehors de la fenêtre d’affichage initiale. N’activez autoplay que si c’est réellement nécessaire, et pensez à muted pour respecter les règles de lecture automatique des navigateurs. Pour les vidéos lourdes hors écran, préférez le chargement différé via Intersection Observer ou loading=lazy.
À faire
- compresser avec un codec adapté
- supprimer l’audio des vidéos de type GIF
- placer le format le plus efficace en premier
- utiliser poster et preload= »none » pour les vidéos déclenchées par l’utilisateur
À éviter
- lancer une vidéo en autoplay avec du son
- laisser preload charger toute la vidéo par défaut
- oublier la solution de repli MP4
- précharger une image poster qui n’est pas l’élément LCP
Points clés à retenir
- Compressez vos vidéos et choisissez le bon couple conteneur/codec
- Servez plusieurs formats, le plus efficace en premier
- Utilisez poster pour le contexte et le candidat LCP
- Réglez preload="none" pour les vidéos lancées par l'utilisateur
- Activez loading=lazy ou Intersection Observer pour le hors écran
Une vidéo bien optimisée allège la page sans sacrifier la qualité.
Quiz : testez vos connaissances
Quiz : testez vos connaissances
-
Quelle est la différence entre un conteneur et un codec ?
- Conteneur et codec désignent exactement la même chose
- Le codec est le fichier visible et le conteneur compresse les données
- Le conteneur (mp4, webm) regroupe les flux, tandis que le codec (H.264, VP9, AV1) compresse chaque flux
Le conteneur (
mp4,webm) est le fichier qui regroupe les flux. Le codec (H.264, VP9, AV1) compresse chaque flux et détermine surtout la taille du fichier. -
Pourquoi servir plusieurs formats vidéo, dont le MP4 ?
- Servir plusieurs formats est purement décoratif et sans effet sur la compatibilité
- Le MP4 (H.264) est compatible avec tous les navigateurs modernes et fait un excellent repli
- Le MP4 est le format le plus léger et doit toujours être placé en premier
Indiquer plusieurs formats sert de repli pour les navigateurs incompatibles avec les formats récents. Tous prenant en charge le H.264, le MP4 fait un excellent repli.
-
Quel est l'effet de l'attribut autoplay sur le téléchargement d'une vidéo ?
- La vidéo commence à se télécharger immédiatement, même en dehors de la fenêtre d'affichage
- La vidéo ne se télécharge que lorsque l'utilisateur la fait défiler à l'écran
- L'attribut autoplay n'a aucun effet sur le téléchargement, seulement sur le son
Une vidéo dotée de
autoplaycommence à se télécharger immédiatement, y compris hors écran. Pour ne la charger qu’à l’entrée dans le viewport, on l’associe à un Intersection Observer.
Besoin d'un accompagnement SEO ?
Vos vidéos ralentissent vos pages et dégradent vos Core Web Vitals ?