WordPress

Optimiser WordPress

speedVous trouvez que votre site ou blog WordPress est lent ?

Voici quelques méthodes simples d’optimisation. Tout d’abord la règle de base est de ne pas utiliser trop de plugins et d’alléger au maximum vos images. Ensuite il faut travailler la mise en cache, la compression, la minification des fichiers. Enfin, vous devez alléger votre base de données

Plugins et images

Limiter le nombre de plugins

Sur WordPress il existe des milliers d’extensions. Certaines sont vraiment très utiles, voire indispensables. Cependant il est important d’utiliser le moins de plugins possible et de se limiter aux incontournables. Outre les problèmes de sécurité engendrés par certaines extensions, les multiplier ne fera que ralentir votre site. Adoptez de bons réflexes : quand vous n’utilisez pas une extension supprimez-la au moins désactivez-la.

Alléger les images

Pour que votre site s’affiche plus rapidement, vous devez optimiser vos images. Voici des habitudes à prendre :

  • Réduisez la taille des images avant de les uploader (en général 1000px de large suffisent)
  • Utilisez les formats jpeg ou png
  • Pour alléger le poids de vos images vous pouvez utiliser le service en ligne kraken.io (ou le plugin WordPress de Kraken).

Compression, mise en cache, minification

La mise en cache permet à votre navigateur de ne pas télécharger deux fois un même fichier afin d’accélérer le chargement des pages.  Ensuite, la compression gzip va permettre à votre serveur de compresser vos fichiers. Enfin,  la minification de vos fichiers CSS et javascript va réduire leur poids.

Vous pouvez procéder de différentes façon : via un plugin ou « à la main ». Pour ma part j’utilise un plugin sur un site à modifier et lors du développement d’un thème sur mesure j’intègre l’optimisation dans mon workflow.

Utiliser un plugin

Il existe plusieurs plugins qui gèrent cela (WP Fastest Cache, W3 Total Cache, WP Super Cache, WP Rocket)

Pour ma part après avoir utilisé un tempsi W3 Total Cache j’ai choisi pour mes projets d’utiliser WP Fastest Cache que je trouve plus facile à paramétrer et utiliser.
Il gère la mise en cache, la compression Gzip et la minification.

Une fois ce plugin installé, n’oubliez pas de vider les caches après chaque nouvelle publication (WPFC > Delete Cache).

Via le .htaccess

Vous pouvez également gérer la mise en cache et la compression via le fichier .htaccess

Pour activer la compression gzip , il vous suffit d’ajouter les lignes suivantes dans votre fichier .htaccess :

<IfModule mod_deflate.c>
 <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE "application/atom+xml" \
                                      "application/javascript" \
                                      "application/json" \
                                      "application/ld+json" \
                                      "application/manifest+json" \
                                      "application/rdf+xml" \
                                      "application/rss+xml" \
                                      "application/schema+json" \
                                      "application/vnd.geo+json" \
                                      "application/vnd.ms-fontobject" \
                                      "application/x-font-ttf" \
                                      "application/x-javascript" \
                                      "application/x-web-app-manifest+json" \
                                      "application/xhtml+xml" \
                                      "application/xml" \
                                      "font/eot" \
                                      "font/opentype" \
                                      "image/bmp" \
                                      "image/svg+xml" \
                                      "image/vnd.microsoft.icon" \
                                      "image/x-icon" \
                                      "text/cache-manifest" \
                                      "text/css" \
                                      "text/html" \
                                      "text/javascript" \
                                      "text/plain" \
                                      "text/vcard" \
                                      "text/vnd.rim.location.xloc" \
                                      "text/vtt" \
                                      "text/x-component" \
                                      "text/x-cross-domain-policy" \
                                      "text/xml"

    </IfModule>
</IfModule>

Pour la mise en cache, il faut ajouter dans votre fichier .htaccess :

## contrôle du cache navigateur – Expire headers
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault “access plus 7200 seconds”
  ExpiresByType image/jpg “access plus 2592000 seconds”
  ExpiresByType image/jpeg “access plus 2592000 seconds”
  ExpiresByType image/png “access plus 2592000 seconds”
  ExpiresByType image/gif “access plus 2592000 seconds”
  AddType image/x-icon .ico
  ExpiresByType image/ico “access plus 2592000 seconds”
  ExpiresByType image/icon “access plus 2592000 seconds”
  ExpiresByType image/x-icon “access plus 2592000 seconds”
  ExpiresByType text/css “access plus 2592000 seconds”
  ExpiresByType text/javascript “access plus 2592000 seconds”
  ExpiresByType text/html “access plus 7200 seconds”
  ExpiresByType application/xhtml+xml “access plus 7200 seconds”
  ExpiresByType application/javascript A259200
  ExpiresByType application/x-javascript “access plus 2592000 seconds”
  ExpiresByType application/x-shockwave-flash “access plus 2592000 seconds”
</IfModule>
#complement a expire-headers
<IfModule mod_headers.c>
  <FilesMatch “\.(ico|jpe?g|png|gif|swf)$”>
    Header set Cache-Control “max-age=2592000, public”
  </FilesMatch>
  <FilesMatch “\.(css)$”>
    Header set Cache-Control “max-age=604800, public”
  </FilesMatch>
  <FilesMatch “\.(js)$”>
    Header set Cache-Control “max-age=216000, private”
  </FilesMatch>
</IfModule>

Alléger la base de données

Limiter ou désactiver les révisions d’articles

Par défaut, dès que vous modifiez un article, cela va enregistrer une « révision » en base de données et va alourdir votre base et donc ralentir le chargement de votre site/blog.

Pour limiter ou annuler le nombre de révisions, dans wp-config.php (fichier présent à la racine de votre WordPress), vous devez ajouter :

/**Annuler les révisions**/
define('WP_POST_REVISIONS', false);

Pour annuler les révisions
ou :

/**Limiter le nombre de révisions à 3**/
define('WP_POST_REVISIONS', 3);

Pour limiter le nombre de révisions à 3 par exemple

Espacer les sauvegardes automatiques

Par défaut WordPress effectue des sauvegardes automatiques des articles  toutes les 60 secondes. Cela alourdi considérablement votre base de données.

Pour espacer les sauvegardes auto,  ajoutez dans le fichier wp-config :

/** Sauvegarde automatique des articles toutes les heures **/
define('AUTOSAVE_INTERVAL', 3600);

Faire le ménage dans la base de données

Même si vous avez modifié comme décrit au dessus les paramétrages des révisions, il faut supprimer celles qui sont déjà en base.

Par ailleurs, votre base de donnée contient beaucoup d’informations inutiles à supprimer.

Il existe des plugins pour cela, en particulier WP-Optimize.

Vous pouvez également modifier à la main, par exemple, pour effacer l’historique des révisons utilisez la requête suivante :

DELETE a,b,c
FROM `wp_posts` a
LEFT JOIN `wp_term_relationships` b ON (a.ID = b.object_id)
LEFT JOIN `wp_postmeta` c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *