Ajax Création site CMS How to Design Logiciels Programmation RSS Scriptol Scripts Référencement Wordpress

Comment organiser un site bilingue

Un site bilingue peut s'afficher dans une langue au choix ou automatiquement dans la langue du navigateur. Le second choix permet un accès facilité au visiteur mais la page d'accueil aura un PageRank moindre.

Il faut cependant savoir que du point de vue du référencement il est préférable d'avoir des points d'entrées différents pour chaque langue.

Comment afficher le site dans la langue du navigateur avec PHP

Ce code a été testé avec les principaux navigateurs: Internet Explorer, Firefox, Opéra, Safari.
Le fichier est sauvé sous le nom de index.php
Dans l'exemple, la page en français a le nom de fichier index-fr.php et la page en anglais index-en.php
On peut ajouter autant de langues que l'on veut en suivant le même principe...

<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="robots" content="index,follow">
</head>
                  
<?php
                 
$lang = "en";
$serv = $_SERVER[HTTP_ACCEPT_LANGUAGE];
if($serv != false)
{                  
    $temp = explode(",",$serv);            
    $temp = strtolower(substr($temp[0]),0,2);            
    if($temp == "fr") $lang="fr";
}                  
?>
                  
<frameset cols="0,*" row="*" border="0" framespacing="0" > 
<frame src="" >
<frame                  
<?php
    echo "src=\"index-$lang.php\"";
?>
 border=0 frameborder="no" RESIZE scrolling="YES" noresize >
</frameset>
<noframes>
<body>
    Frames requises.
</body>
</noframes>
</html>

Si l'on installe les langues dans des sous-répertoires, par exemple fr, en, etc. on écrira, en se passant des frames:

<?php
$lang="en";
$serv = $_SERVER[HTTP_ACCEPT_LANGUAGE];
if($serv != false)
{
$temp = explode(",",$serv);
$temp = strtolower(substr($temp[0],0,2));
if($temp == "fr") $lang="fr";
}
header("HTTP/1.1 302 Redirect");
header("location:http://www.scriptol.fr/$lang/");
?>

Les noms des pages

La page d'accueil dans une langue donnée ne porte pas nécessairement le nom index, on peut lui donner un nom significatif comme conception.php pour la page française et design.php pour la page anglaise, et c'est une bonne chose pour le référencement.
Dans ce cas on modifiera les lignes suivantes dans le code, en remplaçant les mots de l'exemple par les mots-clés choisis selon le thème de votre site:

$lang = "design";
if($temp == "fr") $lang="conception";
echo "src=\"$lang.php\""; 

Lorsque vous référencez le site, vous donnerez pour adresses: http://www.scriptol.fr/conception.php ou http://www.scriptol.fr/design.php (remplacez scriptol.fr par le nom de domaine de votre site et remplacez les noms des pages).

Redirection d'accueil conditionnelle

Pour éviter la perte de PR, une solution consiste à mettre la page d'une langue donnée comme page d'accueil du site, par exemple la page d'accueil en français se nommerait index.php, et elle contiendrait le code PHP qui redirige les visiteurs des autres langues.
L'inconvénient, si cette page est importante, ce qui est souvent le cas d'une page d'accueil, est le chargement de deux pages quand on entre sur le site, pour les visiteurs des autres langues.

La redirection selon l'IP

Certains services, dont ceux de Google lui-même, identifient l'origine de l'internaute à partir de son adresse IP, et le redirigent automatiquement (et sans lui laisser le choix) sur le site correspondant à sa langue.

Pour en savoir plus sur l'identification de l'origine d'un utilisateur, voir l'article Comment connaître le pays d'une adresse IP.

Site bilingue et moteurs de recherche

Le code de redirection automatique selon le navigateur n'a pas d'incidence négative sur le PageRank des pages autres que la page d'accueil, contrairement aux solutions utilisant la fonction PHP "header" sur laquelle s'arrêtent les robots des moteurs de recherche.
Ce n'est pas une solution parfaite, on perd un point de PR sur la page d'accueil, le problème semble inhérent au site bilingue, toutes les solutions ont des inconvénients.

Ce que recommande Google

Le staff en charge de l'algorithme et des questions de l'optimisation des sites s'est exprimé dans une table ronde avec les webmasters en octobre 2008, dont l'essentiel des questions est repris dans l'article Réponses de Google aux webmasters.

Il est préférable pour un site anglais et français par exemple, du point de vue des moteurs de recherche:
- Soit de créer un site en .com et l'autre en .fr
- Soit de créer des sous-domaines en et fr.
- Soit de créer des sous-répertoires en et fr.

La troisième solution est la meilleure car un site plus important vaut mieux que deux sites plus petits. Dans ce cas la page d'accueil devrait d'une part avoir un lien vers chaque langue. Optionnellement, l'utilisateur dont le navigateur est dans la langue A, qui entre dans un répertoire de la langue B pourrait dynamiquement être redirigé sur la langue A.

Téléchargement

Le code de redirection selon la langue du navigateur est disponible dans un fichier zip.