Diffusion dynamique

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

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" figure dans la réponse du serveur à une requête, comme indiqué ci-dessous :

GET /page-1 HTTP/1.1
Host: www.example.com
(...rest of HTTP request headers...)

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. Si vous détectez le user-agent des navigateurs qui accèdent à votre site, assurez-vous que votre système de détection recherche bien les chaînes propres aux smartphones, à l'aide de la combinaison de mots "Android" et "Mobile", par exemple, et non "Android" seul. Apprenez-en plus en consultant 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. Par exemple, Googlebot pour smartphone se présente comme un iPhone. La réponse envoyée doit donc être identique à celle reçue par un utilisateur d'iPhone : redirection, contenu optimisé, etc.