Voici Yslow (on admire le jeu de mot), une extension Firefox proposée par Yahoo developer network qui analyse la page courante pour vous dire comment accélérer votre site.
Par exemple, sur la page d’accueil de ce blog qu’il note C(79), Yslow recommande aimablement ceci (en donnant à la page une note sur chacun des points) :
-
Response Headers
Date: Thu, 19 Jul 2007 12:45:37 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:29:53 GMT Etag: “28a1d5a-2358-45e4a2d1” Accept-Ranges: bytes Content-Length: 9048 Content-Type: text/css Age: 15411 X-Cache: HIT from www.proxy.enst.fr Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:26:24 GMT Etag: “28a1d4f-22c-45e4a200” Accept-Ranges: bytes Content-Length: 556 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:26:24 GMT Etag: “28a1d50-413-45e4a200” Accept-Ranges: bytes Content-Length: 1043 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Sat, 06 Jan 2007 20:01:17 GMT Etag: “28a1d4d-5508-45a0000d” Accept-Ranges: bytes Content-Length: 21768 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:26:24 GMT Etag: “28a1d52-98b-45e4a200” Accept-Ranges: bytes Content-Length: 2443 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Sat, 10 Feb 2007 23:03:11 GMT Etag: “2457985-4bc2-45ce4f2f” Accept-Ranges: bytes Content-Length: 19394 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:37 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:29:53 GMT Etag: “28a1d5a-2358-45e4a2d1” Accept-Ranges: bytes Content-Length: 9048 Content-Type: text/css Age: 15411 X-Cache: HIT from www.proxy.enst.fr Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Sat, 10 Feb 2007 23:03:11 GMT Etag: “2457985-4bc2-45ce4f2f” Accept-Ranges: bytes Content-Length: 19394 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:26:24 GMT Etag: “28a1d4f-22c-45e4a200” Accept-Ranges: bytes Content-Length: 556 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:26:24 GMT Etag: “28a1d50-413-45e4a200” Accept-Ranges: bytes Content-Length: 1043 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Sat, 06 Jan 2007 20:01:17 GMT Etag: “28a1d4d-5508-45a0000d” Accept-Ranges: bytes Content-Length: 21768 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:38 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:26:24 GMT Etag: “28a1d52-98b-45e4a200” Accept-Ranges: bytes Content-Length: 2443 Content-Type: image/jpeg Age: 15566 X-Cache: HIT from www.proxy.enst.fr Proxy-Connection: keep-alive Response Headers
Date: Thu, 19 Jul 2007 12:45:37 GMT Server: Apache/1.3.37 (Unix) PHP/5.2.3 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.8d Last-Modified: Tue, 27 Feb 2007 21:29:53 GMT Etag: “28a1d5a-2358-45e4a2d1” Accept-Ranges: bytes Content-Length: 9048 Content-Type: text/css Age: 15411 X-Cache: HIT from www.proxy.enst.fr Loading…
- A 1. Make fewer HTTP requests
- F 2. Use a CDN
- F 3. Add an Expires header
- B 4. Gzip components
- A 5. Put CSS at the top
- A 6. Move scripts to the bottom
- A 7. Avoid CSS expressions
- n/a 8. Make JS and CSS external
- A 9. Reduce DNS lookups
- A 10. Minify JS
- A 11. Avoid redirects
- A 12. Remove duplicate scripts
- F 13. Configure ETags
Les conseils sont plus détaillés que cela mais passent assez mal au copier-coller, je vous conseille d’essayer vous-mêmes…
Mise à jour : une étude plus détaillée ici.
Ah, j’obtiens B(82) pour toi, tu as déjà fait des changements ?
Sam : aucun changement (en plus c’est dynamique et généré par WordPress, donc pas forcément facile à changer), mais tu l’as peut-être fait sur ce billet uniquement ? Je l’ai fait sur la page d’accueil du blog.
Tu peux changer le .htaccess déjà pour rajouter un header Expires: sur les images, scripts et feuilles de style. Il suffit de mettre :
Et un screencast sur YSlow : http://jeremy.zawodny.com/blog/archives/009342.html qui m’a convaincu que ça a l’air vraiment bien.