Même si le terme « webperf » est très à la mode depuis quelques temps, force est de constater que les temps d’exécution des sites n’ont jamais été aussi catastrophique qu’aujourd’hui.

Les gourmands CMS prêts à l’emploi de type WordPress, Magento ou autres ont là une grande part de responsabilité.

Ils ont démocratisé des temps d’exécution délirants, supérieurs à la seconde et parfois bien au delà.

Une hérésie au vu de la puissance des machines. Quand on pense que l’ordinateur d’Apollo 11 possédait un CPU de 1Mhz et 4Ko de RAM :-)

Par temps d’exécution, nous entendons le temps de génération du HTML par le serveur, sans chargement des images, js ou autres fichiers statiques.

Turpentine, PageCache, WP Super Cache, WP Rocket, W3 Total Cache, (ou même Varnish) … les plugins de mise en cache sont devenu indispensables et agissent en cache misère.

Le problème (au delà du fait que c’est totalement anormal d’avoir un site qui se charge en plus de 1 seconde), c’est qu’avec la plupart de ces systèmes, c’est le visiteur qui génère la mise en cache.

Pour les pages les plus visitées, pas de soucis, elles sont la plupart du temps en cache.

Par contre, Googlebot visite tout type de pages, pas uniquement les plus visitées par les internautes.

Du coup, dans la plupart des cas, c’est Googlebot qui génère la mise en cache.

Ainsi, notre robot d’indexation préféré se prend que des temps de chargement horribles.

Les logs peuvent nous aider à mesurer ce ratio.

Pour cela, on va envoyer une entête HTTP dans la réponse :

header(‘EnCache: Cache OK’); // Si la page est en cache
header(‘EnCache: Cache KO’); // Si la page n’est pas en cache

On va modifier la configuration de nos logs sur Apache en ajoutant la colonne suivante :

« %{EnCache}o

On redémarre le serveur, et c’est bon !

A partir de maintenant, sur chaque ligne de logs, vous pouvez voir si la page a été générée grâce au cache ou pas.

Ensuite, un petit : zgrep Googlebot *.gz | cut -fx | sort | uniq -c

Vous permettra de voir le ration entre en cache / pas en cache pour Googlebot.

Sur les sites que j’ai étudié, on s’aperçoit souvent que Googlebot génère lui même le cache dans plus de 80% des cas.

Quelques solutions :

– Améliorer les performances :-)
– Augmenter la durée du cache
– Crawler vous même le site pour générer le cache de toutes les pages