Présentation

Google AMP Cache contient des copies en cache du contenu AMP valide publié sur le Web. Affichez des contenus directement à partir de Google AMP Cache pour offrir une expérience utilisateur fluide.

Pour bénéficier de la rapidité proposée par Google AMP Cache, il faut accéder directement à une URL AMP à partir du cache en utilisant le format URL propre à Google AMP Cache. Chaque fois qu'un utilisateur accède au contenu AMP à partir du cache, ce contenu est automatiquement mis à jour, et la version mise à jour est transmise à l'utilisateur suivant une fois ce contenu mis en cache.

Format d'URL de Google AMP Cache

Le format d'URL de Google AMP Cache comprend les composants suivants :

Élément Description
Nom du sous-domaine

Les sous-domaines créés par Google AMP Cache seront lisibles par l'utilisateur si les limites de caractères et les spécifications techniques le permettent, et seront similaires au domaine de l'éditeur. Dans la mesure du possible, Google AMP Cache crée chaque sous-domaine en effectuant les opérations suivantes :

  1. Conversion du domaine de document AMP d'IDN (Punycode) à UTF-8.
  2. Remplacement de chaque "-" (tiret) par "-" (2 tirets).
  3. Remplacement de chaque "." (point) par un "-" (tiret).
  4. Reconversion en IDN (Punycode).

Par exemple, pub.com sera mappé avec pub-com.cdn.ampproject.org. Si la création d'un sous-domaine lisible est impossible en raison de contraintes techniques, un hachage à sens unique sera utilisé.

