« Code is Poetry » WordPress.org

Un truc me taraude depuis le lancement de ce blog qui est propulsé par WordPress, c’est le temps de chargement à l’ouverture des pages.
Au départ, j’ai essayé de rationaliser la chose : j’avais l’habitude de coder des sites en HTML statique, il n’était pas sérieux d’espérer la même réactivité avec un CMS comme WordPress, une base MySQL, des scripts et des requêtes PHP qui partent dans tous les sens… Les latences étaient somme toute logiques, il fallait que je m’y fasse.
Au reste, dans cette affaire, le fait que le site soit hébergé à Berlin me semblait anecdoctique (même si ce choix peut surprendre pour un blog qui, à priori, n’a aucune vocation à s’exporter).

L’annonce de Google, en avril 2010, selon laquelle le temps de chargement des pages web allait être pris en compte dans les algorithmes de classement des résultats, a provoqué un effet sismique dans la communauté des développeurs. Comprenez que, pour être bien classé, il ne suffirait plus d’avoir un dispositif de référencement efficace, il faudrait aussi optimiser le temps de chargement de ses pages. Mauvaise nouvelle pour les codeurs du dimanche (au rang desquels je m’affiche discrètement).
La presse rapporte que cette décision a fait l’objet de longs débats, en interne, chez Google, s’appuyant sur des études qui ont mis en évidence le fait que les temps de chargement ont une forte influence sur le comportement d’un visiteur, sur sa capacité à naviguer plus ou moins durablement sur un site, à concrétiser un achat ou pas.
Au vu de la dimension (exagérément) économique que revêtait cette annonce, les webmasters se sont lancés dans un grand nettoyage de printemps, essayant d’expurger les codes sources de leurs pages, de compresser ce qui pouvait l’être, de mettre en place des dispositifs de cache pour limiter le nombre de requêtes sur les serveurs etc.
Perso, je n’avais aucun intérêt à changer quoi de ce soit vis-à-vis de Google vu que Frank Poupart Entertainement s’adresse au plus petit nombre (Nietzsche ajoute, dans L’Antéchrist : « peut-être même, de ce nombre, aucun n’est-il encore né » :-)) et que j’ai volontairement bloqué les moteurs de recherche dans les préférences de WordPress (Privacy Options).
Cela dit, tous les bouts de code et autres astuces qui ont soudainement émergé sur cette question de l’optimisation des temps de chargement m’ont poussé à revoir ma position (qui jusque-là avait consisté à trouver des excuses bidons pour ne surtout rien changer), ne serait-ce que pour tenter d’améliorer ce qu’on appelle dans le jargon informatique « l’expérience utilisateur ».

J’ai donc commencé par mesurer les performances brutes du blog en utilisant le module YSlow pour Firefox.
Taxé d’un pénible D (69%), je me suis mis en quête de différents leviers d’amélioration pour booster la réactivité des composants.
Liste non exhaustive des actions menées :

– Suppression des plugins qui n’avaient d’autre valeur que cosmétique + monitoring de la ressource mémoire utilisée (avec WP-Memory-Usage)
– Optimisation des tables MySQL
– Nettoyage des révisions de billets, spams, thèmes et tout ce qui prend de la place inutilement
– Mise en dur des Expire Headers et autres joyeusetés dans le fichier .htaccess
– Installation et configuration de Quick Cache (après les tests infructueux de WP Super Cache et W3 Total Cache)
– Tentative avortée de mise en place d’un mécanisme de compression GZIP et de « minification » JS et CSS (rien n’y fait, à croire que le serveur n’en veut pas. Si quelqu’un a un plan…).

Finalement, après bidouillage, obtention d’un C avec un gain de 10 points au baromètre YSlow.
Pas mal. Mais, en pratique, pas de quoi casser trois pattes à un canard. Je reste sur ma faim.

Et puis, je ne sais au hasard de quelle recherche, je tombe sur la FAQ maison de mon hébergeur (Strato, en allemand dans le texte) qui explique que sa nouvelle technologie SpeedPlus permet d’augmenter sensiblement la vitesse d’exécution des scripts au niveau des serveurs et des opérations en base de données. Strato avance même un coef’ multiplicateur de 10 ! « What tha fuck ?! » J’en ai lâché ma tartine…
Ni une ni deux, je file sur la page française de l’hébergeur : rien. Pas un traître mot sur SpeedPlus. Je suis tachycarde,  limite nervous breakdown, mais je prends sur moi et me fends d’un mail au support technique.
Un conseiller me répond que cette technologie est exclusivement réservée aux nouveaux abonnés, en Allemagne, mais qu’il peut gentiment et sans frais changer le site de plateforme pour lui faire bénéficier de SpeedPlus, qu’il me suffit pour cela d’en faire la demande en répondant à son mail. (Sans déc’, où est l’embrouille ?) Ma réponse ne s’est pas faite attendre : « Vas-y Charlie, envoie la sauce, ich bin au taquet ! »

Résultat : perso j’ai l’impression que c’est le jour et la nuit. Ce sera pas forcément flag’ pour le tout-venant (j’ai la tête dans le guidon depuis huit jours donc j’ai sans doute une approche un peu obsessionnelle du truc) mais j’aime à penser qu’il y a quand même une différence notable, tant au niveau des temps de réponse que dans la vitesse d’affichage des pages en général.

Moralité : pourquoi s’emmerder à travailler le carénage et l’aérodynamisme quand on peut changer de moteur ?
Avis aux Strato users. Bon plan en vue.

Un commentaire sur “Je code donc je suis”
  1. Benito dit :

    « Moralité : pourquoi s’emmerder à travailler le carénage et l’aérodynamisme quand on peut changer de moteur ? »

    -> Tu sais qu’ils en cherchent des comme toi là où je bosse 😉 !

  2.  
Je commente, je flatte, je tacle...