Votre site web peut voir la vitesse de son affichage accélérée jusqu’à 200% grâce à l’ajout de quelques directives dans le fichier .htaccess présent à la racine du site (Documentroot).

Voici quelques optimisations classiques, notemment recommandées par des sites à fort traffic tels que Yahoo!.

Activer la compression des éléments textuels

Voici un bloc d’instructions à ajouter au fichier .htaccess qui compressera tout type de rendu texte à l’aide du module apache mod_deflate :

# Types de contenus a compresser
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby

# Activation du filtre de compression
SetOutputFilter DEFLATE

# Netscape 4.x a quelques soucis, on ne compresse que le html
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Les versions de Netscape 4.06-4.08 ont quelques soucis
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# Comme d'habitude, internet explorer pose probleme
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Ne pas compresser ce type de fichiers
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:pdf|avi|mov|mp3|mp4|rm)$ no-gzip dont-vary

# Proxies
Header append Vary User-Agent env=!dont-vary

# enable resulting html compression
php_flag zlib.output_compression on

Activation de l’expiration du cache

Grâce au module mod_expires, on peut signifier aux navigateurs ainsi qu’aux differents proxies le temps d’expiration d’un objet, par exemple ici, on définit la durée de validité de l’ensemble des objets cachés, donc déjà téléchargés :

ExpiresActive on
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType text/ico "access plus 1 months"
ExpiresByType image/ico "access plus 1 months"
ExpiresByType image/icon "access plus 1 months"
ExpiresByType image/x-icon "access plus 1 months"
ExpiresByType application/x-shockwave-flash "modification plus 1 months"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType text/xml "modification plus 2 hours"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType application/xhtml+xml "access plus 0 seconds"
ExpiresByType application/xhtml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresDefault "access plus 1 week"
BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE 
!no-gzip !gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/htm Header append Vary 
User-Agent env=!dont-vary AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component 
text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon

Activation de ETags

Variation sur le thème du cache, les ETags, ou Entity Tags, transmettent au navigateur et aux divers proxies une information sur l’état de l’objet demandé. Ainsi, en comparant l’ETag de l’objet caché avec celui de l’objet demandé, on peut éviter son re-téléchargement. Les ETags étant uniques à chaque serveur dans leur configuration par defaut, il est conseillé de ne prendre en compte que la taille de l’objet pour effectuer la comparaison :

FileETag Size
Philippe Humeau
Philippe Humeau
Philippe a co-fondé NBS System en 1999. Après s’être concentré sur la sécurité, qu’il n’a jamais abandonnée, il se découvre une passion pour le ecommerce à partir de 2008. Tour à tour pentester, CTO, CCO puis CEO, son profil touche-à-tout l’a conduit à devenir directeur marketing et stratégie d’OT Group après notre intégration dans celui-ci.