WordPress c’est lent…. Mais on peut améliorer ça !
Comme je le disait précédemment j’ai donc abandonné Dotclear pour WordPress suite au passage du serveur à PHP 5.3.2 qui a donné un résultat un peu bizarre sous Dotclear. Il faut bien avouer aussi que la communauté WordPress et son développement sont beaucoup plus actifs que Dotclear (notamment depuis le départ de son auteur).
Donc comme c’est désormais la plateforme principale qui propulse le site, et je me suis donc un peu pencher sur les performances de celui-ci pour justement lui donner un coup de Boost… Parce que de base ce n’est pas trop trop son point fort.
Comme je le disais avec WordPress les performances ne sont pas vraiment au rendez-vous, des pages qui mettent entre 1 à 5 secondes pour être générée avec 30 à 40 requêtes SQL (j’ai du mal à comprendre ce qui réclame autant de requêtes d’ailleurs) je trouve tout simplement ça anormal… Pour moi une page doit être générée en maximum 500ms et rarement plus, d’autant que cela a un impact sur le référencement : Si vos pages répondent lentement vous serrez pénalisé.
Dans le cadre de mon travail j’avais installé des blogs WordPress et j’avais déjà remarqué une certaine « lourdeur » de l’application. Aujourd’hui en l’utilisant je m’en suis bien rendu compte et je ne pouvais pas vraiment laisser ça comme ça ! Voici donc quelques plugins quasiment indispensables pour WordPress :
WP Super Cache : Ce petit plugin permet simplement de mettre en cache les pages de votre blog, très pratique pour pallier au problème de temps de génération des pages, et vous ferez par la même occasion des économies de ressources serveur. Pour ainsi dire indispensable.
Optimize DB : Cette extension permet en gros de faire des « Optimize » sur votre base de données en cliquant simplement sur un bouton dans votre admin WordPress, plutôt pratique et vous évitant d’aller dans phpmyadmin pour le faire par exemple. A faire de temps en temps vu qu’à force d’écrire et de lire dans la base vous allez avoir des « pertes » qui la ralentisse.
Petit conseil supplémentaire, évitez d’installer trop de modules supplémentaires et contentez vous de ce qui vous sera utile et apportera une vraie valeur ajoutée car plus vous allez installer de modules, plus votre blog va être lent et lourd…
Et enfin en bonus comme j’ai abordé le thème du référencement :
All in One SEO Pack : Petit plugin pour améliorer le référencement de votre blog, il ajoute notamment les balises meta description et keywords de façon automatique. Il évite les duplicate content etc. Il permet aussi à la rédaction d’un article de configurer manuellement le contenu de ces balises. Clairement indispensable pour affiner au mieux votre référencement.
Automatic Backlinks : Ceci est un site qui propose un service assez sympathique. Il permet en fait de faire des échanges de liens et ceci de façon automatique en fonction du PageRank de vos pages etc. Son principal intérêt est de pouvoir faire monter votre PageRank. Cela fait un petit moment que je l’utilise sur le site et c’est plutôt efficace. Il propose un module WordPress qui s’installe et se met en place en 30 secondes.
Voilà, ça sera tout pour WordPress… pour le moment !
| Imprimer l'article | Cette entrée a été posté par Steuf le 18 mars 2010 à 23 h 50 min, et placée dans Applications PHP, Wordpress. Vous pouvez suivre les réponses à cette entrée via RSS 2.0. Vous pouvez laisser une réponse, ou bien un trackback depuis votre site. |


