Google Pagespeed me dit de tirer parti de la mise en cache du navigateur lorsque la mise en cache est déjà activée


8

Google Pagespeed Insights me dit toujours que je dois activer la mise en cache du navigateur, mais je ne comprends pas ce qui me manque. J'utilise cloudflare avec les optimisations activées. Je vois cet en-tête HTTP dans les outils de développement Chrome:

cache-control: public, max-age = 86400

donc la mise en cache semble déjà activée! J'ai aussi ajouté

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>

dans mon fichier web.config.

Je ne sais pas quoi faire d'autre. Voici l'erreur que Google me donne:

entrez la description de l'image ici


2
Vous devez faire environ 8 jours pour l'expiration afin de passer cette règle.
dhaupin

Réponses:


6

24 heures est trop peu pour suffire comme contrôle du cache :) En théorie, les images ne changent jamais sans que leur nom ne change également, vous pouvez donc définir cela facilement sur un an (ou un mois si vous vous sentez plus à l'aise avec cela).

Si vous remplacez une image par une nouvelle image, elle a un nouveau nom. picture-of-cat-on-18th-birthday.jpgne sera pas soudainement une autre image avec le même nom de fichier. Pour cette raison, les noms de fichiers doivent être quelque peu spécifiques à leur contenu.

Pour d'autres types de ressources comme CSS et JS, vous pouvez opter pour une tactique différente. Vous avez (souvent) changé des fichiers, et jamais / à peine changé, vous voulez diviser leur longueur de mise en cache:

  • ne change jamais -> cache très long
  • modification -> cache faible

Ce n'est pas faisable. Vous pouvez les faire tous les deux ou aucun, .htaccess voit un type de fichier.
Pour cette raison, vous le définissez sur le cache long et utilisez un suffixe pour forcer un nouveau téléchargement s'il change:

<script src="static.js" />  
<script src="changing.js?last_update=150422" />

De cette façon, l'utilisateur n'a à le télécharger à nouveau que si vous avez réellement effectué une modification.
Cette technique fonctionne sur toutes les ressources. Visez toujours la durée de mise en cache la plus élevée.


Merci! résolu le problème. ouais c'était trop court, tout a mis à 8 jours donc ça ne me donnera plus le message. le problème c'est les widgets! des choses comme purechat et kudobuzz, plugin facebook et google +. ils ralentissent mon site et ne
mettent

connect.facebook.net/en_US/all.js (20 minutes) connect.facebook.net/it_IT/sdk.js (20 minutes) apis.google.com/js/api.js (30 minutes) oauth.googleusercontent.com … E: rpc: shindig.random: shindig.sha1.js? C = 2 (60 minutes) google-analytics.com/analytics.js (2 heures)
euge9522

Vous pouvez définir un énorme cache sur les fichiers CSS et JS tant que vous interrogez la chaîne d'horodatage du src ... avec laquelle vous pouvez faire dynamiquement filemtime(). Ensuite, si le fichier est modifié, un nouvel uri sera créé, forçant la réacquisition de l'actif sans effacer les caches et les choses. Peut faire la même chose avec des images ou autre chose. Et je pense que Google aime le temps de cache de quelque chose comme 8 jours minimum pour passer la vitesse de page.
dhaupin

4

Je vois que la réponse précédente dit que 24 heures ne suffisent pas. Mais en regardant dans le document Google: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#defining-optimal-cache-control-policy, il indique que les images doivent être mises en cache pour 1 jour pour une mise en cache optimale.

La mise en cache des images pendant une courte période est logique, car pour améliorer le référencement, il est préférable de ne pas prendre d'empreintes digitales les images. C'est donc un bon compromis si vous voulez changer l'image.

De plus, après 24 heures, les images seront à nouveau chargées (lorsque vous définissez le contrôle du cache sur 1 jour), il utilisera ensuite la balise électronique et comparera les images en effectuant un aller-retour et une remise en cache du serveur.

Donc, la question reste de savoir pourquoi l'outil de perspicacité Pagespeed ne respecte pas la propre recommandation de Google.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.