Comment optimiser un blog WordPress quand on est sur un serveur dédié ?

Pour moi-même comme pour d’autres, j’ai décidé de coucher ici les quelques conseils que je donnerais si l’on me demandais comment optimiser un site à fort trafic qui est basé sur un WordPress, et qui a un serveur dédié (ou un virtuel). Attention, la majorité de ces conseils requièrent pour leur mise en place quelques connaissances en administration (rien de bien méchant toutefois), donc je déconseille à qui n’y connait rien de se lancer corps et âme dans la bataille. Je ne parlerai ici que des performances du serveur, et pas de l’optimisation de l’affichage du thème, qui prendrait déjà bien un billet à lui tout seul (et de surcroît, j’en ai déjà parlé).

Mettre en place un système de cache

C’est la base : WP-Super-Cache peut faire l’affaire.

Faire attention aux .htaccess

Attention àça : on a tendance à beaucoup s’amuser avec les .htaccess, mais j’ai fortement l’impression qu’ils ralentissent le temps d’exécution de Apache. Je rappelle qu’il est recommandé de mettre les règles directement dans le fichier de configuration de Apache, ou alors dans celui de chaque site-available.

Configurer les différentes mises en cache du code PHP et du SQL

Pour cela, il y a plein de choses à faire : eAccelerator, Zend Optimiser, etc… Forcer l’utilisation de PHP5 aussi sur le serveur.

Mettre en place un système de reverse proxy

Cela devrait être la base : il se trouve que Apache2 se fait vieux, et qu’il n’est plus vraiment adapté à l’utilisation que l’on en fait aujourd’hui, surtout dans le cas d’un site à fort trafic. Ainsi, il « suffit » de ne laisser à Apache que la gestion de la génération du code et de donner à un serveur plus rapide (nginx ou lighthttpd par exemple) la gestion des fichiers statiques, qui composent la large majorité (en nombre) des fichiers qui composent une page web. C’est souvent -à mon avis- LA grosse erreur que font les webmasters de site web.

Mettre le cache en RAM

Évidemment, tout ce qui est sur la RAM est accessible plus rapidement que ce qui est sur le disque dur. Donc soit vous prenez un SSD (comme ça, le disque dur devient de la RAM, en quelque sorte 🙂 mais sans les problèmes de disparition des données au reboot), soit vous mettez le cache WordPress en RAM. Pour cela, go chez Mrboo.

Pour le reste

Pour ce qui est de mettre sa base SQL sur un autre serveur, je comprend l’idée, mais je ne suis pas certain que ce soit une bonne idée. En effet, le temps d’accès entre les deux serveurs va être supérieur au temps précédemment requis par les deux applications (Apache/PHP et MySQL) pour accéder l’une à l’autre. Mais en contrepartie le serveur aura davantage de ressources pour gérer son SQL. Donc est-ce que ce qui est gagné en performances processeur et en temps d’exécution ne sera pas perdu en temps de transfert de données entre les deux serveurs ? Je ne le sais pas. Un benchmark serait bienvenu ici.

[Image]