Agitez votre trafic avec Oseox, Plus de 400 cours gratuits.
Profitez de nos meilleurs conseils, Recevez notre newsletter pro !
L'utilisation de sessions est nécessaire dans plusieurs cas et notamment pour :
Les informations liées à la session sont stockées dans un fichier sur le serveur. Ce fichier est unique et un identifiant est généré pour chaque utilisateur. Cet identifiant est une chaîne de texte composée au minimum de 32 caractères. Il permet de faire la correspondance entre l'utilisateur et le fichier contenant les informations de la session.
L'identifiant peut être stocké dans un cookie (sur le poste de l'utilisateur donc). Il s'agit de la situation la plus commune. Toutefois, si l'utilisateur n'accepte pas les cookies, il est possible de transmettre cet identifiant via l'URL. Vous avez d'ailleurs certainement vu des URL contenant une chaîne ressemblant à ?PHPSESSID=a9e8dc705da1560e9b6d4c1a65ae3245.
Il faut savoir que les moteurs de recherche n'acceptent pas les cookies. Par conséquent de nombreux sites contournent ce problème en utilisant les URL pour transmettre l'identifiant de session, et c'est là où les problèmes commencent.
Les robots indexent ce type d'URL, d'ailleurs nous pouvons le vérifier aisément. Pour ce faire, il suffit de saisir la requête suivante dans le moteur de votre choix.

En moyenne (cela dépend de la configuration du serveur), les fichiers de session sont conservés pendant trente minutes. Ainsi, lorsque le robot va revenir, une nouvelle session se déclenchera avec une nouvelle URL à indexer. Notons que le contenu sera identique à la page précédemment visitée par le robot. Les robots (aussi bien Google, Yahoo que Live) pourront alors indexer des centaines de fois la même page.
Comme vous pouvez l'imaginer, au bout d'un certain temps, les moteurs de recherche détectent 2 principaux problèmes :
Dire qu'il ne faut pas utiliser des sessions n'est pas une solution concevable. En effet, les sessions peuvent être très pratiques pour les développeurs comme nous l'avons vu au début de cet article. Alors comment faire pour supprimer les ID de session dans les URL ? Plusieurs solutions sont envisageables :
SetEnv SESSION_USE_TRANS_SID 0
session.use_trans_sid = 0
Pour les serveurs IIS, j'ai déjà vu un admin réseau régler le problème via une simple option de son panel d'administration.
/* Désactivation de la reconnaissance de l'identifiant de session dans l'URL */
ini_set('session.use_trans_sid', "0");
/* Autorisation de l'utilisation des cookies */
ini_set('session.use_cookies', "1");
/* Autorisation d'utiliser QUE les cookies */
ini_set('session.use_only_cookies', "1"); */
/* Interdiction d'ajouter l'identifiant de session dans le code html généré */
ini_set("url_rewriter.tags","");
/* Tout est sous contrôle, on démarre la session */
session_start();
Il serait possible de faire plus court mais je vous ai livré ici le code en version paranoïaque :)
Il existe plusieurs méthodes pour détecter les robots. Il est par exemple possible de contrôler le user agent, l'hôte et l'IP de chaque visiteur puis de démarrer ou non une session. Voici une proposition pour contrôler le user agent uniquement :
<?php
function checkUaRobot(){
$robot = false;
$_UA = array("GoogleBot", "Slurp","MsnBot");
// Complétez cette liste avec tous les UA que vous désirez
foreach($_UA as $ua) {
// On compare le user agent du visiteur à notre liste
if(eregi($ua,$_SERVER["HTTP_USER_AGENT"])) return true;
}
// L'UA n'est pas dans notre liste, il s'agit d'un visiteur humain
return false;
}
?>
// On appelle la fonction
if (!checkUaRobot()) { session_start(); }
?>
Une dernière "solution" est de laisser Google se débrouiller. Il fera le ménage de lui même un jour ou l'autre en supprimant les pages dupliquées...
Une question ? Venez la poser sur notre forum référencement !