Permettez-moi d'abord de mentionner que j'ai fait quelques recherches, mais je n'arrive pas à trouver une bonne réponse à ce que je vais chercher.
Je travaille sur un site où j'utilise quelques ressources externes:
Je reçois une note "F" sur "Utiliser un réseau de distribution de contenu (CDN)". Un autre SO Post liens vers le YSlow FAQ ( lien direct ) mais cela semble indiquer que je dois définir mes CDN sur mon navigateur, ce qui semble être une solution rapide pour moi, mais cela ne résout pas le problème sur d'autres navigateurs et/ou appareils.
En ce qui concerne la note "Ajouter des en-têtes Expires", je reçois un E. Le problème est que c'est ce que je reçois:
There are 3 static components without a far-future expiration date.
(2014/2/26) http://fonts.googleapis.com/css?...
(2014/2/26) http://www.google-analytics.com/analytics.js
(2014/2/26) http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
Comment pourrais-je y remédier? Mes fichiers locaux sont tous pris en charge par mon .htaccess
comme indiqué, ici:
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/ico "access plus 1 year"
ExpiresDefault "access plus 7 days"
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
# access plus 1 year
Header set Cache-Control "max-age=31536000"
</FilesMatch>
Cette SO post semble suggérer que c'est soit impossible, soit j'appelle un script local où j'utilise ma bande passante pour charger (et mettre en cache) les fichiers externes requis.
Donc, avec ces choses à l'esprit, voici ce que je regarde:
about:config
solution proposée par le site officiel YSlow.Réponse courte:
Vous ne pouvez pas contrôler beaucoup lorsque vous chargez des ressources à partir de serveurs externes comme celui-ci, mais cela peut toujours convenir à votre site. Lorsque vous utilisez un outil comme YSlow, il est important de ne pas vous laisser entraîner dans une note "A" pour tout. Il est préférable de comprendre les indices que l'outil vous donne et de prendre des décisions en conséquence.
Des réponses plus longues:
Réseau de diffusion de contenu
YSlow signalera des notes inférieures pour tous les domaines qu'il ne reconnaît pas comme CDN. Vous pouvez ajouter des noms d'hôtes CDN , alors cela reflètera une meilleure note. J'ajouterais fonts.googleapis.com
Et ajax.googleapis.com
Car les deux se comportent comme des CDN. Considérez-le comme la sauvegarde d'une préférence dans votre copie de YSlow. L'ajout de domaines ici ne change pas réellement vos performances, il améliore simplement votre score.
Expire les en-têtes
Vous ne pouvez pas contrôler les en-têtes expirés pour le contenu que vous chargez à partir d'un autre site. Options que vous pourriez envisager:
.htaccess
. Cela vous donnerait une meilleure note YSlow, mais les performances réelles peuvent être pires si votre serveur est plus lent que les CDN. (voir ceci question SO )