Optimisation des performances serveurs: tampon mémoire et cache serveur en référencement

2
Optimisation des performances serveurs: tampon mémoire et cache serveur en référencement

Vous vous êtes sans doute déjà promené sur une page dont l’affichage était trop lent, ou alors êtes enfin parvenu à obtenir un lien depuis un site à forte audience et au moment de recevoir tous ces nouveaux visiteurs sur votre site, ce dernier vous lâche car il ne supporte plus cet afflux de requêtes et de visites.

Les exemples de ce type ne manquent pas sur le web, beaucoup de sites web souffre de problèmes liés à leurs serveurs qui sont pour la plupart pas optimisés pour supporter un volume important de visiteurs.

Oui mais quelle est la relation avec le référencement naturel?

Si votre serveur se retrouve dans l’incapacité de renvoyer les bonnes pages dans les bons délais aux visiteurs, il en fera de même quand le visiteur en question est un robot d’un moteur de recherche. Cela aura pour conséquence directe et quasi immédiate une chute de votre fréquence de crawl.

Cela va sans doute se ressentir immédiatement au niveau de votre ranking (positionnement dans les SERP) et donc très rapidement sur votre trafic en provenance des moteurs de recherche.

Le monitoring des temps de réponse de vos pages est donc très important! il faut mettre en place des KPI pour suivre les performances de vos serveurs. l’analyse approfondie de vos performances est donc une démarche tout a fait honorable, et qui doit être prise très au sérieux surtout lorsque votre site a une forte audience ou aspire à un grand afflux de visiteurs même de manière ponctuelle (peut être à l’occasion d’une grosse campagne publicitaires événementiel).

Dans cet, je vous livre quelques pistes à suivre si vous pensez que votre site souffrance de problèmes de performances liés au serveur web. En voici le sommaire:

Monitoring et détection de problèmes liés aux performances serveurs
Problème liés aux serveurs et aux temps de réponse
Problèmes liés à l’applicatif et aux temps d’affichage

Outils disponibles pour suivre les performances serveurs
Optimisation des performances serveurs

Gestion du serveur de cache
Mise en place de l’output buffering (ou affichage tampon ou gestion de la mémoire tampon)

Voici comment on peut détecter et identifier quelques problèmes liés aux performances de votre serveur web et ses conséquences directes sur le référencement naturel (SEO) de votre site.

Monitoring et détection de problèmes liés aux performances serveurs

La première étape est donc la détection de problèmes liés aux performances d’un site web. Pour cela, 2 indicateurs doivent êtres suivis de prêt: les temps de réponses et les codes codes réponse (HTTP res_code) renvoyés par le site durant une période assez longue pour être représentative (entre 15 et 30 jours).

Certaines de ces informations peuvent être restituées directement dans webmaster tools (voir les tutos de formation à webmaster tools). Cet outil nous donne les erreurs générées par le site durant son crawl par Google. Faites très attention aux erreurs 500 (5xx) et à leurs volume ou leurs fréquences.

GWT nous offre aussi une vue graphique sur l’évolution dans le temps (sur une période de 6 mois) du nombre de pages crawlées,  ce qui nous permettra de voir une éventuelle chute de crawl.
A ce graphe se rajoute les temps de téléchargement des pages, et le nombre de Ko téléchargés par jour.

En mettant en corrélation toutes ces données, nous pouvons déjà constater certaines évolutions liées au crawl et éventuellement détecter des performances serveur défaillantes.

Remarque: Le problème lié à cet outil est qu’il ne prend en compte que les informations des pages qu’il crawl et bien souvent, malheureusement, le nombre de pages crawlées par le moteurs est très loin du nombre de page dont dispose le site; d’où l’intérêt d’améliorer les performances serveur pour permettre aux moteurs de mieux explorer les sites qu’ils visitent.

Des temps de chargements lents peuvent s’expliquer de deux manières:

Problèmes liés aux serveurs et aux temps de réponse

Cela concerne les temps que mettent les serveurs pour traiter et exécuter les scripts et renvoyer les réponses aux navigateurs qui les demandent.
Cela se mesure en implémentant des outils de monitoring sur les serveurs web eux même pour calculer le temps que ces derniers mettent pour exécuter chaque script et répondre à chaque appel (execution des programmes, connexions aux bases de données, requetes sur la base de données…).

Problèmes liés à l’applicatif et aux temps d’affichage

Cela concerne le temps que le navigateur met pour afficher les informations que les serveurs web leur ont envoyé. Cela se mesure en utilisant certains outils et/ou plugin (voir plus bas).

