Mise à jour le 24/05/2023

BP 7.01Ajouter les éléments de caching et de compression dans le .htaccess

Sujet

La fiche Utiliser un système Cache nous parle de l'importance du cache Moyen de sauvegarder et de rappeler rapidement les données fréquemment utilisées et de sa mise en place via des extensions Extension, plug-in ou module sont des fonctionnalités additionnelles (non incluses dans WordPress à l'installation) à utiliser avec parcimonie. WordPress.

GreenIT vous conseille

Solution code 🌱🌱🌱

Nous allons directement indiquer au serveur Apache les paramétrages de compression La compression est l'opération informatique consistant à transformer une suite de bits A en une suite de bits B plus courte pouvant restituer les mêmes informations ou des informations voisines. et de contrôle du cache que nous souhaitons.

Exemple

Prenons pour exemple l'image du logo qui se trouve sur chaque page du site. Si nous ne mettons pas en place de cache, le navigateur la transférera depuis notre serveur à chaque affichage d'une nouvelle page.

Maintenant, compressons notre image (gzip ou brotli), elle est déjà plus rapide à charger (bien sûr, nous partons du principe qu'elle est bien dimensionnée, et au bon format. cf fiches Utiliser une version d'image ayant taille cohérente avec son utilisation, Utiliser le format adéquat d'image et Compresser les médias.

Ensuite, indiquons que nous souhaitons qu'elle soit mise en cache pendant 1 an. Lors de sa première visite, le logo est transféré pour l'afficher dans le navigateur. Le visiteur change de page, le navigateur regarde si l'image existe déjà dans ses fichiers mis en cache : oui, alors il ne va pas la chercher sur le serveur.

⚠️ Attention, toucher au fichier .htaccess peut provoquer des erreurs, sauvegardez et testez.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
#Délai de cache des fonts
ExpiresByType application/x-font-ttf "access plus 1 month"
[...]
#Délai de cache des Images
ExpiresByType image/jpg "access plus 1 month"
[...]
#Délai de cache des Autres médias
ExpiresByType video/ogg "access plus 1 month"
[...]
#Délai de cache des Assets
ExpiresByType text/css "access plus 6 month"
ExpiresByType application/javascript "access plus 6 month"
</IfModule>

# En-têtes
Header unset ETag
FileETag None

<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif)$">
    Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
    Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
    Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
    Header set Cache-Control "private, must-revalidate"
</filesMatch>
</ifModule>

# Compressions des fichiers statiques
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/xhtml text/html text/plain text/xml text/javascript application/x-javascript text/css
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary
</IfModule>

AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/json

Principe de validation

Le nombre est inférieur ou égal à
d'élements durables non mis en cache 0

Source

Vous avez repérez une coquille ou vous souhaitez contribuer à rendre WordPress plus éco-responsable ?

Venez sur le repo pour lancer une discussion sur la fiche.

Voir la fiche