Accélérer WordPress en 8 étapes

Je rencontre depuis un moment de sérieux soucis techniques sur le site entraînant des pannes serveur répétées.
Un des symptômes est une surcharge CPU trop élevée (>130% par moments) dont les causes ne sont pas encore élucidées pour moi (je ne connais rien de rien à l’administration de serveurs web).

A toute chose malheur est bon, puisqu’en fouinant j’ai (re)découvert quelques astuces permettant d’accélérer un site WordPress que je partage ici avec vous.
Volontairement toutes les problématiques de mise en cache (statique, dynamique, requêtes SQL, cache browser) et d’optimisations techniques (GZIP, Minify, etc.) ne sont pas abordées puisque vous êtes déjà au taquet dessus 😉

Désactivez WP_CRON

Si vous disposez d’un hébergement dédié, désactivez au plus vite WP_CRON.
WP_CRON permet de simuler un processus CRON (une tâche planifiée) seulement comment savoir à quel moment lancer les différentes tâches WordPress sans chrono interne ?
En lançant une vérification à chaque affichage de page !

Pour ceux qui suivent cela signifie que chaque fois qu’une page est affichée : hop un check !
Si vous avez 10.000 pages affichées par jour ça fera combien de checks ?
Oui vous avez compris, bonjour l’overload CPU…

Pour corriger cela :
– Rajoutez la ligne suivante dans le fichier /wp-config.php :

– Créez une vraie tâche CRON via votre interface d’administration.
Avec CPANEL pour un lancement de tâches touts les heures cela ressemblera à ça :

Mettez en place une page 404 statique : Google m’a tuer

Quand vous faites des modifications structurante de votre site, il faut faire le nécessaire dans le .htaccess de son site ou faire appel à un plug-in comme Redirection qui vous permettra de mettre en place facilement des redirections 301 avec expressions régulières.

Mais même si vous faites tout cela dans les règles de l’art, impossible d’échapper aux multiples reliquats encore présents plusieurs semaines dans les index de Google.

Et que se passe-t-il si votre page 404 comporte plein de requêtes SQL (si vous avez une mauvaise bonne idée comme moi) ?
Vous subissez une « Attaque GoogleBot » qui va générer plusieurs dizaines de milliers de requêtes SQL en quelques minutes.

Plantage mySQL garanti …

Identifiez les plug-ins gourmands

Certains plug-ins sont codés avec les doigts de pieds, de dos la nuit et la tête en bas.
Par conséquent on trouve des choses affreuses comme des requêtes SQL avec des * par exemple, des resultats non mis en cache et j’en passe. Je suis bidouilleur auto-didacte crado en PHP mais même moi je suis horrifié en regardant certains morceaux de code …

Afin d’identifier rapidement les plug-ins les plus consommateurs, installez Plugin Performance Profiler qui vous permettra d’éliminer certaines brebis galeuses …

Nettoyez votre base de données

ATTENTION : cette section donne quelques astuces pour optimiser votre base de données. Les manipulations proposées sont dangereuses et peuvent endommager de façon irréversible votre site. Passez à la section suivante si vous n’êtes pas sur de comprendre exactement les conseils indiqués

La plupart des plug-ins créent des champs dans vos bases de données pour stocker les différents paramètres nécessaires à leur bon fonctionnement.
C’est grâce à ce mécanisme que vous ne perdez pas vos réglages après une désactivation / réactivation d’un plug-in.

Par conséquent ces fameux paramètres ainsi que certaines données temporaires peuvent continuer à polluer votre base de donnée inutilement et ralentir les requêtes SQL.

Clean Options va vous permettre de supprimer ces champs orphelins.

Delete Custom Fields vous permettra également de supprimer en masse les champs personnalisés créés par certains plug-ins qui ne vous servent plus à rien.

Une fois ce nettoyage terminé il ne vous restera plus qu’à supprimer les tables inutiles et à lancer une optimisation de votre base de donnée via phpMyAdmin ou en utilisant l’excellent plug-in WP-DBManager.

Evidemment une fois ces opérations effectuées, désactivez Clean Options et Mass Custom Fields Manager, mais comme vous avez bien lu le point précédent vous l’aviez déjà fait bien sur 😉

Déchargez les feuilles de styles et les scripts

J’utilise beaucoup trop de plug-ins. Or les plugins ont la mauvaise habitude de charger des scripts et des feuilles de styles à peu près partout, y compris quand aucun besoin de ne le justifie et jusque dans le back-office de WordPress.

Il est conseillé d’identifier les feuilles de styles chargées, de recopier leur contenu dans le fichier style.css de votre thème et de désactiver leur chargement au moyen d’un code de ce type à insérer dans le fichier functions.php de votre thème :

Suivant la même idée il peut être intelligent de décharger certains scripts en fonction de la page affichée.
J’ai intégré un script de ce type :

Chargez les fontes externes en premier

J’utilise une fonte Google ce qui me semble nettement plus intéressant que de passer par Cufon par exemple : http://www.google.com/webfonts.

Seul hic, comme un imbécile j’avais intégré le chargement de la fonte bien après le chargement du header.
Résultat la fonte n’apparaissant qu’une seconde après le chargement de la page ce qui donne une impression supplémentaire de lenteur.
Intégrer le code Google Font au tout début du header résout le problème instantanément 🙂

Allégez le code HTML

On ne le redira jamais assez, il est tentant d’utiliser des tableaux HTML, plus faciles à manipuler que des calques dans certaines configuration de mise en page complexe.
Bannissez-les autant que possible car ils ralentissent considérablement le temps d’affichage des pages, surtout si comme moi vous en mettez une trentaine sur certaines pages !

Dans le même gout évitez autant que possible d’intégrer des bout de mise en forme CSS au sein des éléments de vos pages.
Je fais de multiples tests à coup de

Quand c’est occasionnel ça passe encore, quand (et je plaide coupable) vous avez jusqu’à 100 morceaux de CSS éparpillés ici et là sur la même page, vous poussez les navigateurs au crash 🙁
Privilégiez les classes CSS, un

valant 10x mieux qu’un

Cerise sur le loukoum, ce sera nettement plus pratique à maintenir 😉

Analysez les pages à fort trafic

Remarque tellement évidente que je ne l’avais pas moi-même suivie : analysez en priorité les pages à plus fort trafic de votre site.
Si par exemple une page recoit plusieurs milliers de hits par jour … et comporte 500 commentaires, il peut être avisé de masquer/désactiver les commentaires ou de passer par un service externe de type Disqus pour ne pas générer inutilement des centaines de requêtes SQL et stresser le browser de l’internaute.

Ce n’est qu’un exemple bien sur, à adapter selon la structure de vos pages.

Accélérer WordPress en 8 étapes

Vous avez un projet ?

Parlons-en ensemble

Nous contacter

Partager cet article

Noter cet article

1/52/53/54/55/5
Fabien Elharrar - 309 articles
Consultant en acquisition d'audience, monétisation web et growth hacking.
157 solutions pour monetiser votre blog
RECEVOIR LES MEILLEURS ARTICLES
JE M'ABONNE
Lire les articles précédents :
L’affiliation expliquée par le président de Zanox

L'affiliation est une technique de monétisation de sites web consistant en un partenariat entre un site marchand et un ensemble...

Fermer