Outils disponibles pour suivre les performances serveurs

Il est très important de connaître  l’origine du problème car le remède n’est pas le même.
Pour analyser les temps de reponse de votre serveur, je vous propose d’utiliser deux plugins addon de firefox qui viennent se griffer sur firebug:

Addon Firefox Firebug:

en activant le réseau sur firebug, vous aurez accès à tous les appels effectués lors du chargement d’une page avec les temps de chargement associés et beaucoup d’autre informations très utiles.

Addon Firefox Yslow:

est un plug in développé par Yahoo qui filtre les résultats selon 5 critères qui sont: contenu, ccs, images, javascript et serveur. Pour chacun des critères, l’addon propose des actions d’amélioration.

Addon Firefox Page speed :

créé par les développeurs de Google, il propose carrément des améliorations pour réduire vos temps de chargement et accélère les temps de réponse serveurs.

Optimisation des performances serveurs

1. Gestion du serveur de cache

Un système de cache permet de pousser l’optimisation des ressources serveur très loin. Mettre en place un système de cache serveur consiste à demander à PHP de transformer les pages php en des pages HTML statiques et de les stocker dans un répertoire cache avant des les renvoyer aux navigateurs qui les demandent.
A la prochaine demande de la même page par un internaute, le navigateur ira se servir directement dans le serveur de cache.

Un système de cache simple à mettre en place utilise les fonctions de bufferisation de sortie de PHP (voir ci-dessous). Ces fonctions stockent les données HTML dans un tampon mémoire avant de les envoyer au navigateur, afin d’y appliquer certains traitements. L’étape supplémentaire consiste donc à faire une copie de ce tampon dans un dossier du serveur.

Afin d’aller un peu plus loin dans la mise en place d’un système de cache, je vous propose un petit script PHP qui permet de gérer un serveur de cache:

[i]ici code php que vous ne voulez pas mettre en cache[/i]
<?PHP
$urldemandee=$_SERVER[‘REQUEST_URI’]; //on lit l’adresse de la page
$urldemandee=ereg_replace(‘/’,’-‘,$urldemandee); // on tranforme l’adresse en nom de fichier
if($urldemandee==”-“) $urldemandee=”-index.html”; // si l’adresse est la racine du site, on ajoute index.html
$fichierCache=”cache/cache”.$urldemandee; // on construit le chemin du fichier cache de la page
if (@filemtime($fichierCache)<time()-(3600*24*360)) { //si la page n’existe pas dans le cache ou si elle a expiré
ob_start(); // on démarre la bufferisation de la page: rien de ce qui suit n’est envoyé au navigateur
?>
[i]Votre page PHP ici[/i]
<?php
$contenuCache = ob_get_contents(); // on recuperre le contenu du buffer
ob_end_flush();// on termine la bufferisation
$fd = fopen(“$fichierCache”, “w”); // on ouvre le fichier cache
if ($fd) {
fwrite($fd,$contenuCache); // on ecrit le contenu du buffer dans le fichier cache
fclose($fd);
}
} else { // le fichier cache existe déjà
include ($fichierCache); // on le copie ici
}
?>

Que fait ce script:

1/ il récupère l’url de la page
2/ transforme cet url en un nom de fichier sans /
3/ teste l’existence de ce fichier dans le répertoire /cache/
4/ si le fichier n’existe pas, génère la page, puis la stocke dans le répertoire cache
/5 si le fichier existe, l’ouvre en tant que page html
Source: webrankinfo

2. Mise en place de l’output buffering (ou affichage tampon ou gestion de la mémoire tampon)

L’output buffering est une technique qui permet de ne pas afficher directement les données à l’écran mais plutôt de les stocker temporairement dans un tampon intermédiaire (buffer).

Trois fonctions de bufferisation sont utilisées pour l’output buffering:
Ob_start(): pour initialiser l’output buffering
Ob_get_contents(): pour récupérer le contenu du buffer dans une variable
Ob_end_clean(): pour arrêter l’output buffering et vider le buffer

Pourquoi utiliser un tampon mémoire?
En utilisant  les tampons mémoire, vous offrez une meilleure optimisation à votre script PHP en diminuant le nombre de requête effectuées à la base de données (le buffer supprime les requêtes doublons).

Voici un exemple concret de l’utilisation de la mémoire tampon pour améliorer les performances d’un site web: exemple de bufferisation

2 Responses for this post

Leave a Reply

Name
Name*
Email
Email *
Website
Website