Type de contenu Le type de contenu est l'un des suivants : "c" pour un document AMP HTML, "i" pour une image ou "r" pour une ressource, telle qu'une police. Google AMP Cache renvoie une erreur 404 pour les ressources qui ne correspondent pas à ces types de contenu (voir l'erreur de base).
"s" facultatif S'il est utilisé, cela oblige Google à charger le contenu depuis l'origine en utilisant le protocole TLS (HTTPS sécurisé). Si le "s" n'est pas utilisé, le contenu est chargé depuis l'origine selon le protocole HTTP standard.
URI URI du contenu à charger. L'URI ne doit pas contenir un schéma, c'est-à-dire qu'il ne peut pas être précédé de "http://" ni de "https://".

Trouver le nom du sous-domaine

Généralement, le nom de sous-domaine d'une URL Google AMP Cache est une conversion lisible par l'utilisateur de l'URL d'origine, effectuée conformément aux étapes décrites ci-dessus. Toutefois, dans certaines circonstances, il est possible que ce ne soit pas le cas. Pour extraire les URL Google AMP Cache dans les applications prêtes à l'emploi, utilisez l'API d'URL Google AMP Cache.

Pour les cas où les applications ne sont pas prêtes à l'emploi, si vous souhaitez déterminer le nom du sous-domaine généré par Google AMP Cache, essayez l'outil interactif sur l'utilisation de Google AMP Cache du site amp.dev.

Exemple de requête de document via le protocole TLS

Requête d'un document AMP HTML (avec le préfixe /c) extrait de https://example.com/amp_document.html :

https://example-com.cdn.ampproject.org/c/s/example.com/amp_document.html

Comme /s suit le préfixe /c, le document sera extrait de l'adresse example.com à l'aide du protocole TLS.

Exemple de requête d'image via le protocole HTTP ordinaire

Requête d'une image (avec le préfixe /i) extraite de http://example.com/logo.png :

https://example-com.cdn.ampproject.org/i/example.com/logo.png

En l'absence de /s après le préfixe /i, Google extrait l'image d'example.com via le protocole HTTP ordinaire et non via TLS.

Exemple de paramètre de requête

Le format d'URL de Google AMP Cache peut également inclure des paramètres dans sa chaîne de requête. Voici un exemple HTTPS avec des paramètres : https://example-com.cdn.ampproject.org/c/s/example.com/g?value=Hello%20World

Mises à jour de Google AMP Cache

Lorsqu'un utilisateur demande un document AMP à partir de Google AMP Cache, celui-ci lance automatiquement une requête visant les mises à jour afin de pouvoir transmettre un contenu à jour à l'utilisateur suivant une fois ce contenu mis en cache. Avec ce modèle, les mises à jour de documents AMP se propagent automatiquement et rapidement. Une fois cette mise à jour effectuée, la version précédente s'affichera pour un très petit nombre d'utilisateurs.

Le cache suit un modèle "stale-while-revalidate". Il utilise les en-têtes de mise en cache de l'origine, tels que Max-Age, en tant qu'indicateurs lui permettant de déterminer si un document ou une ressource sont obsolètes. Lorsque la requête d'un utilisateur porte sur un élément non actualisé, cette requête entraîne le chargement d'une nouvelle copie, ce qui permet à l'utilisateur suivant de recevoir un contenu mis à jour.

Pour limiter la charge imposée aux sites d'éditeurs, Google AMP Cache considère tout document comme étant à jour pendant un minimum de 15 secondes et toute ressource étant à jour pendant un minimum d'au moins 1 minute. Notez que ces chiffres peuvent changer dans le futur, car nous ajustons le cache pour un équilibre optimal entre mise à jour et charge imposée aux sites des éditeurs.

Optimisations et modifications du cache

Google AMP Cache effectue certaines optimisations et modifications :

  • Vérification que des contenus sont vraiment au format AMP et répondent à tous les critères de performance AMP.
  • Mise en cache des images et des polices parallèlement aux documents AMP.
  • Limitation des dimensions maximales des images afin d'éviter les problèmes de mémoire du navigateur et une mauvaise réactivité.
  • Diverses transformations pour améliorer l'efficacité d'affichage des images via la balise amp-img, comme :
    • Suppression de données invisibles ou difficiles à afficher, telles que certaines métadonnées.
    • Conversion d'images en formats d'image plus petits et adaptés aux mobiles, par exemple la conversion d'images GIF, PNG et JPEG au format WebP dans les navigateurs prenant en charge WebP.
    • Réduction de la qualité de l'image si la requête inclut l'en-tête Save-Data.
    • Génération de versions aux tailles multiples et ajout d'attributs srcset pour permettre l'affichage d'images s'adaptant aux besoins.
  • Transmission sur un canal sécurisé (HTTPS) et utilisation des derniers protocoles Web (SPDY, HTTP/2).
  • Nettoyage des documents AMP pour empêcher les attaques XSS basées sur des balises HTML mal fermées, des commentaires, etc.

Lors des transformations ci-dessus, Google AMP Cache ignore l’en-tête "Cache-Control: no-transform".

Nettoyage du code HTML

Google AMP Cache réécrit tous les documents pour en normaliser l'interprétation. Exemples :

  • Tous les commentaires HTML sont supprimés.
  • Les noms de balises et d'attributs sont passés en minuscules.
  • L'ajout de guillemets et de caractères d'échappement est effectué de façon systématique sur toutes les valeurs d'attribut.
  • Toutes les balises sont fermées, à l'exception des éléments HTML5 vides.
  • Les espaces dans les balises sont supprimés.
  • Le texte est échappé.
  • Les caractères de texte codés sont simplifiés à l'aide de caractères UTF-8. équivalents.
  • Les éléments censés être dans le body sont placés dans le body.
  • Les liens sortants sont transformés en liens absolus afin qu'ils continuent à fonctionner lorsque le document est affiché depuis Google AMP Cache et non depuis l'origine définie par l'éditeur.

Insérer des balises de préchargement

Google AMP Cache ajoute diverses balises indiquant une possibilité de préchargement aux navigateurs pour leur permettre d'anticiper le chargement de certaines ressources. Par exemple, <link href='https://fonts.googleapis.com/css?family=Lato' rel='stylesheet’> devient :

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link href="https://fonts.gstatic.com" rel="dns-prefetch preconnect">