about 2 years ago
Je suis pas certain que gg penalise un wp lent. Je pense même qu’il octroit un flag positif pour ce cms. Pour ma part, j’étais tres chaud vis à vis de wordpress mais les tables, les plugins , les fonctions redondantes, la securité, à chaque mod une table de + ont eu raison de moi.
about 2 years ago
Google ne pénalise pas les WordPress lent, il pénalise les pages lentes, ou plutôt pour être plus explicite Google octroie des bonus de position par rapport à la rapidité des pages.
Google donner un flag positif au plateforme sous WordPress ? Encore une fois je n’y crois pas un seul instant, par contre dire que des blogs sont en général bien positionnés c’est vrai. Cela est simplement du à la structure des pages des blogs et qu’il y a beaucoup plus de backlinks (qualitatifs) sur ce genre de plateforme. Qui dit backlink qualitatif, dit popularité dit bon positionnement. Google ne favorisera jamais une plateforme particulière et encore heureux…
WordPress reste une très bonne plateforme open source mais est à mon goût un peu trop lente, il serait temps qu’ils se penchent sur certaines optimisations
about 2 years ago
Oui. Je voulais dire que la proposition de structure externe de WP favorise en effet un bon positionnement.
« WordPress reste une très bonne plateforme open source mais est à mon goût un peu trop lente, il serait temps qu’ils se penchent sur certaines optimisations » Oui, elle est très très lente … et le systeme de « hooks » qui consiste à « encapsuler » dans de « l’encapsulé » est hyper lourd + le systeme un mod = une table (et même des fois deux voire trois), la structure sql de depart qui est pas super optimisee, voire redondante, et tu obtiens certains serveurs qui en peuvent plus au bout d’un certains temps … Tu cumules ça avec les majs, problemes de securité récurrents, la redondance d’une manière générale … j’ai abandonné.
about 2 years ago
Je suis parfaitement d’accord
about 1 year ago
Votre page ici présente est générée en 6’71s pour 50 requêtes, ce n’est pas terrible quand même. Pour optimiser tout cela vous pourriez déjà combiner vos CSS et vos javascripts (notamment les jQuery), puis les compresser, vous gagneriez déjà jusqu’à 2s sur chacune de vos pages…
about 1 year ago
Vous confondez beaucoup de choses… Et vous ne semblez pas bien comprendre ce que veut dire « temps de génération », « temps de chargement » ainsi que comment fonctionne un système de cache. Donc je vais me permettre de donner plusieurs explications vu que vous avez fait de mauvaises observations…
1° La page ne s’est pas générée en 6,71 secondes. Vous confondez temps de chargement et temps de génération. Le temps de génération de la page est de 800ms sans le cache (d’où l’article ici présent) et de 60 ms lorsqu’elle est en cache. Ce temps est le temps que met PHP à gérer le code HTML de la page, et c’est la que j’ai pointé du doigt WordPress dans cette article. Certaines pages de WordPress sont très lourdes, le cache est indispensable. Sachez également que le serveur dispose d’un cache Opcode permettant d’accélérer le temps de génération par PHP mais aussi que les pages en cache sont sur sur un serveur memcache ce qui explique comment j’arrive un temps de 60ms une fois la page en cache (ce qui est très rapide).
2° Concernant le temps de chargement du navigateur, si vous venez pour la première fois il est tout à fait normal que le temps de chargement soit un peu long, votre navigateur n’a aucune information du site en cache (css, html, images) et que donc la première visite sur un site offrira toujours un temps de chargement un peu « long ». Si vous auriez actualisé la page vous vous serez rendu compte que mon serveur apache est configuré pour exploiter pleinement le cache de votre navigateur ce qui fait passer le nombre de requêtes HTTP de 50 à 25 et le temps de chargement de 6 seconde à moins de 2 secondes. Et encore ce temps est inférieur pour les éléments de mon site seuls, je suis après dépendant de script Javascript extérieur qui manifestement n’exploitent pas pleinement le cache navigateur.
3° En autre optimisation, sachez que mes serveurs envoient des réponses compressées au maximum.
4° Pour ce qui est du groupement CSS, JS cela est juste, mais je suis dépendant de CSS/JS généré à la volée, et de la structure du template WordPress que je n’ai absolument pas modifié. Et sachant que j’exploite pleinement le cache des navigateur les grouper n’apporterait significativement pas grand chose surtout au vu du nombre (5 css, 5 js).
5° Le cache d’une page n’est pas éternel, et c’est à l’affichage de la page que le cache est régénéré pour un temps T si le cache est expiré
Donc au final vous êtes tombé sur le cas suivant: Cache de la page expiré (donc 800ms-1s de temps de génération), c’était votre première visite donc téléchargement de votre navigateur de toutes les images, css, js etc ce qui vous a amené à 50 requêtes et 6s de temps de chargement. SI vous aviez été un peu plus observateur vous vous serez rendu compte qu’à la prochaine le temps de chargement total serait d’à peine 2 secondes et que le temps de génération d’un page une fois en cache serait d’environ 60ms. Si vous trouvez encore cela moyen je devrai songer à changer de métier… Alors oui je pourrais faire un peu plus et d’ailleurs comme vous me l’avez fait remarqué j’ai activé la compression et le rassemblement de fichier CSS/JS ce qui me donne un temps de chargement avec toutes les données en cache de 1,2s, un scrore de 87/100 à PageSpeed (au lieu de 84) et un Grade C et un scrore de 79 (sur 100 à priori) à YSlow… Même sans l’assemblage des CSS/JS c’était loin d’être pas terrible
La seule chose qui manquerait ici au niveau de l’optimisation c’est l’utilisation de Sprite d’images (c’est d’ailleurs la seule remarque de PageSpeed) mais bon j’ai pas envie de me prendre la tête avec ça et c’est déjà très bien tel quel pour un simple blog
Bref il faudra être un peu plus observateur à l’avenir mon cher
(Parce que bon l’optimisation de chargement de page c’est un peu une de mes spécialités aussi…)
about 1 year ago
« Vous confondez beaucoup de choses… temps de génération/ « temps de chargement… »
Oui c’est vrai, milles excuses. Pour le reste je pense moi aussi qu’il faut trouver un compromis entre un premier chargement d’une page et la mise en cache de certains fichiers, mais je n’en suis qu’au début. Sinon le temps de génération d’une page sous WP est vraiment énervant: de 1,2s jusqu’à plus de 6s chez moi, c’est blasant! J’avais tenté d’utiliser WP Super Cache mais sans réellement comprendre le fonctionnement, il faudra que je réessaye…
Au fait, je vois que finalement vous avez compressé vos fichiers ! Vous avez aussi gagné 3 requêtes au passage…
Bien à vous
about 1 year ago
Pour faire simple avec WP Super Cache vous devez activer les choses suivantes :
- Page Cache, cochez « Enable » si vous avez un serveur Memcache sélectionnez le dans la liste, sinon sélectionnez « Disk Enhanced ». Cette partie sert à mettre en cache vos page et donc fortement diminuer le temps de génération de vos pages.
- Minify, Cochez Minify « Enable », mode auto, Cache method, le même que précédemment, le reste laissez les paramètres par défaut.
Ça devrait déjà vous donnez un coup de boost. Après j’avoue que W3 Total Cache est pas forcément facile à prendre en main pour des néophytes.
Sinon oui j’ai activé la compression et le rassemblement, votre remarque était justifiée et c’était un oubli de ma part (même si comme expliqué le gain est assez minime dans mon cas).