Chose promise, chose due, voici le second article visant à optimiser les temps de chargement de WordPress.

Dans le 1er volet, nous avons vu comme améliorer grandement le thème que vous utilisez pour le rendre plus rapide : « Optimisez la vitesse d’un thème WordPress« . Mais cette optimisation seule est insuffisante puisque qu’il va falloir également optimiser le cache, la base de données ou encore vos plugins si vous voulez un réel gain de rapidité.

Dans ce second volet, nous allons voir comment paramétrer le fichier wp-config.php.

Celui-ci est situé à la racine de votre installation, et voici les paramètres que vous devez configurer.

WP-Config.php
Un exemple de fichier WP-Config.php

Activer le cache par défaut

Auparavant, WordPress avait un système de cache natif qui était activé avec la ligne suivante :

define('ENABLE_CACHE', true);

Malheureusement, celui-ci ne fonctionne plus depuis la version 2.5. Ajoutez cependant cette ligne car elle permettra de faire fonctionner les différents plugins de cache.

define('WP_CACHE', true);

Réduire le nombre de révisions

La ligne suivante permet de réduire le nombre de sauvegardes d’un article : ce qu’on appelle communément une révision. C’est utile pour le travail collaboratif ou pour garder l’historique d’un contenu un peu comme le fait Wikipédia, mais cela occupe une place important sur la base de données, et peut donc ralentir le site.

Avec la ligne suivante, on limite à deux le nombre de ces révisions pour chaque contenu du site :

define('WP_POST_REVISIONS', 2);

Vous avez aussi une méthode plus brutale qui consiste tout simplement à désactiver cette fonctionnalité :

define('WP_POST_REVISIONS',false);

Vous pouvez aussi réduire le temps entre chaque sauvegarde automatique avec la ligne suivante, en changeant le chiffre par la durée souhaitée (en secondes) :

define('AUTOSAVE_INTERVAL', 300);

Et si vous avez un nombre considérables de révisions dans WordPress, et que vous voulez faire le ménage, il vous faudra utiliser une requête SQL dans l’interface de votre hébergement :

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'

Vider automatiquement la corbeille

Cette fois-ci, la ligne va forcer le vidage de la corbeille pour les contenus ayant plus de X jours : cela inclut les articles, les pages, les commentaires et les médias.

En mettant cette valeur à trois, je m’assure de ne pas surcharger inutilement la base de données de WordPress :

define('EMPTY_TRASH_DAYS', 3 );

Ne pas envoyer de cookies aux sous-domaines

Cette dernière ligne est moins connue et sera pourtant utile pour mettre en place un CDN (Content Delivery Network). Il s’agit de placer sur un sous-domaine (youpi.monsite.com) ou sur un autre nom de domaine vos contenus statiques comme vos images et vos vidéos.

En utilisant d’autres noms de domaine, vous permettez d’accélérer le temps de chargement de ces données. Seul hic, WordPress transmet un cookie inutile pour chacune de ces requêtes. Pour évitez cela, utiliser ces deux lignes de code dans le fichier wp-config.php :

define('COOKIE_DOMAIN', 'www.monsite.com');
define("WP_CONTENT_URL", "http://static.yourdomain.com");

La première est l’URL de votre site. La seconde celle de l’emplacement de vos fichiers statiques. Dans l’exemple ci-dessus, il s’agit d’un sous-domaine mais cela peut être un autre domaine à part entière.

Sécuriser WordPress

Tant que vous êtes dans le fichier wp-config.php, vérifier que ces 4 lignes suivantes sont bien présentes et remplies :

define('AUTH_KEY',        '');
define('SECURE_AUTH_KEY', '');
define('LOGGED_IN_KEY',   '');
define('NONCE_KEY',       '');

Si vous ne voyez pas de clé comme dans l’exemple ci-dessus, rendez-vous à l’adresse suivante pour en générer : https://api.wordpress.org/secret-key/1.1/

MISE A JOUR : utilisez plutôt cette URL https://api.wordpress.org/secret-key/1.1/salt/ (merci à Martin).

Cela permettra de mieux sécuriser votre site Internet (et en plus, cela ne coûte rien).

Augmenter la mémoire allouée

Pour exécuter n’importe quelle action, WordPress fait appel à la mémoire allouée par votre hébergement. Parfois, celle-ci est trop faible et provoque le message d’erreur suivant :

Allowed memory size of xxx bytes exhausted

Pour éviter cela, vous pouvez ajouter cette ligne dans le fichier wp-config.php pour augmenter cette valeur

define('WP_MEMORY_LIMIT', '128M');

Attention cependant :

  • WordPress fixe à 32Mo par défaut la mémoire.
  • WordPress ne pourra pas dépasser la limite imposée par votre hébergeur. Si celui-ci fixe la mémoire allouée à 32Mo, la ligne de code ne permettra jamais de dépasser cette valeur.
  • WordPress testera toujours s’il doit ou non utiliser la fonction. Par exemple si PHP alloue déjà 64Mb, le fait de définir la même valeur dans le fichier wp-config.php ne servira à rien.
Installation de WordPress et fichier wp-config.php
Pour rappel, le fichier wp-config est créé lors de l’installation de WordPress

Et voilà, le tour est joué. Vous n’avez plus qu’à optimiser votre fichier au plus vite.