Diffusion dynamique

La diffusion dynamique est une configuration dans laquelle le serveur diffuse un code HTML et CSS différent sur la même URL en fonction du user-agent qui demande d'accéder à la page (mobile, tablette ou ordinateur).

Dans cette configuration, les user-agents ne peuvent pas savoir au premier abord que le site adapte le code HTML à leur intention (le contenu pour mobile étant "masqué" lors de l'exploration d'un user-agent pour ordinateur). Nous vous recommandons de configurer le serveur de sorte qu'il envoie une indication à Googlebot pour smartphone afin que ce dernier puisse également explorer la page et détecter le contenu pour mobile. Cette indication prend la forme d'un en-tête HTTP "Vary".

La diffusion dynamique affiche des codes distincts pour chaque appareil, mais sur la même URL.

TL;DR

  • Utilisez l'en-tête HTTP "Vary" pour signaler vos modifications en fonction du user-agent.
  • Détectez correctement les chaînes du user-agent.

En-tête HTTP "Vary"

L'en-tête HTTP "Vary" joue deux rôles essentiels :

  • Il indique aux serveurs de mise en cache, utilisés entre autres par les FAI, de prendre en compte le user-agent lorsqu'ils décident d'afficher la page à partir du cache ou non. Sans en-tête HTTP "Vary", le cache de la page HTML pour ordinateur peut s'afficher par erreur sur un mobile, ou inversement.
  • Il permet à Googlebot de détecter plus rapidement le contenu optimisé pour les mobiles, puisqu'un en-tête HTTP "Vary" valide est l'un des indicateurs que nous utilisons pour explorer les URL qui affichent ce type de contenu.

L'en-tête HTTP Vary fait partie de la réponse du serveur à une demande, comme dans l'exemple ci-dessous :

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710
(... rest of HTTP response headers...)

L'en-tête "Vary" indique au navigateur que le contenu de la réponse varie en fonction du user-agent qui demande d'accéder à la page. Si votre serveur utilise déjà l'en-tête HTTP "Vary", vous pouvez ajouter User-Agent à la liste déjà diffusée.

Détecter correctement les user-agents

La technique de détection des user-agents (parfois appelée "reniflage") est souvent sujette à erreur. Les causes de ces échecs sont multiples, mais trois types d'erreurs reviennent fréquemment :

  1. La détection des user-agents repose sur l'existence d'une liste de chaînes ou de sous-chaînes de user-agents. Cette liste demande une maintenance et une mise à jour constantes, et ne permet pas de détecter les nouveaux user-agents. Dans les faits, ce type de liste est rarement mis à jour et devient vite obsolète, ce qui nuit à l'expérience utilisateur.
  2. Lors de la mise en correspondance des user-agents, il est fréquent qu'un user-agent pour ordinateur soit pris pour un user-agent mobile, et inversement. De même, il arrive souvent que les sites confondent les tablettes avec les smartphones. Assurez-vous que le système de détection des user-agents présents dans les navigateurs qui accèdent à votre site recherche bien les chaînes spécifiques aux smartphones (en recherchant les mots "Android" et "Mobile" simultanément, par exemple) et non les chaînes génériques pour appareils mobiles (le mot "Android" seul). Pour en savoir plus, consultez notre article de blog.

  3. Faites attention aux techniques de dissimulation (cloaking) lors de la détection des user-agents. Lors de cette opération, le site identifie la classe ou le type d'appareil en recherchant son nom dans la chaîne du user-agent. Il ne doit pas rechercher Googlebot de manière spécifique. Tous les user-agents Googlebot sont considérés comme des appareils mobiles spécifiques. Vous devez traiter ces user-agents Googlebot de la même manière que ces appareils.

    Le préaffichage de contenu pour les robots d'exploration comme Googlebot n'est pas considéré comme une technique de dissimulation (cloaking) lorsqu'il est configuré correctement.