J’ai déjà évoqué la question ici, il existe de nombreux moyens pour optimiser votre installation WordPress et, ainsi, gagner en performances. Aujourd’hui, je vais partager avec vous deux astuces, la première concernant votre base de données, et la seconde, moins essentielle, à propos de la sauvegarde des articles.
Voir et analyser les requêtes effectuées
Pour afficher une page, WordPress doit effectuer un certain nombre de requêtes dans la base de données. Une partie de celles-ci est générée par WordPress lui-même, mais le thème utilisé va jouer un rôle important, c’est pourquoi il est recommandé de remplacer certains appels de fonction par des données en dur. Par exemple, remplacer <?php bloginfo('url'); ?>
par http://monsite.com
.
L’astuce que je vais vous donner vous permettra de voir précisément les requêtes effectuées pour chacune de vos pages. Ouvrez votre fichier wp-config.php
et ajoutez-y le code suivant :
define('SAVEQUERIES', true);
A partir de maintenant, toutes les requêtes seront sauvegardées dans une variable, ce qui aura une influence négative sur les performances. Aussi, activez cette ligne uniquement pour l’analyse, ne la gardez pas en permanence.
Maintenant, ouvrez le footer.php
de votre thème et ajoutez les lignes suivantes avant la fermeture du <body>
:
<?php
if (current_user_can('administrator')){
global $wpdb;
echo "<pre>";
print_r($wpdb->queries);
echo "</pre>";
}
?>
Une fois connecté en tant qu’administrateur, ce code affichera en bas de vos pages un tableau dont chacune des entrées détaillera : la requête exacte, le temps qu’elle a pris et l’arborescence des fonctions ayant provoqué cet appel. Testé ici-même, le code m’indique 28 requêtes pour la page d’accueil, et 42 pour un article, ce qui est probablement perfectible…
Se passer des sauvegardes automatiques
Nous avons vu dans mon précédent article sur l’optimisation qu’il était possible de désactiver les révisions. Mais WordPress continue à effectuer des sauvegardes automatiques de vos articles en cours de rédaction. C’est très pratique, sauf lorsque vous créez du contenu en masse. Par exemple, dernièrement, il m’a fallu créer une arborescence d’une vingtaine de pages. La mécanique est simple et rapide : ajout du titre, choix de la page parent, et hop, j’enregistre. Sauf que ce dernier point est ralenti à cause de la sauvegarde automatique : je dois attendre la fin de son exécution pour publier. Frustrant, à la longue.
Pour ne plus avoir à affronter ce problème, deux solutions :
1. Modifier l’intervalle de sauvegarde automatique. Toujours dans le wp-config.php
, ajoutez le code suivant :
define( 'AUTOSAVE_INTERVAL', 60 );
Avec de la chance, vous aurez le temps de créer votre page et de l’enregistrer avant qu’une sauvegarde auto soit lancée.
2. Désactiver totalement la sauvegarde automatique. Là, il va falloir créer un plugin tout simple. Créez un fichier dans votre dossier plugins
, nommez le, par exemple, disable-autosave.php
, et insérez le contenu suivant :
<?php
/*
Plugin Name: Disable Autosave
*/
function disable_autosave() {
wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disable_autosave' );
?>
Grâce à ce plugin, le fichier javascript qui gère la sauvegarde auto ne sera plus appelé : vous en êtes libéré !
Merci beaucoup pour ce tuto ! Surtout concernant l’intervalle des sauvegardes automatiques. J’avais des problèmes de lenteur sous wordpress : c’est enfin réglé.
Ah ben je mets le conseil en application immédiatement. Ça m’a toujours saoûlé ces sauvegardes automatiques.
C’est une très belle liste de choses à mettre en place pour optimiser un blog wordpress. Ce sont des aspects que l’on négligent et qui sont importantes pour optimiser le temps de chargement des pages. Pour certaines, cela prend du temps. Pour d’autres ça demandes quelques minutes. Et des plugins existent pour chaque tache. Mais j’avoue que dans l’ensemble c’est au moins 1 à 2 jours de travail : css, javascript, requêtes, nettoyage de la base de données…