Tripwire Magazine publie un article très complet sur l’optimisation de WordPress (découvert grâce à AW), qui liste 11 astuces dans l’ordre décroissant de leur impact sur la performance. Comme l’article est long et en anglais, je me permets d’en faire ici un résumé en français (et non pas une traduction). Pour plus de détails, rendez-vous directement sur l’article en question.
1. Mettre en place un cache performant
Utiliser un cache consiste à créer des pages HTML sur votre serveur à partir des pages générées par WordPress. Ensuite le serveur n’a plus qu’à présenter ces pages, sans effectuer les multiples requêtes normalement nécessaires à leur affichage. Il existe plusieurs plugins de cache pour WordPress, mais le meilleur semble être WP Super Cache Plugin. Il permet un réglage précis du système de cache et permet notamment de préciser si une partie spécifique de la page doit rester dynamique (par exemple la liste des derniers commentaires).
Cette astuce est celle qui a le plus d’impact sur l’optimisation wordpress : si vous devez en choisir une, prenez celle-ci !
2. Optimiser votre thème en réduisant le nombre de requêtes au serveur, à la base de données et en diminuant son poids global
supprimer les requêtes PHP inutiles. Les thèmes téléchargeables sont faits de telle manière que vous n’ayez pas besoin de les modifier pour les appliquer à votre site. Par exemple, le lien vers la page d’accueil est généré grâce à l’appel de la fonction get_option(‘url’), qui va donc faire une requête dans la base de données. Vous savez que votre page d’accueil ne changera jamais d’URL ? Alors modifiez le thème en remplaçant la fonction PHP par votre URL en dur, et vous ferez du bien à votre serveur ! L’astuce est bien sûr applicable toutes les fois où vous trouverez la fonction get_option() dans votre thème.
Réduire le nombre de requêtes au serveur. Une page qui s’affiche dans le navigateur signifie souvent un nombre impressionnant d’appel de fichiers : les images, bien sûr, mais aussi les feuilles de styles et les fichiers javascript. Cela réduit d’autant les performances d’affichage de votre site. Il y a deux moyens d’améliorer les choses. Tout d’abord, combiner ces fichiers, c’est à dire, pour les images, utiliser les sprites CSS, copier le contenu de tous vos fichiers css dans un seul et unique fichier et faire de même pour les fichiers js. Ensuite, compressez ces fichiers en supprimant les blancs pour réduire leur poids. Evidemment, il existe des plugins wordpress pour ça : WP CSS et WP JS. Le seul problème, c’est que vous n’avez pas facilement la main sur les fichiers css et js ajoutés par les différents plugins installés…
Placer les appels javascript en bas de page. Le principal, c’est d’afficher votre contenu, n’est-ce pas ? Le javascript peut attendre. Placez, par exemple, vos codes pour la gestion des statistiques dans le footer.
Prévoyez un cache d’expiration pour ces fichiers. Tous les fichiers que le navigateur appelle pour afficher une page sont téléchargés sur le disque dur. S’il n’est pas désactivé, les navigateurs ont un système de cache interne qui fait qu’ils ne téléchargeront pas une seconde fois un fichier qu’ils ont déjà pendant un certain temps. Vous pouvez maitriser cette durée pour chacun de vos fichiers en précisant des dates d’expiration pour votre fichier .htaccess.
3. Nettoyer votre base de données
Les bases de données ont besoin d’être optimisées, nettoyées régulièrement, sans quoi leurs performances s’en font ressentir. Pour cela il suffit de lancer la procédure d’optimisation prévue dans phpmyadmin. Si vous n’y avez pas accès, vous pouvez installer le plugin WP DBManager, qui vous permettra de le faire.
4. Héberger vos images ailleurs
Un moyen simple d’économiser les ressources de votre serveur est de faire héberger vos images ou autres fichiers statiques sur des services externes, comme Amazon S3 Storage service. Evidemment, choisissez bien le site externe sur lequel vous hébergerez ces fichiers, car il ne faudrait qu’il ralentisse l’affichage de votre site 😉 (Amazon Storage semble une bonne solution de ce point de vue). Il reste également la possibilité d’appeler directement des images hébergées par le site de vos voisins, mais ce n’est vraiment, vraiment pas gentil (on appelle cette pratique du hotlinking).
5. Activer le cache WP Built-in
WordPress inclut de base un système de cache pour les objets PHP. Il est désactivé par défaut car il provoque une augmentation significative de l’utilisation de la mémoire du serveur, ce que votre hébergeur n’appréciera pas si vous êtes sur un serveur mutualisé. A manier avec précaution donc. Pour l’activer, rendez-vous dans la page wp-config.php :define(ENABLE_CACHE, true);
6. Désactiver/limiter/nettoyer les révisions de billets
WordPress garde en mémoire les différentes versions de chaque billet : les révisions. Très pratique dans le cadre d’un travail collaboratif, mais cette accumulation de versions finit par prendre une place conséquente dans la base de données. Si les révisions ne vous sont pas d’une utilité renversante, autant vous en débarrasser. Pour désactiver leur création, voici une ligne à ajouter dans le wp-config.php :define(’WP_POST_REVISIONS’, false);
Un compromis consiste à garder les révisions mais à en limiter le nombre :define(’WP_POST_REVISIONS’, no_of_revision);
Mais bien sûr, cela ne supprimera pas les révisions déjà présentes dans votre base de données. Si vous n’avez pas accès facilement à phpmyadmin, vous pouvez utiliser le plugin delete-revision, qui fait ça très bien.
7. Toujours mettre à jour WordPress et ses plugins
En plus des nouvelles fonctionnalités offertes par ces mises à jour, elles offrent bien souvent des améliorations en terme de sécurité et de performance. Attention néanmoins à l’installation des plugins : ils ne sont pas toujours codés dans les règles de l’art et peuvent représenter des problèmes de sécurité et de performance.
8. Supprimer les thèmes non utilisés
Il n’y a aucune raison de garder un tas de fichiers inutiles sur le serveur, n’est-ce pas ?
9. Désactiver et supprimer les plugins non désirés
Si vous décidez de ne plus utiliser un plugin, désactivez et supprimez le.
10. Supprimer les commentaires indésirables (spam)
Les commentaires indésirables, même s’ils ne sont pas affichés sur le site, sont présents dans la base de données. Autant les supprimer régulièrement pour libérer de la place. Un plugin vous aidera à le faire facilement : WP-Optimize (il peut également vous être utile pour supprimer les révisions évoquées plus haut).
11. Vérifier les liens morts
Cette dernière astuce n’a pas vraiment d’impact sur l’optimisation des performances de votre site, mais il n’est pas négligeable sur l’expérience utilisateur. Il n’est pas rare que vos anciens billets pointent vers des liens morts, que ce soit vers des sites externes ou vers d’anciennes partie de votre propre site. Vous pouvez effectuer la vérification facilement grâce au plugin Broken Link Checker.
Article sympathique, cependant on peut trouver d’autres configurations et astuces. Perso. j’ai trouvé les armes ultimes pour augmenter la réactivité (http://bit.ly/79fxkr)
Merci pour cet article qui va m’être très pratique
Très très utiles pour optimiser son blog. Je connaissais un certain nombre d’astuces mais très sympa de les rassembler ici.
Bonjour,
Je vous ai trouvé par l’intermédiaire d’ « Encre de Lune »… Je vais vous poser la même question qu’à elle :
Tout le monde préconise de supprimer les sauvegarde par la fonction « define(’WP_POST_REVISIONS’, false); ». Or quand je l’applique, tous mes articles et pages passent à la poubelle.
En connaissez-vous la raison ?
Bonjour,
C’est très curieux, je n’ai jamais eu ce problème. Les articles/pages reviennent en place quand vous supprimez cette ligne ?
Malheureusement non : après suppression de la ligne j’avais dû tout rétablir « à la main ».
Ce n’est pas grave, mais cela stimule d’autres bugs importants de WordPress que j’avais déjà remarqué :
1. Pour certaines modifications sur les articles (ex : modification du titre d’un article déjà publié, ajout d’un mot clef) WordPress envoie ce que j’appellerais des « commentaires automatiques » sur d’autres articles du site (ce n’est peut-être pas un bug mais je n’en vois pas l’utilité…)
2. D’un seul coup cette manipulation entraîne un gonflement de la base MySQL par 2 ou 3 ! (même après suppression de ces messages)
Ce qui est paradoxal car c’est justement ce dernier bug que je cherchais à résoudre par la solution que vous (ainsi que d’autres) aviez préconisé. En effet le gonflement exponentiel de cette base (qui double pratiquement à la moindre modification de paramétrage de mon site) va finir par me poser problème avec mon hébergeur (OVH mutualisé).
Le seul moyen que j’ai trouvé pour l’instant c’est d’effacer la base et de la recharger par une sauvegarde xml, mais ensuite ça recommence…
Merci pour ces astuces !!!