Optimisation referencement sites multilingues

WRInaute passionné
suite a ma lecture de l'article sur WRI.
Apparement, le mieux est de passer un paramètre supplementaire dans la barre d'adresse, du genre lang=fr.

il est aussi indiqué dans ce meme article d'utiliser cette tehcnique dans le cas ou le parametre lang ne serait pas renseigné:

if (!isset($lang)) {
$lang = explode(",",$HTTP_ACCEPT_LANGUAGE);
$lang = StrToLower(substr(chop($lang[0]),0,2));
}

Cad que ca va affecter a la variable $lang la langue par defaut de l'utilisateur qui visite le site.
Mais comment va se comporter un robot, de google ou autre, face a ce code? il va lui aussi visiter la page dans la langue de son serveur?
je ne voudrais pas compromettre mon referencement a cause de ca...

Autre chose: ce parametre langue, pour le faire passer dans toutes les pages du site, je fais comment? utilisation d'un cookie ou d'une variable de session? ajout du parametre dans tous les liens du site?

Bref, l'article est tres constructif d'un point de vue theorique, j'ai compris l'idée, mais pas l'integralité de la mise en pratique...
 
WRInaute occasionnel
Google n'a pas de langues... Il faut donc prendre en compte le cas où aucune des langues disponible n'est dans le HTTP_ACCEPT_LANGUAGE, alors on prend une langue par défaut...
Si tu veux référencer dans les deux langue, le laisser constamment en paramètre (il est possible de faire des trucs très propre avec l'URL rewriting) semble la meilleur solution.
 
WRInaute occasionnel
Si c'est l'application qui te pose problème, je peut te donner la manière dont j'ai opéré pour un site auquel j'ai participé : http://www.tabsolutely.com/ .
En gros, il y'a un sous repertoire par langue (ici /fr/ , mais il peut y'en avoir autant qu'il y'a de langues) et la langue par défaut est directement à la racine.

J'ai donc dans mon .htaccess des lignes du style:

RewriteRule ^((..)/)?toto/tata/$ titi.php?lang=$2

Ainsi, quand je suis dans le repertoire principal, (donc quand $lang='"") alors je met la langue par défaut.
J'ai aussi fait un petit systeme très simple pour qu'a chaque nouveau visiteur, il detecte automatiquement la langue.
Pour ca, je fait:

SI le referer ne fait pas parti du domaine
ALORS
Je prend la premiere langue disponible dans le HTTP_ACCEPT_LANGUAGE
Je redirige vers la bonne page
FSI

Tout ceci est la manière normale d'opérer, mais si ca peut t'aider un peu...
 
WRInaute impliqué
Si t'as besoin de tuyaux tu peux demander j'ai justement fait récemment un site multilingue avec sélection automatique de langue.
Par contre $_SERVER['HTTP_ACCEPT_LANGUAGE'] n'est pas toujours définie donc il faut la tester avant de s'y fier aveuglément ;)

Si tu veux tester : -http://enes.emunova.net
La sélection s'effectue en fonction des priorités de ta config de langue de ton navigateur.

PS : comme je l'ai rédigé sous forme de classe c'est facilement réutilisable.
 
WRInaute impliqué
Mon site du profil est par défaut en français, sans paramètre dans l'url.
Le visiteur peut cliquer sur la version anglaise dans chacune des pages (rajout du paramètre dans l'url).
Du coup, c'est google qui fait le boulot et qui affiche dans les résutats des recherches de l'internaute le site dans la langue qui lui convient.
Si le type tape "sea", google le renvoi sur une page anglaise, si il tape "mer", google le renvoie sur une page française.
Je trouve ça plus simple pour le référencement, pour les stats etc...
Au moins je sais que page.html est en français et que page-en.html est en anglais.
Je mettais posé la même question que toi et je m'étais dis qu'il y avait un risque d'embrouille coté référencement si la même url affichait 2 pages différentes....
 
WRInaute impliqué
jeromax a dit:
Mon site du profil est par défaut en français, sans paramètre dans l'url.
Le visiteur peut cliquer sur la version anglaise dans chacune des pages (rajout du paramètre dans l'url).
Du coup, c'est google qui fait le boulot et qui affiche dans les résutats des recherches de l'internaute le site dans la langue qui lui convient.
Si le type tape "sea", google le renvoi sur une page anglaise, si il tape "mer", google le renvoie sur une page française.
Je trouve ça plus simple pour le référencement, pour les stats etc...
Au moins je sais que page.html est en français et que page-en.html est en anglais.
Je mettais posé la même question que toi et je m'étais dis qu'il y avait un risque d'embrouille coté référencement si la même url affichait 2 pages différentes....

Oui et t'as raison. Faire une distinction des pages permet en plus de cibler largement plus de visiteurs, dans chacune des langues que tu proposes.
 
WRInaute occasionnel
D'ailleurs, pour un autre site multilingue, je ne faisais aucune distinction d'URL pour les différentes langues. Quand j'ai mis en place une distinction par url (merci WRI de me l'avoir conseillé!) , mon nombre de pages indexées s'est envolé, et mon nombre de visiteurs a été multiplié par 1.5. Ca en vaut vraiment la peine...
 
WRInaute passionné
en tous cas, merci a tous pour ces precieux conseils. Je vais essayer de m'en sortir seul et au cas ou je viens vous faire signe :)!
 
Discussions similaires
Haut